Përmbajtje:
- Hapi 1: Hapi 1: Çfarë do të më nevojitet?
- Hapi 2: Hapi 2: Krijimi i një skeme të bazës së të dhënave
- Hapi 3: Hapi 3: Kodimi
- Hapi 4: Hapi 4: Vendosja e Al Code në My Raspberry Pi
- Hapi 5: Hapi 5: Krijimi i një Strehimi
- Hapi 6: Hapi 6: Vendosja e gjithçkaje në Strehim
Video: Regjistruesi i tastit: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:25
Aktualisht jam duke studiuar NMCT në Howest. Për semestrin tonë të fundit ne duhej të bënim një projekt. Kështu që unë bëra një Keysorter.
Çfarë bën?
Ne kemi shumë çelësa të makinave në shtëpi dhe të gjithë ngjajnë. Kështu që unë bëra një Keysorter për të zgjidhur këtë çështje.
Duhet të skanojë një çelës përmes RFID dhe t'i japë një vend në kuti. Nëse skanoj përsëri të njëjtin çelës do të tregojë vendin e tij të caktuar më parë. Ekziston edhe një buton për të treguar makinën e fundit të larë.
Kjo do të funksionojë në një Raspberry Pi e cila gjithashtu ka një mundësi për të shtuar një faqe në internet përmes Flask.
Në faqe duhet të jem në gjendje të shikoj të gjithë çelësat, të shtoj një emër në një çelës dhe të heq një çelës.
Hapi 1: Hapi 1: Çfarë do të më nevojitet?
Fillova duke bërë një listë të përbërësve që do të më duhen për ta bërë këtë gjë të funksionojë.
Përbërësit:
- Mjedër pi
- 2 x regjistrues Shift (74hc595)
- 3 x buton
- 9 x jeshile led
- Skaner RFID (MFRC522)
- Rezistencë 12 x 220 ohm
Pastaj i futa të gjitha këto në skemën time tërheqëse.
Pasi e bëra këtë, e bëra në jetën reale.
Hapi 2: Hapi 2: Krijimi i një skeme të bazës së të dhënave
Për të ruajtur të dhënat e mia, më duhej të krijoja një bazë të dhënash që mund të funksiononte në Pi tim.
E bëra në Mysql.
Makinë tavoline:
- ID e makinës
- ID e përdoruesit
- Markë (markë makine)
- Lloji
- E larë për herë të fundit
- Celës
- RFID_ID
Hapi 3: Hapi 3: Kodimi
Kur e gjithë kjo ishte gati mund të filloja kodimin.
Fillova duke bërë kodin për sensorin tim në Python 3.5.
Për të shkarkuar kodin klikoni këtu.
Përdorni lidhjen për të klonuar projektin.
Hapi 4: Hapi 4: Vendosja e Al Code në My Raspberry Pi
Instalimi i paketave
Së pari instalova paketat që më duheshin për ta bërë këtë punë.
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
Mjedisi virtual
me@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- paketat e faqeve env me@my-rpi: ~/project1 $ source env/bin/activ (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-lidhës-python passlib
Ngarko projektin në Pi tuaj duke përdorur pycharm
Hapni Pycharm dhe shkoni te VCS> Importo nga Versioni Control> Github dhe klononi skedarin tim github.
Vendosni konfigurimin e vendosjes në drejtorinë që sapo keni bërë. (/shtëpia/unë/projekti 1). Shtypni aplikoni!
Shkoni te cilësimet e përkthyesit dhe zgjidhni mjedisin virtual që sapo keni krijuar. (/home/me/project1/env/bin/pyhon)
Kontrolloni nëse harta e shtegut është e saktë.
Tani mund ta ngarkoni kodin në drejtorinë tuaj duke përdorur Pycharm.
Baza e të dhënave
Kontrolloni nëse baza e të dhënave po funksionon. Ju duhet të merrni diçka si kjo:
me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - Serveri i bazës së të dhënave MariaDB Ngarkuar: ngarkuar (ngarkuar (/lib/systemd/system/mariadb.service; aktivizuar; shitësi i paravendosur: aktivizuar) Aktiv: aktiv (aktiv) që nga Dielli 2018-06-03 09:41:18 CEST; 1 ditë 4 orë më parë PID kryesor: 781 (mysqld) Statusi: "Marrja e kërkesave tuaja SQL tani …" Detyrat: 28 (limit: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
Qershor 03 09:41:13 sistemi im-rpi [1]: Fillimi i serverit të bazës së të dhënave MariaDB … Qershor 03 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Shënim] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) Qershor 03 09:41:18 my-rpi systemd [1]: Filloi serveri i bazës së të dhënave MariaDB.
me@my -rpi: ~ $ ss -lt | grep mysql Dëgjo 0 80 127.0.0.1:mysql *: *
Krijoni përdorues dhe shtoni bazën e të dhënave
me@my-rpi: ~ $ sudo mariadb
pasi të jeni në bazën e të dhënave bëni këtë.
CREATE USER 'project1-admin'@'localhost' IDENTIFIKUAR NGA 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIKUAR NGA 'webpassword'; CREATE USER 'project1-sensor'@'localhost' IDENTIFIKUAR NGA 'sensorpassword';
KRIJONI projektin e BAZAVE TAT DHATNAVE1;
DH GRNI T ALL GJITH PRIVILEGJET N project projektin 1..* Te 'project1-admin'@'localhost' ME GRAND OPTION; ZGJEDHJA E Granteve, INSERT, PPRDITSIM, FSHIJ N ON projektin 1.* P'R 'project1-web'@'localhost'; ZGJEDHJA E GRANTIT, INSERT, PPRDITSIM, FSHIJ N ON projektin 1.* P'R 'projekt1-sensor'@'localhost'; PRIVILEGJET E PARASHIKUAR;
CREATE TABELA `përdorues` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DARAFTIMI CHARSET = utf8
CREATE TABELA `makinë '(` idCar` int (11) NOT NULL AUTO_INCREMENT, `idUser` int (11) NOT NULL,` Brand` varchar (45) DEFAULT NULL, `Type` varchar (45) DEFAULT NULL,` LastWashed` koha e të dhënave DEFAULT NULL, `RFID_Number` varchar (15) DEFAULT NULL,` Key` varchar (5) DEFAULT NULL, PRIMARY KEY (`idCar`,` idUser`), KEY `fk_Car_User1_idx` ('idUser`_, ÇELEYSI I HUAJ (`idUser`) REFERON` përdoruesin` (`idUser`) P DER FSHIRJEN E NJ A VEPRIMI P UR P URDITSIMIN E VEPRIMIT) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARSET PARAPRAK = utf8
Lidhni bazën e të dhënave tuaja me Pycharm
Klikoni në skedën e bazës së të dhënave në anën e djathtë. Nëse nuk keni një skedë të hapur, bëni këtë: Shikoni> Vegla Windows> Database.
Klikoni në shtimin e lidhjes. Zgjidhni Burimin e të Dhënave> MySQL (Nëse ka një buton të shkarkimit të shoferit, shtypeni atë.)
Shkoni te SSH/SSL dhe kontrolloni SSH. Plotësoni kredencialet tuaja Raspberry pi (host/përdorues/fjalëkalim). Porti duhet të jetë 22 dhe mos harroni të kontrolloni fjalëkalimin e kujtuar.
Kthehuni tek Gjenerali. Pritësi duhet të jetë localhost dhe baza e të dhënave duhet të jetë project1. Plotësoni kredencialet nga project1-admin en testoni lidhjen.
Nëse lidhja është në rregull atëherë shkoni te skeda Skemat dhe sigurohuni që projekti1 është i kontrolluar.
Kontrolloni nëse baza e të dhënave është e saktë
me@my-rpi: ~ $ echo 'shfaq tavolina;' | mysql project1 -t -u project1-admin -pFutni fjalëkalimin: + --------------------------- + | Tabelat_në_projekt1 | + ---------------------------+ | sensor | | përdoruesit | +------------------------------+
Skedarët e konfigurimit
Në konfigurimin e drejtorisë do të gjeni 4 skedarë. Ju duhet të ndryshoni emrat e përdoruesit në emrin tuaj të përdoruesit.
I sistemuar
Për të filluar gjithçka, duhet të ekzekutoni këto komanda.
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. shërbim/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-ringarko mua@my-rpi:/project1 $ sudo systemctl fillo projektin1-* me@my-rpi: ~/project1 $ sudo systemctl statusi project1-* ● project1- flask.service-shembulli uWSGI për t'i shërbyer ndërfaqes në internet të projektit 1 Ngarkuar: ngarkuar (ngarkuar (/etc/systemd/system/project1-flask.service; me aftësi të kufizuara; paravendosja e shitësit: e aktivizuar) Aktive: aktive (në punë) që nga e hëna 2018-06-04 13: 14:56 CEST; 1s më parë PID kryesor: 6618 (uwsgi) Detyrat: 6 (kufiri: 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/home/me/ projekt1/conf/uwsgi-flask.ini └─6624/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini
Qershor 04 13:14:56 my-rpi uwsgi [6618]: shënuar 383928 byte (374 KB) për 5 bërthama Qershor 04 13:14:56 my-rpi uwsgi [6618]: *** MODE Operative: preforking ***
● projekt1-sensor.service-Projekt 1 shërbim sensor I ngarkuar: i ngarkuar (/etc/systemd/system/project1-sensor.service; me aftësi të kufizuara; shitësi i paravendosur: aktivizuar) Aktiv: aktiv (aktiv) që nga e hëna 2018-06-04 13: 16:49 CEST; 5s më parë PID kryesor: 6826 (python) Detyrat: 1 (limiti: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
Qershor 04 13:16:49 my-rpi systemd [1]: Filloi shërbimi i sensorit të Projektit 1. Qershor 04 13:16:49 python my-rpi [6826]: DEBUG: _ main _: Procesi i sensor i ruajtur_count = b'217 / n 'në bazën e të dhënave Qershor 04 13:16:55 python my-rpi [6826]: DEBUG: _ main_: Sensori i procesit_count = b'218 / n 'u ruajt në bazën e të dhënave
nginx
me@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 rrënjë rrënjë 2416 Korrik 12 2017 Parazgjedhje
/etc/nginx/sites-enabled: gjithsej 0 lrwxrwxrwx 1 rrënjë rrënjë 34 Janar 18 13:25 parazgjedhje->/etc/nginx/sites-available/default
Për të bërë gjithçka të paracaktuar, ekzekutoni këto komanda.
me@my-rpi:/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi:/project1 $ sudo rm/etc/nginx/sites-enabled/default mua@my- rpi:/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl rinis nginx.service
Fillim Automatik
Le të sigurohemi që gjithçka fillon automatikisht.
Shkoni te drejtoria konf dhe ekzekutoni këto komanda përfundimtare dhe mbaroni!
me@my-rpi:/project1 $ sudo systemctl aktivizo projektin1-*
Nëse rindizni Pi -në tuaj ai duhet të fillojë automatikisht.
Hapi 5: Hapi 5: Krijimi i një Strehimi
Riciklimi
Për të bërë strehimin tim, kam përdorur një dollap të vjetër që nëna ime do ta largonte.
bazë
Kam sharruar 4 dërrasa (34 cm x 26 cm). (pra është një kub nga 34 x 34 x 26).
Në pjesën e poshtme shtova një copë druri të hollë si fund.
Tabela me led
Në mes kam vënë 2 copa të vogla druri në secilën anë të dyja në 9 cm nga lart. Kjo mban tabelën ku do të ulen udhëheqësit.
Tabela me led është një dërrasë e vogël (32 cm x 32 cm).
Kam shpuar 9 vrima për daljen e llambave.
ndarje
Bëra ndarjen me të njëjtin material si pjesa e poshtme dhe tabelën me led.
4 copë secila me një prerje në 10.3 cm (9 cm x 31 cm). Tani unë jam në gjendje t'i bashkoj ato.
Butonat dhe lexuesi RFID
Bëra një vrimë në bazë për të futur lexuesin dhe butonat e mi RFID. Për RFID vendosa një copë bordi të hollë para tij për ta bërë atë të duket më e pastër.
Hapi 6: Hapi 6: Vendosja e gjithçkaje në Strehim
Kjo varet nga mënyra se si dëshironi ta bëni. Unë personalisht kam përdorur shumë kabllo pa bashkim sepse dua të jem në gjendje të ripërdor Raspberry Pi tim.
I ngjita led -et në vend dhe i fiksova lexuesin RFID dhe fletët e bukës në kasë.
Dhe kështu krijoni një Keysorter!
Recommended:
Punoni nga shtëpia Regjistruesi i kohës duke përdorur një mjedër Pi: 7 hapa
Regjistruesi i punës nga shtëpia duke përdorur një Raspberry Pi: Gjatë vitit të kaluar, kam pasur mundësinë të punoj nga shtëpia. Për të cilat më duhej të mbaja gjurmët e orëve që punoja. Duke filluar duke përdorur një spreadsheet Excel dhe duke futur manualisht orët e "clock-in" dhe "clock-out", shpejt zbulova se ishte
Regjistruesi i kujtesës - Dhurata e Krishtlindjeve: 8 hapa (me fotografi)
Regjistruesi i kujtesës - Dhuratë për Krishtlindje: Ciao a tutti! In vista del Natale arriva il momento dei regali, sono sicuro quindi che molti di voi sentiranno la needità di donare qualcosa di speciale. Në kërkim të periudhës së vështirësisë së lartë të menaxhimit të rasteve për kushtet e
Regjistruesi i shpejtësisë së erës dhe rrezatimit diellor: 3 hapa (me fotografi)
Regjistruesi i shpejtësisë së erës dhe rrezatimit diellor: Më duhet të regjistroj shpejtësinë e erës dhe fuqinë e rrezatimit diellor (rrezatimi) në mënyrë që të vlerësoj se sa fuqi mund të nxirret me një turbinë me erë dhe/ose panele diellore. Do të mat për një vit, analizoj të dhënat dhe më pas hartoni një sistem jashtë rrjeti
Arduino Nano Regjistruesi i Zërit Me Mikrofonin MAX9814: 3 Hapa
Arduino Nano Regjistruesi i Zërit Me Mikrofonin MAX9814: Mora një mikrofon MAX9814 nga shpërndarja AZ në Amazon dhe doja ta provoja pajisjen jashtë. Prandaj, unë krijova këtë projekt të thjeshtë të ndërtuar mbi Bugun e Spiunit të Great Scott (botuar nën këtë licencë creative commons). Kam modifikuar strukturën e projekteve mjaft
Mbajtës i tastit inteligjent të kontrolluar nga zëri: 3 hapa (me fotografi)
Mbajtës i çelësave të mençur të kontrolluar nga zëri: A jeni personi që nuk jeni të mirë në menaxhimin e çelësave dhe gjithmonë duhet të provoni secilin çelës për çdo bravë tjetër? Epo mos u shqetësoni, thjesht kapni pak motivim dhe mjetet tuaja krijuese për të përtërirë tuajin mbajtës i çelësave inteligjentë shumë të zërit