Мазмұны:
- 1 -қадам: 1 -қадам: Маған не қажет?
- 2 -қадам: 2 -қадам: мәліметтер қорының схемасын жасау
- 3 -қадам: 3 -қадам: кодтау
- 4 -қадам: 4 -қадам: кодты Raspberry Pi -ге енгізу
- 5 -қадам: 5 -қадам: баспана салу
- 6 -қадам: 6 -қадам: Барлығын тұрғын үйге салу
Бейне: Кілтші: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен қазір Howest -те NMCT оқимын. Соңғы семестрде бізге жоба жасау керек болды. Осылайша мен Keysorter жасадым.
Ол не істейді?
Бізде автокөліктің кілті көп, және бәрі ұқсас. Мен бұл мәселені шешу үшін Keysorter жасадым.
Ол RFID арқылы кілтті сканерлеп, қорапта орын беруі керек. Егер мен сол кілтті қайтадан сканерлесем, ол бұрын тағайындалған орынды көрсетеді. Сондай -ақ, соңғы жуылған машинаны көрсететін түйме бар.
Бұл Raspberry Pi -де жұмыс істейді, оның ішінде Flask арқылы веб -бетті қосу мүмкіндігі бар.
Бетте мен барлық кілттерді қарап, кілтке атау қосып, кілтті алып тастауым керек.
1 -қадам: 1 -қадам: Маған не қажет?
Мен бұл нәрсені жасау үшін қажет компоненттердің тізімін жасаудан бастадым.
Компоненттер:
- Таңқурай пи
- 2 x Shift регистрі (74hc595)
- 3 x түймесі
- 9 x жасыл светодиод
- RFID сканері (MFRC522)
- 12х резистор 220 Ом
Содан кейін мен мұның бәрін жұмсақ схемаға енгіздім.
Мен мұны жасағаннан кейін мен оны нақты өмірде жасадым.
2 -қадам: 2 -қадам: мәліметтер қорының схемасын жасау
Деректерді сақтау үшін мен Pi -де жұмыс істейтін мәліметтер базасын құруға тура келді.
Мен оны Mysql -де жасадым.
Үстел көлігі:
- Көлік нөмірі
- Қолданушының ID
- Бренд (автомобиль маркасы)
- Түрі
- Соңғы жуылған
- Кілт
- RFID_ID
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 -қадам: баспана салу
Қайта өңдеу
Тұрғын үй жасау үшін мен ескі шкафты қолдандым, анам оны алып кететін.
негіз
Мен 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 жасайсыз!
Ұсынылған:
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Түймені іске қосатын қадам реттегіші: 4 қадам
Түймені іске қосатын қадам реттегіші:
Тікелей 4G/5G HD бейне ағыны DJI Drone -ден төмен кідірісте [3 қадам]: 3 қадам
Тікелей 4G/5G HD бейне ағыны DJI Drone-ден төмен кідірісте [3 қадам]: Келесі нұсқаулық кез-келген DJI дронынан HD сапалы бейне ағындарын алуға көмектеседі. FlytOS мобильді қосымшасы мен FlytNow веб -қосымшасының көмегімен сіз дроннан бейне ағынды бастай аласыз
Кілтші! Кілттерді жоғалтпайтын құрылғы!: 3 қадам (суреттермен)
Кілтші! Сіздің кілттеріңізді жоғалтпайтын құрылғы!: Бұл құрылғы кілттерді жоғалтпауға көмектеседі! Егер сіз мен сияқты болсаңыз, онда сіз жұмыстан үйге келгенде есікті ашқаннан кейін бірден кілттеріңізді жоғалтып аласыз және оларды іздеуге кетер алдында келесі күнге дейін күтесіз. Иә, сізде болуы мүмкін