Tartalomjegyzék:

Billentyűzet: 6 lépés
Billentyűzet: 6 lépés

Videó: Billentyűzet: 6 lépés

Videó: Billentyűzet: 6 lépés
Videó: Billentyűzet kobinációk - 10 kombináció 1 videóban 2024, November
Anonim
Kulcsválogató
Kulcsválogató
Kulcsválogató
Kulcsválogató

Jelenleg az NMCT -t tanulom a Howest -en. Az utolsó félévben projektet kellett készítenünk. Szóval csináltam egy kulcs kulcsot.

Mit csinal?

Rengeteg autó kulcsunk van otthon, és mindegyik hasonlít. Ezért készítettem egy kulcs kulcsot a probléma megoldásához.

Be kell szkennelnie egy kulcsot RFID -n keresztül, és helyet kell adnia a dobozban. Ha újra beolvasom ugyanazt a kulcsot, akkor megjelenik a korábban kijelölt helye. Van egy gomb is, amely az utoljára mosott autót mutatja.

Ez minden esetben egy Raspberry Pi -n fog futni, amelyen lehetőség van weboldal hozzáadására is lombik segítségével.

Ezen az oldalon meg kell néznem az összes kulcsot, nevet adhatok hozzá egy kulcshoz, és eltávolíthatok egy kulcsot.

1. lépés: 1. lépés: Mire lesz szükségem?

1. lépés: Mire lesz szükségem?
1. lépés: Mire lesz szükségem?
1. lépés: Mire lesz szükségem?
1. lépés: Mire lesz szükségem?

Azzal kezdtem, hogy összeállítottam az összetevők listáját, amelyekre szükségem lesz ahhoz, hogy ez a dolog működjön.

Alkatrészek:

  • Raspberry Pi
  • 2 x Shift regiszter (74hc595)
  • 3x gomb
  • 9 x zöld led
  • RFID szkenner (MFRC522)
  • 12 x 220 ohm ellenállás

Aztán mindezt beleraktam a frizurás rajzomba.

Amint ezt megtettem, a való életben sikerült.

2. lépés: 2. lépés: Adatbázis sematikus készítése

2. lépés: Adatbázis vázlat készítése
2. lépés: Adatbázis vázlat készítése

Az adataim mentéséhez létre kellett hoznom egy adatbázist, amely futtatható a Pi -n.

A Mysql -ben készítettem.

Asztali autó:

  • Autóazonosító
  • Felhasználói azonosító
  • Márka (autómárka)
  • típus
  • Utoljára mosva
  • Kulcs
  • RFID_ID

3. lépés: 3. lépés: Kódolás

3. lépés: Kódolás
3. lépés: Kódolás

Ha mindez kész volt, elkezdhettem kódolni.

Azzal kezdtem, hogy a Python 3.5 -ben elkészítettem az érzékelőm kódját.

A kód letöltéséhez kattintson ide.

Használja a linket a projekt klónozásához.

4. lépés: 4. lépés: A kód felhelyezése a Raspberry Pi -re

Csomagok telepítése

Először telepítettem minden olyan csomagot, amelyre szükségem volt a működéshez.

me@my-rpi: ~ $ sudo apt frissítés

me@my-rpi: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Virtuális környezet

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 --rendszer- site-package env me@my-rpi: ~/project1 $ source env/bin/aktiválás (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Lombik-MySQL mysql-csatlakozó-python jelszó

Töltse fel a projektet a Pi -re a pycharm használatával

Nyissa meg a Pycharm programot, és lépjen a VCS> Importálás a verziókezelőből> Github menübe, és klónozza a github fájlomat.

Tegye a telepítési konfigurációt az imént létrehozott könyvtárba. (/home/me/project1). Nyomja meg az Alkalmaz gombot!

Lépjen a tolmácsbeállításokhoz, és válassza ki az imént létrehozott virtuális környezetet. (/home/me/project1/env/bin/pyhon)

Ellenőrizze, hogy az útvonal -leképezés helyes -e.

Most feltöltheti a kódot a könyvtárába a Pycharm használatával.

Adatbázis

Ellenőrizze, hogy fut -e az adatbázis. Valami ilyesmit kell kapnia:

me@my -rpi: ~ $ sudo systemctl állapot mysql ● mariadb.service - MariaDB adatbázis szerver Betöltve: betöltve (/lib/systemd/system/mariadb.service; engedélyezve; előre beállított szolgáltató: engedélyezve) Aktív: aktív (fut) a Sun óta 2018-06-03 09:41:18 CEST; 1 nap 4 órája Fő PID: 781 (mysqld) Állapot: "Az SQL -kérések felvétele most …" Feladatok: 28 (limit: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld

Június 03 09:41:13 my-rpi systemd [1]: A MariaDB adatbázis-kiszolgáló elindítása… június 03. usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) Jun 03 09:41:18 my-rpi systemd [1]: Elindította a MariaDB adatbázis-kiszolgálót.

én@my -rpi: ~ $ ss -lt | grep mysql LISTEN 0 80 127.0.0.1:mysql *: *

Felhasználók létrehozása és az adatbázis hozzáadása

me@my-rpi: ~ $ sudo mariadb

ha már az adatbázisban van, tegye ezt.

FELHASZNÁLÓ LÉTREHOZÁSA 'project1-admin'@'localhost' IDENTIFIED by 'adminpassword'; CREATE USER 'project1-web'@'localhost' IDENTIFIED by 'webpassword'; FELHASZNÁLÓ LÉTREHOZÁSA 'project1-sensor'@'localhost' AZONOSÍTJA a 'sensorpassword';

ADATBÁZIS LÉTREHOZÁSA project1;

ÖSSZESÍTJEN MINDEN JOGOSultságot a project1-en.* A 'project1-admin'@'localhost'-nak Grant Giant opcióval; 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 DEFAULT 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`)" CONSTRAIN FOREIGN KEY (`idUser`) REFERENCES` user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION) MOTOR = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8

Csatlakoztassa az adatbázist a Pycharm -hoz

Kattintson az adatbázis fülre a jobb oldalon. Ha nincs megnyitva lapja, tegye a következőt: Nézet> Eszköz Windows> Adatbázis.

Kattintson a Kapcsolat hozzáadása gombra. Válassza az Adatforrás> MySQL lehetőséget (Ha van gomb letöltő illesztőprogram, nyomja meg.)

Lépjen az SSH/SSL oldalra, és ellenőrizze az SSH -t. Töltse ki a Raspberry pi hitelesítő adatait (gazdagép/felhasználó/jelszó). A portnak 22 -nek kell lennie, és ne felejtse el ellenőrizni a jelszó megjegyzését.

Menj vissza a tábornokhoz. A gazdagépnek localhostnak kell lennie, az adatbázisnak pedig a project1 -nek. Töltse ki a project1-admin hitelesítő adatait hu tesztelje a kapcsolatot.

Ha a kapcsolat rendben van, akkor lépjen a Sémák fülre, és győződjön meg arról, hogy a project1 be van jelölve.

Ellenőrizze, hogy az adatbázis helyes -e

me@my-rpi: ~ $ echo 'táblázatok megjelenítése;' | mysql project1 -t -u project1-admin -pAdja meg a jelszót: + --------------------------- + | Táblák_projektben1 | + ---------------------------+ | érzékelő | | felhasználók | +---------------------------+

Konfigurációs fájlok

A conf könyvtárban 4 fájlt talál. A felhasználóneveket a felhasználónévre kell cserélnie.

Systemd

Minden elindításához végre kell hajtania ezeket a parancsokat.

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 állapot project1-* ● project1- flask.service-uWSGI-példány a project1 webes felület kiszolgálására Betöltve: betöltve (/etc/systemd/system/project1-flask.service; letiltva; előre beállított szállító: engedélyezve) Aktív: aktív (fut) 2018-06-04 13-a óta: 14:56 CEST; 1s ago Fő PID: 6618 (uwsgi) Feladatok: 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

Jún.

● project1-sensor.service-Projekt 1 érzékelő szolgáltatás Betöltve: betöltve (/etc/systemd/system/project1-sensor.service; letiltva; előre beállított szolgáltató: engedélyezve) Aktív: aktív (fut) 2018-06-04 13-a óta: 16:49 CEST; 5s ago Fő PID: 6826 (python) Feladatok: 1 (limit: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py

Június 04 13:16:49 my-rpi systemd [1]: Elindította a Project 1 érzékelő szolgáltatást. Jún. Process_count = b'218 / n 'érzékelő mentve az adatbázisba

nginx

me@my-rpi: ~/project1 $ ls -l/etc/nginx/sites-*

/etc/nginx/sites-available: összesen 4 -rw-r-r-- 1 root root 2416 2017. július 12. alapértelmezett

/etc/nginx/sites-enabled: összesen 0 lrwxrwxrwx 1 root root 34 január 18, 13:25 alapértelmezett->/etc/nginx/sites-available/default

Ha mindent alapértelmezetté kíván tenni, hajtsa végre ezeket a parancsokat.

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

Automatikus indítás

Győződjünk meg arról, hogy minden automatikusan elindul.

Lépjen a conf könyvtárba, és hajtsa végre az utolsó parancsokat, és kész!

me@my-rpi: ~/project1 $ sudo systemctl engedélyezze a projektet1-*

Ha újraindítja a Pi -t, automatikusan elindul.

5. lépés: 5. lépés: Ház készítése

5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése
5. lépés: Ház készítése

Újrafeldolgozás

Lakásomhoz egy régi szekrényt használtam, amit anyám kidobott.

bázis

4 deszkát fűrészeltem (34 cm x 26 cm). (tehát ez egy kocka 34 x 34 x 26 -tól).

Az aljára vékony fadarabot tettem alul.

Tábla ledekkel

Középen két kis fadarabot tettem mindkét oldalra, mindkettőt 9 cm -re a tetejétől. Ez tartja a táblát, ahol a vezetők fognak ülni.

A ledekkel ellátott tábla egy kis tábla (32 cm x 32 cm).

9 lyukat fúrtam, hogy a ledek kijöhessenek.

osztály

A felosztást ugyanabból az anyagból készítettem, mint az alját, a táblát pedig ledekkel.

4 darab 10,3 cm (9 x 31 cm) bemetszéssel. Most már össze tudom őket rakni.

Gombok és RFID olvasó

Lyukat fúrtam az alapba, hogy behelyezhessem az RFID olvasómat és a gombjaimat. Az RFID -hez egy vékony táblát tettem elé, hogy tisztább legyen.

6. lépés: 6. lépés: Mindent a házba helyezni

Ez attól függ, hogyan akarod csinálni. Én személy szerint sok kábelt használtam forrasztás nélkül, mert szeretném újra használni a Raspberry Pi -t.

A helyére ragasztottam a LED -eket, és ragasztottam az RFID -olvasót és a kenyértáblákat a tokhoz.

És így készít egy Kulcsosort!

Ajánlott: