Obsah:
- Krok 1: Krok 1: Co budu potřebovat?
- Krok 2: Krok 2: Vytvoření schématu databáze
- Krok 3: Krok 3: Kódování
- Krok 4: Krok 4: Vložení kódu Al na můj Raspberry Pi
- Krok 5: Krok 5: Výroba bydlení
- Krok 6: Krok 6: Umístění všeho do pouzdra
Video: Klíč: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
V současné době studuji NMCT na Howest. V posledním semestru jsme museli udělat projekt. Tak jsem udělal Keysorter.
Co to dělá?
Máme doma spoustu klíčů od auta a všechny vypadají stejně. Vytvořil jsem tedy Keysorter k vyřešení tohoto problému.
Musí naskenovat klíč pomocí RFID a dát mu místo v krabici. Pokud znovu naskenuji stejný klíč, zobrazí se mu dříve přiřazené místo. K dispozici je také tlačítko pro zobrazení posledního umytého auta.
To poběží na Raspberry Pi, který má také možnost přidat webovou stránku přes Flask.
Na stránce bych se měl podívat na všechny klíče, přidat ke klíči jméno a klíč odebrat.
Krok 1: Krok 1: Co budu potřebovat?
Začal jsem vytvořením seznamu komponent, které budu potřebovat, aby tato věc fungovala.
Složky:
- Malina pi
- 2 x posuvný registr (74hc595)
- 3 x tlačítko
- 9 x zelená LED
- RFID skener (MFRC522)
- 12 x odpor 220 ohmů
Pak jsem to všechno vložil do svého třepotajícího schématu.
Jakmile jsem to udělal, udělal jsem to v reálném životě.
Krok 2: Krok 2: Vytvoření schématu databáze
Abych uložil všechna svá data, musel jsem vytvořit databázi, která by mohla běžet na mém Pi.
Udělal jsem to v MySQL.
Stolové auto:
- ID vozu
- uživatelské ID
- Značka (značka automobilu)
- Typ
- Poslední praní
- Klíč
- RFID_ID
Krok 3: Krok 3: Kódování
Když bylo vše připraveno, mohl jsem začít kódovat.
Začal jsem vytvořením kódu pro můj senzor v Pythonu 3.5.
Chcete -li stáhnout kód, klikněte sem.
Pomocí odkazu klonujte projekt.
Krok 4: Krok 4: Vložení kódu Al na můj Raspberry Pi
Instalace balíčků
Nejprve jsem nainstaloval všechny balíčky, které jsem potřeboval, aby to fungovalo.
já@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
Virtuální prostředí
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 svůj Pi pomocí pycharm
Otevřete Pycharm a přejděte na VCS> Import z Řízení verzí> Github a naklonujte můj soubor github.
Vložte konfiguraci nasazení do adresáře, který jste právě vytvořili. (/home/me/project1). Stiskněte použít!
Přejděte do nastavení tlumočníka a vyberte virtuální prostředí, které jste právě vytvořili. (/home/me/project1/env/bin/pyhon)
Zkontrolujte, zda je mapování cesty správné.
Nyní můžete kód nahrát do svého adresáře pomocí Pycharm.
Databáze
Zkontrolujte, zda je databáze spuštěna. Měli byste získat něco takového:
me@my -rpi: ~ $ sudo systemctl status mysql ● mariadb.service - databázový server MariaDB načteno: načteno (/lib/systemd/system/mariadb.service; povoleno; předvolba dodavatele: povoleno) Aktivní: aktivní (běží) od Sun 2018-06-03 09:41:18 SELČ; Před 1 dnem 4 h Hlavní PID: 781 (mysqld) Stav: „Nyní přijímám vaše požadavky SQL…“Úkoly: 28 (limit: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
3. června 09:41:13 my-rpi systemd [1]: Spuštění databázového serveru MariaDB… 3. června 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. června 09:41:18 my-rpi systemd [1]: Spuštěn databázový server MariaDB.
já@my -rpi: ~ $ ss -lt | grep mysql POSLECH 0 80 127.0.0.1:mysql *: *
Vytvořte uživatele a přidejte databázi
já@my-rpi: ~ $ sudo mariadb
Jakmile jste v databázi, udělejte to.
VYTVOŘIT UŽIVATELE 'project1-admin'@'localhost' IDENTIFIKOVANÉ 'adminpassword'; VYTVOŘIT UŽIVATELE 'project1-web'@'localhost' IDENTIFIKOVANÉ 'webpassword'; VYTVOŘIT UŽIVATELE 'project1-sensor'@'localhost' IDENTIFIKOVÁNO PODLE 'sensorpassword';
VYTVOŘIT DATABÁZI project1;
UDĚLIT VŠECHNY PRIVILEGY na project1.* Na 'project1-admin'@'localhost' S GRANT OPTION; VYBRAT VÝBĚR, VLOŽIT, AKTUALIZOVAT, SMAZAT NA project1.* TO 'project1-web'@'localhost'; VYBRAT VÝBĚR, VLOŽIT, AKTUALIZOVAT, SMAZAT NA project1.* TO 'project1-sensor'@'localhost'; FLUSH PRIVILEGES;
VYTVOŘIT TABULKU `user` (` idUser` int (11) NOT NULL, `Password` varchar (45) DEFAULT NULL, PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8
VYTVOŘIT TABULKU `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` fk_C_ ZAHRANIČNÍ KLÍČ (`idUser`) REFERENCE` user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8
Připojte svou databázi k Pycharm
Klikněte na záložku databáze na pravé straně. Pokud nemáte otevřenou kartu, proveďte toto: Zobrazit> Nástroj Windows> Databáze.
Klikněte na Přidat připojení. Zvolte Zdroj dat> MySQL (Pokud existuje tlačítko pro stažení ovladače, stiskněte jej.)
Přejděte na SSH/SSL a zkontrolujte SSH. Vyplňte své přihlašovací údaje k Raspberry pi (hostitel/uživatel/heslo). Port by měl mít 22 a nezapomeňte zkontrolovat zapamatovat heslo.
Vraťte se ke generálovi. Hostitel by měl být localhost a databáze by měla být project1. Vyplňte přihlašovací údaje od project1-admin a vyzkoušejte připojení.
Pokud je připojení v pořádku, přejděte na kartu Schémata a zkontrolujte, zda je zaškrtnuto project1.
Zkontrolujte, zda je databáze správná
me@my-rpi: ~ $ echo 'show tables;' | mysql project1 -t -u project1-admin -pZadejte heslo: + --------------------------- + | Tables_in_project1 | + ---------------------------+ | snímač | | uživatelé | +---------------------------+
Konfigurační soubory
V adresáři conf najdete 4 soubory. Měli byste změnit uživatelská jména na vaše uživatelské jméno.
Systemd
Chcete -li spustit vše, měli byste spustit tyto příkazy.
me@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-instance uWSGI pro obsluhu webového rozhraní project1 Načteno: načteno (/etc/systemd/system/project1-flask.service; deaktivováno; předvolba dodavatele: povoleno) Aktivní: aktivní (běží) od Po 2018-06-04 13: 14:56 SELČ; Před 1 s Hlavní PID: 6618 (uwsgi) Úkoly: 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. června 13:14:56 my-rpi uwsgi [6618]: namapovaných 383928 bajtů (374 KB) pro 5 jader 4. června 13:14:56 my-rpi uwsgi [6618]: *** Provozní režim: předběžná vidlice ***
● project1-sensor.service-Služba senzoru projektu 1 Načteno: načteno (/etc/systemd/system/project1-sensor.service; deaktivováno; předvolba dodavatele: povoleno) Aktivní: aktivní (běží) od Po 2018-06-04 13: 16:49 SELČ; Před 5 s Hlavní PID: 6826 (python) Úkoly: 1 (limit: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
4. června 13:16:49 my-rpi systemd [1]: Zahájena služba senzoru projektu 1. 4. června 13:16:49 my-rpi python [6826]: DEBUG: _ main _: Uložený senzor process_count = b'217 / n 'do databáze Jun 04 13:16:55 my-rpi python [6826]: DEBUG: _ main_: Senzor process_count = b'218 / n 'uložen do databáze
nginx
já@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
Spusťte tyto příkazy, aby bylo vše výchozí.
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é spuštění
Zajistěte, aby vše začalo automaticky.
Přejděte do adresáře conf a proveďte tyto konečné příkazy a máte hotovo!
já@my-rpi: ~/project1 $ sudo systemctl povolit project1-*
Pokud restartujete Pi, mělo by se spustit automaticky.
Krok 5: Krok 5: Výroba bydlení
Recyklace
K bydlení jsem použil starou skříň, kterou máma odhodila.
základna
Piloval jsem 4 prkna (34 cm x 26 cm). (je to tedy kostka o rozměrech 34 x 34 x 26).
Na dno jsem přidal tenký kousek dřeva jako dno.
Deska s LED diodami
Uprostřed jsem dal 2 malé kousky dřeva na každou stranu, oba na 9 cm od vrcholu. To drží desku, kde budou sedět LED diody.
Deska s LED diodami je malá deska (32 cm x 32 cm).
Vyvrtal jsem 9 otvorů, ze kterých budou ledky vycházet.
divize
Dělení jsem vyrobil ze stejného materiálu jako dno a deska s LED diodami.
4 kusy, každý s řezem 10,3 cm (9 cm x 31 cm). Nyní je mohu dát dohromady.
Tlačítka a čtečka RFID
Do základny jsem udělal díru, do které jsem vložil čtečku RFID a tlačítka. Pro RFID jsem před ni položil tenký kus desky, aby vypadal čistěji.
Krok 6: Krok 6: Umístění všeho do pouzdra
To závisí na tom, jak to chcete udělat. Osobně jsem použil spoustu kabelů bez pájení, protože chci mít možnost znovu použít svůj Raspberry Pi.
Přilepil jsem diody na místo a přilepil čtečku RFID a prkénka k pouzdru.
A takhle si vyrobíte Keysorter!
Doporučuje:
3D klíč s dvojitým pádlem Cw (566 g.): 21 kroků (s obrázky)
3D klíč s dvojitým pádlem Cw (566 g.): Dosud mít přesný, měkký a těžký dvojitý pádlový klíč znamenalo utratit spoustu peněz. Mým záměrem při navrhování tohoto klíče bylo udělat pádlo: a)- levné --- je vyrobeno z plastu se standardní 3D tiskárnoub)- trvanlivé --- použil jsem míč
Klíč USB Arduino Morse Code: 6 kroků
USB klíč Arduino Morseova abeceda: Chtěli jste někdy psát na počítači pomocí morseovky nebo se učit/učit morseovku? Jste na správné stránce! Pro mé další projekty navštivte můj web calvin.sh
Alternativní klíč RFID pro zabezpečení kola: 7 kroků (s obrázky)
Alternativní klíč RFID pro zabezpečení kol: Pro zabezpečení kol je k dispozici pouze spínač zámku zapalování. A zloděj ho může snadno hacknout. Tady přicházím s DIY řešením. Je to levné a snadno se staví. Je to alternativní klíč RFID pro zabezpečení kol. Pojďme to udělat
DIY Windows Přihlašovací klíč: 5 kroků
DIY Windows Přihlašovací klíč: Máte dost oken, která vás žádají o heslo při každém přihlášení? Můžete si nastavit PIN; je snadné si to pamatovat, že? Není to ale tak bezpečné, zejména pokud používáte notebook na veřejnosti, je snazší ho chytit než
Proměňte obyčejný USB klíč na bezpečný USB klíč: 6 kroků
Proměňte obyčejný USB flash disk na bezpečný USB flash disk: V tomto Instructable se naučíme, jak z obyčejného USB flash disku udělat bezpečný USB flash disk. Vše se standardními funkcemi Windows 10, nic zvláštního a nic extra k zakoupení. Co potřebujete: USB flash disk nebo stick. Vřele doporučuji