Obsah:

Klíč: 6 kroků
Klíč: 6 kroků

Video: Klíč: 6 kroků

Video: Klíč: 6 kroků
Video: Nový v MLM? 6 kroků jak začít 2024, Listopad
Anonim
Klíčenka
Klíčenka
Klíčenka
Klíčenka

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?

Krok 1: Co budu potřebovat?
Krok 1: Co budu potřebovat?
Krok 1: Co budu potřebovat?
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

Krok 2: Vytvoření schématu databáze
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í

Krok 3: Kódování
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í

Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
Krok 5: Výroba bydlení
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: