Sadržaj:
- Korak 1: Korak 1: Šta će mi trebati?
- Korak 2: Korak 2: Izrada sheme baze podataka
- Korak 3: Korak 3: Kodiranje
- Korak 4: Korak 4: Stavljanje Al koda na My Raspberry Pi
- Korak 5: Korak 5: Napravite stambeni prostor
- Korak 6: Korak 6: Stavljanje svega u kućište
Video: Keysorter: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Trenutno studiram NMCT na Howest -u. Za posljednji semestar morali smo napraviti projekt. Tako sam napravio Keysorter.
Šta radi?
Kod kuće imamo puno ključeva od automobila i svi izgledaju slično. Stoga sam napravio Keysorter za rješavanje ovog problema.
Mora skenirati ključ putem RFID -a i dati mu mjesto u kutiji. Ako ponovo skeniram isti ključ, prikazat će se njegovo prethodno dodijeljeno mjesto. Tu je i dugme za prikaz zadnjeg opranog automobila.
Ovo će raditi i na Raspberry Pi -u koji također ima mogućnost dodavanja web stranice putem Flaska.
Na stranici bih trebao moći pregledati sve ključeve, dodati ime ključu i ukloniti ključ.
Korak 1: Korak 1: Šta će mi trebati?
Počeo sam tako što sam napravio spisak komponenti koje će mi trebati da ova stvar funkcionira.
Komponente:
- Malina pi
- 2 x registar pomaka (74hc595)
- 3 x dugme
- 9 x zelena led
- RFID skener (MFRC522)
- 12 x otpornik 220 ohma
Zatim sam sve ovo stavio u svoju šemu prefarbavanja.
Kad sam ovo završio, uspio sam u stvarnom životu.
Korak 2: Korak 2: Izrada sheme baze podataka
Da bih sačuvao sve svoje podatke, morao sam stvoriti bazu podataka koja bi se mogla pokrenuti na mom Pi.
Uspio sam u Mysqlu.
Stoni automobil:
- ID automobila
- Korisnički broj
- Marka (marka automobila)
- Tip
- Zadnje oprano
- Ključ
- RFID_ID
Korak 3: Korak 3: Kodiranje
Kad je sve ovo bilo spremno, mogao sam početi kodirati.
Počeo sam sa izradom koda za svoj senzor u Pythonu 3.5.
Za preuzimanje koda kliknite ovdje.
Koristite vezu za kloniranje projekta.
Korak 4: Korak 4: Stavljanje Al koda na My Raspberry Pi
Instaliranje paketa
Prvo sam instalirao sve pakete koji su mi bili potrebni da ovo funkcionira.
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
Virtuelno okruženje
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 --sistem- web-paketi env me@my-rpi: ~/project1 $ source env/bin/enable (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Prenesite projekat na svoj Pi koristeći pycharm
Otvorite Pycharm i idite na VCS> Uvezi iz kontrole verzija> Github i klonirajte moju github datoteku.
Postavite konfiguraciju implementacije u direktorij koji ste upravo napravili. (/home/me/project1). Pritisnite Apply!
Idite na postavke tumača i odaberite virtualno okruženje koje ste upravo napravili. (/home/me/project1/env/bin/pyhon)
Provjerite je li preslikavanje putanje ispravno.
Sada možete učitati kôd u svoj direktorij pomoću Pycharma.
Baza podataka
Provjerite radi li baza podataka. Trebali biste dobiti nešto poput ovoga:
me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - MariaDB poslužitelj baze podataka Učitano: učitano (/lib/systemd/system/mariadb.service; omogućeno; tvornička postavka: omogućeno) Aktivno: aktivno (radi) od ned 2018-06-03 09:41:18 CEST; 1 dan i 4 sata Glavni PID: 781 (mysqld) Status: "Odmah primamo vaše SQL zahtjeve …" Zadaci: 28 (ograničenje: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
03. jun 09:41:13 my-rpi systemd [1]: Pokretanje MariaDB servera baze podataka … 03. jun 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Napomena] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) 03. jun 09:41:18 my-rpi systemd [1]: Pokrenut MariaDB server baze podataka.
me@moj -rpi: ~ $ ss -lt | grep mysql LISTEN 0 80 127.0.0.1:mysql *: *
Kreirajte korisnike i dodajte bazu podataka
me@my-rpi: ~ $ sudo mariadb
učinite to nakon što ste u bazi podataka.
CREATE USER 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'; CREATE USER 'project1-sensor'@'localhost' IDENTIFICIRANO pomoću 'sensorpassword';
CREATE DATABASE project1;
ODOBRITE SVE PRIVILEGIJE NA Project1.* Na 'project1-admin'@'localhost' SA OPCIJOM GRANTA; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-sensor'@'localhost'; FLUSH PRIVILEGES;
CREATE TABLE `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) MOTOR = InnoDB Zadana CHARSET = utf8
CREATE TABLE `car` (` idCar` int (11) NOT 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`), CONKSTARIN_ STRANI KLJUČ (`idUser`) LITERATURA` user` (`idUser`) ON IZBRIŠI NIKAKVU AKCIJU NA AŽURIRANJE NEMA DJELOVANJA) MOTOR = InnoDB AUTO_INCREMENT = 4 ZADNJA KARTA = utf8
Povežite svoju bazu podataka s Pycharmom
Kliknite na karticu baze podataka s desne strane. Ako nemate otvorenu karticu, učinite sljedeće: Pogled> Alati Windows> Baza podataka.
Kliknite na dodavanje veze. Odaberite Izvor podataka> MySQL (Ako postoji dugme za preuzimanje upravljačkog programa, pritisnite ga.)
Idite na SSH/SSL i provjerite SSH. Popunite svoje akreditive za Raspberry pi (host/korisnik/lozinka). Port bi trebao biti 22 i ne zaboravite provjeriti zapamti lozinku.
Vratite se na General. Domaćin bi trebao biti localhost, a baza podataka projekt1. Ispunite vjerodajnice iz project1-admin en testirajte vezu.
Ako je veza u redu, idite na karticu Sheme i provjerite je li projekt1 provjeren.
Proverite da li je baza podataka ispravna
me@my-rpi: ~ $ echo 'prikaži tablice;' | mysql project1 -t -u project1-admin -pUnesite lozinku: + --------------------------- + | Tablice_u_projektu1 | + ---------------------------+ | senzor | | korisnici | +---------------------------+
Konfiguracijske datoteke
U direktoriju conf naći ćete 4 datoteke. Korisnička imena trebate promijeniti u svoje korisničko ime.
Systemd
Za pokretanje svega trebate izvršiti ove naredbe.
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-ponovo učitaj me@my-rpi: ~/project1 $ sudo systemctl pokreni project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● projekt1- flask.service-uWSGI instanca za opsluživanje web1 sučelja project1 Učitano: učitano (/etc/systemd/system/project1-flask.service; onemogućeno; zadana postavka dobavljača: omogućeno) Aktivno: aktivno (radi) od pon 2018-06-04 13: 14:56 CEST; Prije 1s Glavni PID: 6618 (uwsgi) Zadaci: 6 (ograničenje: 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. lipnja 13:14:56 my-rpi uwsgi [6618]: preslikano 383928 bajtova (374 KB) za 5 jezgara 04. lipnja 13:14:56 my-rpi uwsgi [6618]: *** Način rada: predformiranje ***
● project1-sensor.service-Usluga senzora projekta 1 Učitano: učitano (/etc/systemd/system/project1-sensor.service; onemogućeno; unaprijed zadana vrijednost dobavljača: omogućeno) Aktivno: aktivno (radi) od pon 2018-06-04 13: 16:49 CEST; Prije 5s Glavni PID: 6826 (python) Zadaci: 1 (ograničenje: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
04. jun 13:16:49 my-rpi systemd [1]: Pokrenuta usluga senzora projekta 1. 04. lipnja 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Spremljen senzorski process_count = b'217 / n 'u bazu podataka 04.06.16:55 my-rpi python [6826]: DEBUG: _ main_: Spremljen procesorski broj senzora = b'218 / n 'u bazu podataka
nginx
ja@moj-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 root root 2416 12. jul 2017. podrazumevano
/etc/nginx/enabled-sites: total 0 lrwxrwxrwx 1 root root 34. januar 18 13:25 podrazumevano->/etc/nginx/sites-available/default
Izvršite ove naredbe da bi sve postalo zadano.
me@moj-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 ponovo pokrenite nginx.service
Automatsko pokretanje
Uvjerimo se da sve počinje automatski.
Idite u direktorij conf i izvršite ove posljednje naredbe i gotovi ste!
me@my-rpi: ~/project1 $ sudo systemctl omogući project1-*
Ako ponovno pokrenete Pi, trebao bi se pokrenuti automatski.
Korak 5: Korak 5: Napravite stambeni prostor
Recikliranje
Za stanovanje sam koristio stari ormar koji bi mama odbacila.
baza
Rezao sam 4 daske (34 cm x 26 cm). (dakle, to je kocka dimenzija 34 x 34 x 26).
Na dnu sam dodao tanki komad drveta kao dno.
Ploča sa LED diodama
U sredinu sam stavio 2 mala komada drveta sa svake strane, oba na 9 cm od vrha. Ovo drži ploču na kojoj će LED diode sjediti.
Ploča sa LED diodama je mala ploča (32 cm x 32 cm).
Izbušio sam 9 rupa za izlazak LED -a.
divizija
Napravio sam podjelu od istog materijala kao i dno i ploču sa LED diodama.
4 komada svaki s urezom na 10,3 cm (9 cm x 31 cm). Sada sam u stanju da ih sastavim.
Dugmad i RFID čitač
Napravio sam rupu u podnožju za umetanje RFID čitača i dugmadi. Za RFID sam stavio tanki komad ploče ispred njega kako bi izgledao čišće.
Korak 6: Korak 6: Stavljanje svega u kućište
To ovisi o tome kako želite to učiniti. Osobno sam koristio mnogo kabela bez lemljenja jer želim ponovno koristiti svoj Raspberry Pi.
Zalijepio sam LED diode na mjesto i zalijepio RFID čitač i matične ploče na kućište.
I tako se pravi Keysorter!
Preporučuje se:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom uputstvu ćemo izvršiti otkrivanje lica na Raspberry Pi 4 sa Shunya O/S koristeći biblioteku Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja sa
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima