Përmbajtje:

Regjistruesi i tastit: 6 hapa
Regjistruesi i tastit: 6 hapa

Video: Regjistruesi i tastit: 6 hapa

Video: Regjistruesi i tastit: 6 hapa
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Nëntor
Anonim
Tastierë
Tastierë
Tastierë
Tastierë

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?

Hapi 1: Çfarë do të më duhet?
Hapi 1: Çfarë do të më duhet?
Hapi 1: Çfarë do të më duhet?
Hapi 1: Çfarë do të më duhet?

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

Hapi 2: Krijimi i një skeme të bazës së të dhënave
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

Hapi 3: Kodimi
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

Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
Hapi 5: Krijimi i një Strehimi
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: