Агуулгын хүснэгт:

Түлхүүр дамжуулагч: 6 алхам
Түлхүүр дамжуулагч: 6 алхам

Видео: Түлхүүр дамжуулагч: 6 алхам

Видео: Түлхүүр дамжуулагч: 6 алхам
Видео: Түүхэн Дэх Хамгийн Чухал Ололт - ТРАНЗИСТОР! 2024, Долдугаар сарын
Anonim
Түлхүүр дамжуулагч
Түлхүүр дамжуулагч
Түлхүүр дамжуулагч
Түлхүүр дамжуулагч

Би одоо Howest -д NMCT -т суралцаж байна. Сүүлийн семестрийн хувьд бид төсөл хийх ёстой байсан. Тиймээс би Keysorter хийсэн.

Энэ нь юу хийдэг вэ?

Бид гэртээ маш олон машины түлхүүртэй бөгөөд бүгд адилхан харагдаж байна. Тиймээс би энэ асуудлыг шийдэхийн тулд Keysorter хийсэн.

Энэ нь RFID -ээр дамжуулан түлхүүрийг скан хийж хайрцагт байрлуулах ёстой. Хэрэв би ижил түлхүүрийг дахин сканнердах юм бол энэ нь түүний өмнө өгсөн газрыг харуулах болно. Мөн хамгийн сүүлд угаасан машиныг харуулах товчлуур байдаг.

Энэ нь Raspberry Pi дээр ажиллах болно, мөн колбонд вэб хуудас нэмэх боломжтой.

Энэ хуудсан дээр би бүх түлхүүрүүдийг харж, түлхүүрт нэр нэмж, түлхүүрийг устгах боломжтой байх ёстой.

Алхам 1: Алхам 1: Надад юу хэрэгтэй вэ?

Алхам 1: Надад юу хэрэгтэй вэ?
Алхам 1: Надад юу хэрэгтэй вэ?
Алхам 1: Надад юу хэрэгтэй вэ?
Алхам 1: Надад юу хэрэгтэй вэ?

Би энэ зүйлийг ажиллуулахад шаардлагатай бүрэлдэхүүн хэсгүүдийн жагсаалтыг гаргаж эхэллээ.

Бүрэлдэхүүн хэсгүүд:

  • Raspberry pi
  • 2 x ээлжийн бүртгэл (74hc595)
  • 3 x товчлуур
  • 9 x ногоон LED
  • RFID сканнер (MFRC522)
  • 12х 220 Ом эсэргүүцэл

Дараа нь би энэ бүгдийг бүдгэрүүлэх схемдээ оруулсан.

Үүнийг хийсний дараа би үүнийг бодит амьдрал дээр хийсэн.

Алхам 2: Алхам 2: Өгөгдлийн сангийн схем гаргах

Алхам 2: Өгөгдлийн сангийн схем гаргах
Алхам 2: Өгөгдлийн сангийн схем гаргах

Өгөгдлөө хадгалахын тулд би Pi дээр ажиллах боломжтой мэдээллийн сан үүсгэх шаардлагатай болсон.

Би үүнийг Mysql дээр хийсэн.

Ширээний машин:

  • Машины ID
  • Хэрэглэгчийн ID
  • Брэнд (машины брэнд)
  • Төрөл
  • Хамгийн сүүлд угаасан
  • Түлхүүр
  • RFID_ID

Алхам 3: Алхам 3: Кодлох

Алхам 3: Кодлох
Алхам 3: Кодлох

Энэ бүхэн бэлэн болмогц би код бичиж эхлэв.

Би Python 3.5 дээр мэдрэгчийнхээ кодыг хийж эхлэв.

Кодыг татаж авахын тулд энд дарна уу.

Төслийг хуулбарлахын тулд холбоосыг ашиглана уу.

Алхам 4: Алхам 4: Ал кодыг миний Raspberry Pi дээр тавь

Багц суулгаж байна

Эхлээд би үүнийг ажиллуулахад шаардлагатай бүх багцыг суулгасан.

me@my-rpi: ~ $ sudo apt update

me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Виртуал орчин

me@my-rpi: ~ $ python3 -m pip install-pip setuptools wheel virtualenvme шинэчлэх@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth суулгах Flask-MySQL mysql-connector-python нэвтрэх

Төслийг pycharm ашиглан Pi дээрээ байршуулна уу

Pycharm -ийг нээгээд VCS> Хувилбарын хяналтаас импортлох> Github руу очоод миний github файлыг хуулна уу.

Байрлуулалтын тохиргоог саяхан хийсэн директор руу оруулна уу. (/гэр/би/төсөл1). Хэрэглэхийг дарна уу!

Орчуулагчийн тохиргоо руу ороод саяхан хийсэн виртуал орчноо сонгоно уу. (/home/me/project1/env/bin/pyhon)

Замын зураглал зөв эсэхийг шалгана уу.

Одоо та Pycharm ашиглан кодоо директор руу оруулах боломжтой.

Мэдээллийн сан

Мэдээллийн сан ажиллаж байгаа эсэхийг шалгаарай. Та дараах зүйлийг авах ёстой.

me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB мэдээллийн баазын сервер Ачаалагдсан: ачаалагдсан (/lib/systemd/system/mariadb.service; идэвхжүүлсэн; борлуулагчийн урьдчилан тохируулсан: идэвхжсэн) Идэвхтэй: Нарнаас хойш идэвхтэй (ажиллаж байгаа) 2018-06-03 09:41:18 CEST; 1 өдрийн 4 цагийн өмнө Үндсэн PID: 781 (mysqld) Төлөв: "SQL хүсэлтээ одоо авч байна …" Даалгавар: 28 (хязгаар: 4915) Бүлэг: /system.slice/mariadb.service └─781/usr/sbin/mysqld

Jun 03 09:41:13 my-rpi systemd [1]: MariaDB мэдээллийн сангийн серверийг эхлүүлж байна … Jun 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Тэмдэглэл] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) Jun 03 09:41:18 my-rpi systemd [1]: MariaDB мэдээллийн сангийн серверийг эхлүүлсэн.

me@my -rpi: ~ $ ss -lt | grep mysql СОНСОХ 0 80 127.0.0.1:mysql *: *

Хэрэглэгч үүсгэх, мэдээллийн санг нэмэх

me@my-rpi: ~ $ sudo mariadb

мэдээллийн санд орсны дараа үүнийг хий.

CREATE USER 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'; CREATE USER 'project1-sensor'@'localhost' IDENTIFIED by 'sensorpassword';

DATABASE төсөл үүсгэх1;

Project1 дээр бүх давуу эрх олгох.* To 'project1-admin'@'localhost' with GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; FLUSH давуу эрх;

ХҮСНЭГТ үүсгэх

ҮСЭГ үүсгэх datetime DEFAULT NULL, `RFID_Number` varchar (15) DEFAULT NULL,` Key` varchar (5) DEFAULT NULL, PRIMARY KEY (`idCar`,` idUser`), KEY `fk_Car_User1_idx` (` idUser`ser), CONSTRAINT_ ГАДААД ТҮЛХҮҮР (`idUser`) REFERENCES` хэрэглэгч` (`idUser`) ҮЙЛЧИЛГЭЭГҮЙ ҮЙЛ АЖИЛЛАГААГҮЙ БАЙГУУЛАХ ТУХАЙ) Мотор = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8

Өгөгдлийн сангаа Pycharm руу холбоно уу

Баруун талын мэдээллийн баазын таб дээр дарна уу. Хэрэв танд нээлттэй цонх байхгүй бол үүнийг хийх хэрэгтэй: Харах> Хэрэгсэл Windows> Өгөгдлийн сан.

Холболт нэмэх дээр дарна уу. Өгөгдлийн эх сурвалж> MySQL -ийг сонгоно уу (Хэрэв татаж авах драйвер товчлуур байгаа бол үүнийг дарна уу.)

SSH/SSL руу очоод SSH -ийг шалгана уу. Raspberry pi итгэмжлэлээ бөглөнө үү (хост/хэрэглэгч/нууц үг). Порт 22 байх ёстой бөгөөд нууц үгээ санахаа бүү мартаарай.

Генерал руу буцах. Хост нь localhost байх ёстой бөгөөд мэдээллийн сан нь project1 байх ёстой. Project1-admin-аас итгэмжлэлийг бөглөж, холболтыг шалгана уу.

Хэрэв холболт хэвийн байгаа бол Schemas таб руу очиж project1 -ийг шалгасан эсэхийг шалгаарай.

Мэдээллийн сангийн зөв эсэхийг шалгана уу

me@my-rpi: ~ $ echo 'хүснэгтүүдийг үзүүлэх;' | mysql project1 -t -u project1-admin -pНууц үгээ оруулна уу: + --------------------------- + | Төслийн_хүснэгт_1 | + ---------------------------+ | мэдрэгч | | хэрэглэгчид | +---------------------------+

Тохиргооны файлууд

Conf лавлах санд та 4 файл олох болно. Та хэрэглэгчийн нэрийг хэрэглэгчийн нэр болгон өөрчлөх ёстой.

Систем

Бүх зүйлийг эхлүүлэхийн тулд та эдгээр тушаалуудыг гүйцэтгэх ёстой.

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-uWSGI жишээ нь project1 вэб интерфэйсэд үйлчлэх Ачаалагдсан: ачаалагдсан (/etc/systemd/system/project1-flask.service; идэвхгүй болсон; борлуулагчийн урьдчилан тохируулсан: идэвхжсэн) Идэвхтэй: Мягмар 2018-06-04 13-аас хойш идэвхтэй (ажиллаж байгаа): 14:56 CEST; 1 секундын өмнө Үндсэн PID: 6618 (uwsgi) Даалгавар: 6 (хязгаар: 4915) Бүлэг: /system.slice/project1-flask.service ├─6618/usr/bin/uwsgi --ini/home/me/project1/conf/ uwsgi-flask.ini ├─6620/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6621/usr/bin/uwsgi --ini/home/me/project1/ conf/uwsgi-flask.ini ├─6622/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6623/usr/bin/uwsgi --ini/home/me/ project1/conf/uwsgi-flask.ini └─6624/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini

Jun 04 13:14:56 my-rpi uwsgi [6618]: 5 цөмт 383928 байт (374 KB) зурсан зургадугаар сарын 04 13:14:56 my-rpi uwsgi [6618]: *** Үйл ажиллагааны горим: урьдчилсан бэлтгэл ***

● project1-sensor.service-Төслийн 1 мэдрэгчийн үйлчилгээ Ачаалагдсан: ачаалагдсан (/etc/systemd/system/project1-sensor.service; идэвхгүй болсон; борлуулагчийн урьдчилсан тохиргоо: идэвхжсэн) Идэвхтэй: 2018-06-04 13-аас хойш идэвхтэй (ажиллаж байгаа): 16:49 CEST; 5 секундын өмнө Үндсэн PID: 6826 (python) Даалгавар: 1 (хязгаар: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py

Jun 04 13:16:49 my-rpi systemd [1]: Project 1 мэдрэгчийн үйлчилгээг эхлүүлсэн. Jun 04 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Хадгалагдсан мэдрэгчийн process_count = b'217 / n 'мэдээллийн санд Jun 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Мэдээллийн санд мэдрэгчийн process_count = b'218 / n 'хадгалсан

nginx

me@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*

/etc/nginx/sites-available: total 4 -rw-r-r-- 1 root root 2416 7-р сарын 12 2017 анхдагч

/etc/nginx/sites-enabled: total 0 lrwxrwxrwx 1 root root 34 1 сарын 18 13:25 анхдагч->/etc/nginx/sites-available/default

Бүх зүйлийг анхдагч болгохын тулд эдгээр тушаалуудыг гүйцэтгээрэй.

me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/default me@my- rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl nginx.service

Автоматаар эхлэх

Бүх зүйл автоматаар эхэлж байгаа эсэхийг шалгаарай.

Conf лавлах руу очоод эдгээр эцсийн тушаалуудыг гүйцэтгээрэй.

me@my-rpi: ~/project1 $ sudo systemctl project1-* идэвхжүүлэх

Хэрэв та өөрийн Pi -г дахин ачаалвал энэ нь автоматаар эхлэх ёстой.

Алхам 5: Алхам 5: Орон сууцтай болох

Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих
Алхам 5: Орон сууц барих

Дахин боловсруулах

Орон сууцтай болохын тулд би хуучин шүүгээгээ ашигладаг байсан.

суурь

Би 4 банз хөрөөсөн (34 см х 26 см). (тиймээс энэ нь 34 x 34 x 26 хэмжээтэй куб юм).

Доод талд нь би нимгэн модоор хийсэн.

Удирдах самбар бүхий самбар

Дунд хэсэгт нь би хоёр талаасаа хоёр жижиг модон хэсгийг хоёуланг нь дээрээс 9 см зайд байрлуулсан. Энэ нь удирдагчдын суух самбарыг хадгалдаг.

Удирдах самбар нь жижиг самбар (32 см х 32 см) юм.

Удирдагчид гарахын тулд би 9 цооног өрөмдсөн.

хэлтэс

Би хуваах ажлыг доод ёроолтой ижил материалаар хийсэн бөгөөд самбарыг LED -ээр хийсэн.

4 ширхэг тус бүрийг 10.3 см (9 см х 31 см) зүслэгээр хийсэн. Одоо би тэднийг нэгтгэж чадсан.

Товчлуур ба RFID уншигч

Би RFID уншигч болон товчлууруудаа оруулахын тулд суурин дээр нүх гаргав. RFID -ийн хувьд би илүү цэвэрхэн харагдуулахын тулд урд нь нимгэн самбар тавьжээ.

Алхам 6: Алхам 6: Бүх зүйлийг орон сууцанд оруулах

Энэ нь хэрхэн хийхийг хүсч байгаагаас хамаарна. Би Raspberry Pi -г дахин ашиглахыг хүсч байгаа тул би хувьдаа маш олон кабелийг гагнахгүйгээр ашигласан.

Би залгууруудыг нааж, RFID уншигч болон талхны самбарыг хайрцагт наажээ.

Тэгээд л та Keysorter хийдэг!

Зөвлөмж болгож буй: