Obsah:
- Krok 1: Krok 1: Čo budem potrebovať?
- Krok 2: Krok 2: Vytvorenie schémy databázy
- Krok 3: Krok 3: Kódovanie
- Krok 4: Krok 4: Vloženie kódu Al na moju Raspberry Pi
- Krok 5: Krok 5: Výroba bývania
- Krok 6: Krok 6: Umiestnenie všetkého do krytu
Video: Kľúč: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Momentálne študujem NMCT na Howest. Na posledný semester sme museli vypracovať projekt. Tak som urobil Keysorter.
Čo to robí?
Máme doma veľa kľúčov od auta a všetky sú si podobné. Na vyriešenie tohto problému som teda urobil Keysorter.
Musí skenovať v kľúči prostredníctvom RFID a dať mu miesto v schránke. Ak znova naskenujem ten istý kľúč, zobrazí sa mu predtým priradené miesto. K dispozícii je tiež tlačidlo na zobrazenie naposledy umytého auta.
Toto bude bežať na Raspberry Pi, ktoré má tiež možnosť pridať webovú stránku prostredníctvom banky.
Na stránke by som mal mať možnosť pozrieť sa na všetky kľúče, pridať ku kľúču meno a kľúč odstrániť.
Krok 1: Krok 1: Čo budem potrebovať?
Začal som zostavením zoznamu komponentov, ktoré budem potrebovať na to, aby táto vec fungovala.
Komponenty:
- Malinový koláč
- 2 x posuvný register (74hc595)
- 3 x tlačidlo
- 9 x zelená LED
- RFID skener (MFRC522)
- 12 x odpor 220 ohmov
Potom som to všetko vložil do svojej dráždivej schémy.
Keď som to urobil, presadil som sa v skutočnom živote.
Krok 2: Krok 2: Vytvorenie schémy databázy
Aby som uložil všetky svoje údaje, musel som vytvoriť databázu, ktorá by mohla bežať na mojom Pi.
Urobil som to v MySQL.
Stolové auto:
- ID auta
- ID používateľa
- Značka (značka auta)
- Napíšte
- Naposledy prané
- Kľúč
- RFID_ID
Krok 3: Krok 3: Kódovanie
Keď bolo toto všetko pripravené, mohol som začať kódovať.
Začal som vytvorením kódu pre môj senzor v Pythone 3.5.
Ak chcete stiahnuť kód, kliknite sem.
Pomocou odkazu klonujte projekt.
Krok 4: Krok 4: Vloženie kódu Al na moju Raspberry Pi
Inštalácia balíkov
Najprv som nainštaloval všetky balíky, ktoré som potreboval, aby to fungovalo.
ja@my-rpi: ~ $ sudo apt update
ja@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Virtuálne prostredie
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- site-packages env me@my-rpi: ~/project1 $ source env/bin/activate (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Nahrajte projekt na svoj Pi pomocou pycharm
Otvorte Pycharm a prejdite na VCS> Import z ovládania verzií> Github a klonujte môj súbor github.
Vložte konfiguráciu nasadenia do adresára, ktorý ste práve vytvorili. (/home/me/project1). Stlačte tlačidlo Použiť!
Prejdite na nastavenia tlmočníka a vyberte virtuálne prostredie, ktoré ste práve vytvorili. (/home/me/project1/env/bin/pyhon)
Skontrolujte, či je mapovanie cesty správne.
Teraz môžete kód nahrať do svojho adresára pomocou Pycharm.
Databáza
Skontrolujte, či je databáza spustená. Mali by ste získať niečo také:
me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - databázový server MariaDB načítaný: načítaný (/lib/systemd/system/mariadb.service; povolený; predvoľba dodávateľa: povolený) aktívny: aktívny (v prevádzke) od slnka 2018-06-03 09:41:18 SELČ; Pred 1 dňom pred 4 hodinami Hlavný PID: 781 (mysqld) Stav: „Teraz beriem vaše požiadavky SQL …“Úlohy: 28 (limit: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
3. júna 09:41:13 my-rpi systemd [1]: Spustenie databázového servera MariaDB… 3. júna 09:41:15 my-rpi mysqld [781]: 2018-06-03 9:41:15 4144859136 [Poznámka] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) 3. júna 09:41:18 my-rpi systemd [1]: Spustený databázový server MariaDB.
ja@my -rpi: ~ $ ss -lt | grep mysql POČÚVAJTE 0 80 127.0.0.1:mysql *: *
Vytvorte používateľov a pridajte databázu
ja@my-rpi: ~ $ sudo mariadb
akonáhle ste v databáze, urobte to.
VYTVORIŤ UŽÍVATEĽA 'project1-admin'@'localhost' IDENTIFIKOVANÉ 'adminpassword'; VYTVORIŤ UŽÍVATEĽA 'project1-web'@'localhost' IDENTIFIKOVANÉ 'webpassword'; VYTVORIŤ UŽÍVATEĽA 'project1-sensor'@'localhost' IDENTIFIKOVANÉ 'senzorovým heslom';
VYTVORIŤ DATABÁZU project1;
UDELIŤ VŠETKY VÝHODY NA projekt1.* Na 'project1-admin'@'localhost' S MOŽNOSŤOU GRANTU; VYBERTE, VLOŽTE, AKTUALIZUJTE, VYMAZÁVAJTE na project1.* TO 'project1-web'@'localhost'; VYBERTE, VLOŽTE, AKTUALIZUJTE, VYMAZÁVAJTE na project1.* TO 'project1-sensor'@'localhost'; FLUSH PRIVILEGES;
VYTVORIŤ TABUĽKU `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8
VYTVORIŤ TABUĽKU `auto` (` 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`), CONSTRAINT `f`_ar_ ZAHRANIČNÝ KĽÚČ (`idUser`) ODKAZY` user` (`idUser`) NA VYMAZANIE ŽIADNA AKCIA NA AKTUALIZÁCII ŽIADNA AKCIA) MOTOR = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Pripojte svoju databázu k Pycharmu
Kliknite na kartu databázy na pravej strane. Ak nemáte kartu otvorenú, postupujte takto: Zobraziť> Nástroje Windows> Databáza.
Kliknite na položku pridať pripojenie. Vyberte položku Zdroj údajov> MySQL (Ak existuje tlačidlo na stiahnutie ovládača, stlačte ho.)
Prejdite na SSH/SSL a skontrolujte SSH. Vyplňte svoje prihlasovacie údaje k Raspberry pi (hostiteľ/používateľ/heslo). Port by mal mať 22 a nezabudnite si zapamätať heslo.
Vráťte sa k generálovi. Hostiteľ by mal byť localhost a databáza by mala byť project1. Vyplňte poverenia od project1-admin a vyskúšajte pripojenie.
Ak je pripojenie v poriadku, prejdite na kartu Schémy a uistite sa, že je začiarknutý projekt1.
Skontrolujte, či je databáza správna
ja@my-rpi: ~ $ echo 'show tables;' | mysql project1 -t -u project1-admin -pZadajte heslo: + --------------------------- + | Tables_in_project1 | + ---------------------------+ | snímač | | užívatelia | +---------------------------+
Konfiguračné súbory
V adresári conf nájdete 4 súbory. Používateľské mená by ste mali zmeniť na svoje používateľské meno.
Systemd
Na spustenie všetkého by ste mali vykonať tieto príkazy.
ja@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-* ● project1- flask.service-inštancia uWSGI na obsluhu webového rozhrania project1 Načítané: načítané (/etc/systemd/system/project1-flask.service; deaktivované; predvoľba dodávateľa: zapnuté) Aktívne: aktívne (v prevádzke) od Po 2018-06-04 13: 14:56 SELČ; Pred 1 s Hlavný PID: 6618 (uwsgi) Úlohy: 6 (limit: 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
4. júna 13:14:56 my-rpi uwsgi [6618]: namapovaných 383928 bajtov (374 KB) pre 5 jadier 4. júna 13:14:56 my-rpi uwsgi [6618]: *** Prevádzkový režim: predbežná vidlica ***
● project1-sensor.service-Služba senzora projektu 1 Načítané: načítané (/etc/systemd/system/project1-sensor.service; deaktivované; predvoľba dodávateľa: povolená) Aktívna: aktívna (v prevádzke) od Po 2018-06-04 13: 16:49 SELČ; Pred 5 s Hlavný PID: 6826 (python) Úlohy: 1 (limit: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
4. júna 13:16:49 my-rpi systemd [1]: Spustená služba senzora projektu 1. 4. júna 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Uložený senzor process_count = b'217 / n 'do databázy, jún 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Senzor process_count = b'218 / n 'bol uložený do databázy
nginx
ja@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 root root 2416 July 12 2017 default
/etc/nginx/sites-enabled: total 0 lrwxrwxrwx 1 root root 34 Jan 18 13:25 default->/etc/nginx/sites-available/default
Vykonajte tieto príkazy, aby bolo všetko predvolené.
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 restart nginx.service
Automatický štart
Zaistite, aby sa všetko začalo automaticky.
Prejdite do adresára conf a vykonajte tieto posledné príkazy a máte hotovo!
ja@my-rpi: ~/project1 $ sudo systemctl povoliť project1-*
Ak reštartujete počítač Pi, malo by sa to spustiť automaticky.
Krok 5: Krok 5: Výroba bývania
Recyklácia
Na bývanie som použil starú skriňu, ktorú mama zhodila.
základňa
Pílil som 4 dosky (34 cm x 26 cm). (je to teda kocka s rozmermi 34 x 34 x 26).
Na spodok som ako dno pridal tenký kus dreva.
Doska s LED diódami
V strede som položil 2 malé kúsky dreva na obe strany, obidve vo vzdialenosti 9 cm od vrcholu. To drží dosku, kde budú sedieť LED diódy.
Doska s LED diódami je malá doska (32 cm x 32 cm).
Vyvrtal som 9 otvorov, z ktorých budú vychádzať LED diódy.
rozdelenie
Delenie som vyrobil z rovnakého materiálu ako dno a doska s LED diódami.
4 kusy, každý s rezom 10,3 cm (9 cm x 31 cm). Teraz ich môžem dať dohromady.
Tlačidlá a čítačka RFID
Do základne som urobil dieru, do ktorej som vložil čítačku RFID a tlačidlá. V prípade RFID som pred ňu položil tenký kus dosky, aby vyzeral čistejšie.
Krok 6: Krok 6: Umiestnenie všetkého do krytu
To závisí od toho, ako to chcete urobiť. Osobne som použil veľa káblov bez spájkovania, pretože chcem mať možnosť znova použiť svoj Raspberry Pi.
Prilepil som LED diódy na miesto a prilepil čítačku RFID a dosku k puzdru.
A takto si vyrobíte kľúčenku!
Odporúča:
Kľúč s dvojitým pádlom s 3D tlačou (566 gramov): 21 krokov (s obrázkami)
Kľúč Cw s dvojitým pádlom s 3D tlačou (566 gramov): Doteraz mať presný, mäkký a ťažký dvojitý pádlový kľúč znamenalo minúť veľa peňazí. Mojím zámerom pri navrhovaní tohto kľúča bolo pádlo: a)- lacné --- je vyrobené z plastu so štandardnou 3D tlačiarňoub)- trvanlivé --- použil som guľôčku
Kľúč USB Arduino Morseov kód: 6 krokov
USB kľúč Arduino Morseov kód: Chceli ste niekedy písať na počítači pomocou morzeovského kódu alebo sa učiť/učiť morzeovku? Ste na správnej stránke! Pokiaľ ide o moje ďalšie projekty, navštívte môj web calvin.sh
Alternatívny kľúč RFID pre zabezpečenie bicykla: 7 krokov (s obrázkami)
Alternatívny kľúč RFID pre zabezpečenie bicykla: Na zabezpečenie bicykla je k dispozícii iba spínač zámku zapaľovania. A zlodej ho môže ľahko hacknúť. Tu prichádzam s DIY riešením na to. Je to lacné a ľahko sa stavia. Je to alternatívny kľúč RFID na zabezpečenie bicykla. Poďme to zvládnuť
DIY Windows Prihlasovací kľúč: 5 krokov
Urobte si prihlasovací kľúč Windows: Máte už dosť okien, ktoré vás žiadajú o heslo pri každom prihlásení? Môžete si nastaviť pin; je ľahké si ho zapamätať, že? Nie je však špendlík taký bezpečný, najmä ak používate prenosný počítač na verejnosti, je jednoduchšie ho chytiť ako
Premeňte obyčajný USB kľúč na bezpečný USB kľúč: 6 krokov
Premeňte obyčajný USB kľúč na bezpečný USB kľúč: V tomto návode sa naučíme, ako premeniť obyčajný USB kľúč na bezpečný USB kľúč. Všetko so štandardnými funkciami systému Windows 10, nič špeciálne a nič extra na nákup. Čo potrebujete: USB flash disk alebo kľúč. Vrelo odporúčam