Мазмұны:

Кілтші: 6 қадам
Кілтші: 6 қадам

Бейне: Кілтші: 6 қадам

Бейне: Кілтші: 6 қадам
Бейне: КЕЙЕРЫ – КАК СКАЗАТЬ КЕЙЕРЫ? #кейеры (KEYERS - HOW TO SAY KEYERS? #keyers) 2024, Қараша
Anonim
Keysorter
Keysorter
Keysorter
Keysorter

Мен қазір Howest -те NMCT оқимын. Соңғы семестрде бізге жоба жасау керек болды. Осылайша мен Keysorter жасадым.

Ол не істейді?

Бізде автокөліктің кілті көп, және бәрі ұқсас. Мен бұл мәселені шешу үшін Keysorter жасадым.

Ол RFID арқылы кілтті сканерлеп, қорапта орын беруі керек. Егер мен сол кілтті қайтадан сканерлесем, ол бұрын тағайындалған орынды көрсетеді. Сондай -ақ, соңғы жуылған машинаны көрсететін түйме бар.

Бұл Raspberry Pi -де жұмыс істейді, оның ішінде Flask арқылы веб -бетті қосу мүмкіндігі бар.

Бетте мен барлық кілттерді қарап, кілтке атау қосып, кілтті алып тастауым керек.

1 -қадам: 1 -қадам: Маған не қажет?

1 -қадам: Маған не қажет?
1 -қадам: Маған не қажет?
1 -қадам: Маған не қажет?
1 -қадам: Маған не қажет?

Мен бұл нәрсені жасау үшін қажет компоненттердің тізімін жасаудан бастадым.

Компоненттер:

  • Таңқурай пи
  • 2 x Shift регистрі (74hc595)
  • 3 x түймесі
  • 9 x жасыл светодиод
  • RFID сканері (MFRC522)
  • 12х резистор 220 Ом

Содан кейін мен мұның бәрін жұмсақ схемаға енгіздім.

Мен мұны жасағаннан кейін мен оны нақты өмірде жасадым.

2 -қадам: 2 -қадам: мәліметтер қорының схемасын жасау

2 -қадам: мәліметтер қорының схемасын жасау
2 -қадам: мәліметтер қорының схемасын жасау

Деректерді сақтау үшін мен Pi -де жұмыс істейтін мәліметтер базасын құруға тура келді.

Мен оны Mysql -де жасадым.

Үстел көлігі:

  • Көлік нөмірі
  • Қолданушының ID
  • Бренд (автомобиль маркасы)
  • Түрі
  • Соңғы жуылған
  • Кілт
  • RFID_ID

3 -қадам: 3 -қадам: кодтау

3 -қадам: кодтау
3 -қадам: кодтау

Мұның бәрі дайын болған кезде мен кодтауды бастай аламын.

Мен сенсордың кодын Python 3.5 -те жасай бастадым.

Кодты жүктеу үшін мына жерді басыңыз.

Жобаны клондау үшін сілтемені пайдаланыңыз.

4 -қадам: 4 -қадам: кодты Raspberry Pi -ге енгізу

Пакеттерді орнату

Алдымен мен бұл жұмысты орындау үшін қажет пакеттерді орнаттым.

me@my-rpi: ~ $ sudo apt жаңарту

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 дөңгелегін жаңарту virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --система- 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 рұқсат етілген

Жобаны Pi -ге pycharm көмегімен жүктеңіз

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 ЦЕСТ; 1 күн 4 сағат бұрын Негізгі PID: 781 (mysqld) Күй: «SQL сұраныстарыңызды қазір қабылдау …» Тапсырмалар: 28 (шектеу: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld

03 маусым 09:41:13 my-rpi systemd [1]: MariaDB дерекқор сервері іске қосылады… 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) Маусым 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' ГРАНТ ОПЦЕНТІМЕН; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; АРТЫҚШЫЛЫҚТАР;

CREATE TABLE `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8

CREATE TABLE `car` (` idCar` int (11) NULL AUTO_INCREMENT, `idUser` int (11) NOT NULL,` Brand` varchar (45) DEFAULT NULL, `Type` varchar (45) DEFAULT NULL,` LastWashed` 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 '), CONCAINAIN_ СЫРТҚЫ Кілт (`idUser`) СІЛТЕМЕЛЕР` пайдаланушы` (`idUser`) ЖАҢАРТУ ЕМЕС ЕМЕС ЕМЕС ЖОҚ ЕМЕС) ҚҰРЫЛҒЫ = InnoDB AUTO_INCREMENT = 4 ӘДЕПСІЗ КАРТА = utf8

Pycharm -ға дерекқорды қосыңыз

Оң жақтағы дерекқор қойындысын нұқыңыз. Егер сізде ашылмалы қойынды болмаса, мына әрекетті орындаңыз: Көру> Құралдар Windows> Мәліметтер қоры.

Қосылым қосу түймесін басыңыз. Деректер көзі> MySQL таңдаңыз (егер жүктеу драйвері болса, оны басыңыз.)

SSH/SSL өтіңіз және SSH тексеріңіз. Raspberry pi тіркелгі деректерін толтырыңыз (хост/пайдаланушы/құпия сөз). Порт 22 болуы керек және парольді есте сақтауды ұмытпаңыз.

Генерал дегенге қайта келу. Хост жергілікті хост болуы керек және мәліметтер базасы project1 болуы керек. Project1-admin тіркелгі деректерін толтырыңыз және қосылымды тексеріңіз.

Егер байланыс жақсы болса, онда схемалар қойындысына өтіңіз және 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 демон-мені қайта жүктеу@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-Project1 веб-интерфейсіне қызмет көрсету үшін uWSGI данасы Жүктелді: жүктелді (/etc/systemd/system/project1-flask.service; өшірілген; жеткізушіге алдын ала орнатылған: қосылған) Белсенді: белсенді (жұмыс істейді) Дүйсенбі 2018-06-04 13: 14:56 CEST; 1с бұрын Негізгі PID: 6618 (uwsgi) Тапсырмалар: 6 (шектеу: 4915) CGroup: /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

Маусым 04 13:14:56 my-rpi uwsgi [6618]: 5 ядролар үшін 383928 байт (374 KB) салыстырылды 04 маусым 13:14:56 my-rpi uwsgi [6618]: *** Жұмыс режимі: алдын ала өңдеу ***

● project1-sensor.service-Project 1 сенсорлық қызметі жүктелді: жүктелді (/etc/systemd/system/project1-sensor.service; өшірілген; жеткізушінің алдын ала орнатылған: қосылған) Белсенді: белсенді (жұмыс істейді) Дүйсенбі 2018-06-04 13: 16:49 CEST; 5s бұрын Негізгі PID: 6826 (питон) Тапсырмалар: 1 (шектеу: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py

04 маусым 13:16:49 my-rpi systemd [1]: Project 1 сенсорлық қызметі басталды. Маусым 04 13:16:49 my-rpi python [6826]: ҚАТЕСТІК: _ негізгі _: Сақталған сенсор process_count = b'217 / n 'дерекқорға маусым 04 13:16:55 my-rpi питон [6826]: ҚАТЕСТІК: _ негізгі_: Дерекқорға process_count = b'218 / n 'сенсоры сақталды

nginx

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

/etc/nginx/sites-available: барлығы 4 -rw-r-r-1 түбірлік түбір 2416 шілде 12 2017 әдепкі

/etc/nginx/sites-enabled: барлығы 0 lrwxrwxrwx 1 түбірлік түбірі 34 қаңтар 18: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 тесік бұрғыладым.

бөлу

Мен бөлуді түбімен бірдей материалмен жасадым және тақтаны светодиодтармен.

Әрқайсысы 10,3 см (9 см х 31 см) кесілген 4 дана. Енді мен оларды біріктіре аламын.

Түймелер мен RFID оқу құралы

Мен RFID оқу құралы мен түймелерін енгізу үшін негізге тесік жасадым. RFID үшін мен таза көрінуі үшін оның алдына жұқа тақтаны қойдым.

6 -қадам: 6 -қадам: Барлығын тұрғын үйге салу

Бұл сіз қалай жасағыңыз келетініне байланысты. Мен көптеген кабельдерді дәнекерлемей қолдандым, себебі мен Raspberry Pi -ді қайта қолданғым келеді.

Мен светодиодты орнына қойып, корпусқа RFID оқу құралы мен тақталарды жапсырдым.

Міне осылайша сіз Keysorter жасайсыз!

Ұсынылған: