Tartalomjegyzék:
- 1. lépés: 1. lépés: Mire lesz szükségem?
- 2. lépés: 2. lépés: Adatbázis sematikus készítése
- 3. lépés: 3. lépés: Kódolás
- 4. lépés: 4. lépés: A kód felhelyezése a Raspberry Pi -re
- 5. lépés: 5. lépés: Ház készítése
- 6. lépés: 6. lépés: Mindent a házba helyezni
Videó: Billentyűzet: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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?
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
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
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
Ú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:
Billentyűzet szervozár: 5 lépés
Billentyűzet szervo zár: Üdvözlök mindenkit, remélem jól telt a nap. Ha nem, akkor remélhetőleg csak nyitott szemmel tekerhet vissza erre az oktatóanyagra és néhány terápiás zenére. A programozás gondot okozhat. Szerencsére ez az oktatóanyag nem jelent problémát, így talán részt vehet
Arduino billentyűzet joystick bővítő doboz és hangvezérlő dolog a Deej használatával: 8 lépés
Az Arduino billentyűzet joystick bővítő doboza és hangvezérlője a Deej használatával: Miért Egy ideje szeretnék egy kis joystickot hozzáadni a billentyűzetemhez az interfész elemek vezérléséhez, vagy más kisebb feladatokat a játékokban és szimulátorokban (MS Flight Sim, Elite: Dangerous, Csillagok háborúja: századok stb.). Továbbá az Elite: Dangerous esetében voltam
A Preonic Rev 3 billentyűzet tokja: 4 lépés
Case a Preonic Rev 3 billentyűzethez: Nemrég vettem egy Preonic Rev. 3 -at a Drop.com -tól (Shameless plug: https://drop.com/?referer=ZER4PR), és alig vártam, hogy elkészítsem. Sajnos nem végeztem elegendő kutatást annak megállapítására, hogy a Rev. 3 PCB nem illeszkedik a Rev.2 tokokhoz, és a legtöbb
Gyors és piszkos billentyűzet (üres billentyűzet): 3 lépés
Gyors és piszkos Das billentyűzet (üres billentyűzet): A Das billentyűzet a legnépszerűbb billentyűzet neve, amelyen nincs felirat a billentyűkön (üres billentyűzet). A Das billentyűzet ára 89,95 dollár. Ez az útmutató segít eligazítani, bár saját kezűleg készíthet bármilyen régi billentyűzetet, amellyel hever
Az Apple alumínium billentyűzet tisztítása . vagy bármely más puha tapintású billentyűzet: 5 lépés
Az Apple alumínium billentyűzet tisztítása …. vagy bármely más lágy érintésű billentyűzet: Bármilyen tiszta vagy, vagy megpróbáljuk megtartani alumínium alma billentyűzetünket, körülbelül egy év múlva mocskosak lesznek. Ez az utasítás segít tisztítani. Legyen óvatos, mert nem vagyok felelős azért, ha a billentyűzet eltörik közben