Tartalomjegyzék:
- Kellékek
- 1. lépés: A Rasperry Pi előkészítése
- 2. lépés: A Visual Studio Code és a MySQL Workbench beállítása
- 3. lépés: Fritzing diagram
- 4. lépés: Kód a Githubon
- 5. lépés: Normalizált adatbázis -struktúra
- 6. lépés: A kártyaforgalmazó ügye
- 7. lépés: Programozás szolgáltatásként
Videó: Automatikus kártyaelosztó: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Az intelligens kártya forgalmazót választottam első projektemnek, mert szeretek kártyázni. A legjobban nem szeretem a kártyaosztást. Emlékeznie kell minden játékra, hogy hány kártyát kap minden ember. Zavarba ejtő, ha sok kártyajátékot ismersz. A projektem segítséget nyújt azoknak az embereknek is, akiknek nehézségeik vannak a kártyák terjesztésével, mint például az idősek és a Parkinson -kórban szenvedők.
Kellékek
- 1 Raspberry Pi (én egy Raspberry Pi 4 -et használtam)
- SD kártya (16 GB ajánlott)
- 1 kenyér darab Raspberry Pi-hez (T-darab)
- 2 kenyérsütő
- 1 Tápegység modul 5V és 3V3 kenyértáblához
- 1 LCD kijelző
- 1 potenciométer
- 1 MPU6050 (gyorsulásmérő és giroszkóp)
- 1 NPN tranzisztor
- 1 PCF8574N I/O bővítő
- 1 léptetőmotor
- 1 ULN2003 törőlap a léptetőmotor vezérléséhez
- 1 HC-SR04 ultrahangos érzékelő
- 1 5V egyenáramú motor
- 1 dióda
- 6 470 Ohm ellenállás
- 4 db 10K ohmos ellenállás
- Elektromos vezeték mindenhez
Hasznos a készítés során:
- Forrasztópáka
- Forrasztó
- Dremel vagy szúrófűrész (valami fa és abs műanyag vágásához)
Szoftver:
- Gitt
- MySQL munkaasztal
- Win32 lemezképalkotó
- Kódszerkesztő (a Visual Studio Code -ot javaslom)
- WinSCP
- Raspbian kép
1. lépés: A Rasperry Pi előkészítése
Először elő kell készítenünk a Raspberry Pi -t, mielőtt bármi mást tennénk. Mivel minden a Pi -n fog futni, ez a kártyaosztó egyik legfontosabb darabja.
Telepítés:
Töltse le a Raspbian képet a https://www.raspberrypi.org/downloads/raspberry-pi-os/ webhelyről
- Töltse le a ZIP-fájlt
- Bontsa ki a ZIP-fájlt, ahol könnyen megtalálhatja
- Nyissa meg a Win32 Disk Imager alkalmazást, és válassza ki a kibontott képet
- Válassza ki az SD -kártyát a legördülő menüből, és kattintson az írásra
- Az írás befejezése után bezárhatja a Win32 Disk Imager alkalmazást
Most még néhány dolgot el kell végeznünk, mielőtt csatlakoznánk a Pi -hez
- Keresse meg a rendszerindító mappát az SD -kártyán
- Nyissa meg a cmdline.txt fájlt
- Adja hozzá az „ip = 169.254.10.1” szót a szóközökkel elválasztott sor végéhez
- Mentse el és lépjen ki a fájlból
- Hozzon létre ugyanabban a könyvtárban egy ssh nevű fájlt, és távolítsa el a kiterjesztést (ez engedélyezi az ssh -t az első indításkor, hogy csatlakozhassunk a Pi -hez)
- Biztonságosan vegye ki az SD -kártyát, és tegye a Pi -be
Most csatlakozhatunk a Pi -hez:
- Fogja meg az Ethernet -kábelt, és helyezze be egyik végét a Pi -be, másik végét a számítógépbe
- Nyissa meg a Putty -t
- Írja be a 169.254.10.1 parancsot a Gazdagép neve mezőbe
- Győződjön meg arról, hogy az SSH van kiválasztva, és a port 22
- Kattintson a Megnyitás gombra
- Ha figyelmeztetést kap, folytathatja és figyelmen kívül hagyhatja
- A felhasználónév pi, a jelszó pedig málna
A szoftver konfigurálása és telepítése:
Nyissa meg a raspi-config parancsot a következő paranccsal:
sudo raspi-config
Válassza ki az ötödik opciót: Interfész opciók
Engedélyezze az SPI -t és az I2C -t
A 3. opcióban tiltsa le a következőket: Indítási lehetőségek:
- Splash képernyő
- Indításkor válassza a cli -t, és ne az asztalt
Wifi beállítás:
A Wifi hasznos a webhely könnyű navigálásához. Győződjön meg arról, hogy közel vannak a wifi hitelesítő adatokhoz.
A wifi beállításához néhány dologra szükségünk van:
Adja hozzá wifi -jét ezzel a paranccsal, és módosítsa az SSID -t és a JELSZÓT az Ön adataira:
sudo wpa_passphrase "SSID" "JELSZÓ" >> /etc/wpa_supplicant/wpa_supplicant.conf
A wifi újrakonfigurálásához hajtsa végre ezt a parancsot:
sudo wpa_cli
Válassza ki a megfelelő felületet:
wlan0 interfész
Konfigurálja újra a felületet:
konfigurálja újra
Ellenőrizze, hogy az újrakonfigurálás sikeres volt -e ezzel a paranccsal:
ip a
Ha lát egy IP-címet a wlan0 interfészen, akkor minden be van állítva.
Operációs rendszer frissítése
Frissítse az operációs rendszert a következő két paranccsal:
sudo apt frissítés
sudo apt teljes frissítés
A MariaDB beállítása:
Az Apache webszerver telepítése:
sudo apt install apache2 -y
A MariaDB szerver telepítése:
sudo apt install mariadb -server -y
Most újra kell indítanunk:
sudo újraindítás
Javasoljuk, hogy biztosítsa a MariaDB telepítését. Ezt a parancs futtatásával teheti meg:
sudo mysql_secure_installation
Először meg kell adnia az aktuális root jelszót, de az alapértelmezett telepítésben nincs, ezért nyomja meg az enter billentyűt.
Ezután megkérdezi, hogy szeretne -e root jelszót beállítani, írja be az y billentyűt. Ügyeljen arra, hogy emlékezzen a jelszóra!
- Írja be az y gombot a névtelen felhasználók eltávolításához
- Írja be az y billentyűt a root bejelentkezés távoli letiltásához
- Írja be az y billentyűt a tesztadatbázisok eltávolításához és azok eléréséhez
- Írja be az y gombot a privát jogosultságok újratöltéséhez
A MariaDB telepítésének biztonságosnak kell lennie!
Most létrehozhatunk egy új felhasználót:
Írja be a mysql shellt ezzel a paranccsal:
sudo mysql
Hozzon létre egy felhasználót a mysql felhasználónévvel és egy jelszóval (your_password) a következő parancsokkal:
hozzon létre mysql@localhost felhasználót, amelyet a 'your_password' azonosít;
adjon meg minden jogosultságot a *. * címen a mysql@localhost számára;
FLUSH PRIVILEGES;
Lépjen ki a mysql shellből ezzel a paranccsal:
kijárat;
Python csomagok:
A Python -ot már telepíteni kell, hacsak nem a Lite verziót választja:
sudo apt install python3-pip
Jó mennyiségű Python csomagra van szükségünk, mindegyiket a következő paranccsal telepítheti:
pip3 install mysql-connector-python flask-socketio flask-cors gevent gevent-websocket
Most újra kell indítanunk
sudo újraindítás
2. lépés: A Visual Studio Code és a MySQL Workbench beállítása
Csatlakozás a Pi -hez MySQL Workbench segítségével:
Nyissa meg a MySQL Workbench -t
Hozzon létre új kapcsolatot a Pi -vel a következő információkkal:
- Kapcsolat neve: Raspi
- Csatlakozási módszer: Standard TCP/IP SSH -n keresztül
- SSH gazdagépnév: a Pi IP-címe
Ezzel a paranccsal kaphatja meg az IP-címet:
ip a
- SSH felhasználónév: pi
- MySQL gazdagépnév: 127.0.0.1
- MySQL szerver port: 3306
- Felhasználónév: mysql
Kattintson az OK gombra, és írja be a pi felhasználó jelszavát, majd írja be a mysql felhasználói jelszavát.
A Visual Studio kód beállítása:
Nyissa meg a Visual Studio Code -ot
Telepítse ezt a 2 bővítményt:
- Távirányító - SSH
- Távoli - SSH: A konfigurációs fájlok szerkesztése
Nyomja meg a Visual Studio F1 kódot, és írja be az ssh parancsot
Válassza a Távoli SSH lehetőséget: Új SSH -gazdagép hozzáadása
Töltse ki az ssh pi@IP-címet
A következő lépésben nyomja meg az enter billentyűt
A kapcsolat most létrejött a Pi -vel. Csatlakozhat a Pi -hez az F1 megnyomásával, és válassza a Csatlakozás a távoli gazdagéphez lehetőséget.
Adja meg a jelszót, hogy a Visual Studio Code hozzáférjen a Pi -hez.
Még egy dolog: Telepítse a Python kiterjesztést a távoli gépre, hogy könnyen futtassa és hibakeresést végezzen.
3. lépés: Fritzing diagram
Ebben a lépésben elmagyarázom az áramkört.
A fenti vázlatok Fritzing segítségével készültek.
DC motor:
Csatlakoztassa a GPIO 18 -at a kollektor bázisához, az npn tranzisztor középső csapjához. Csatlakoztassa a motor földjét a tranzisztor kollektorához, és a motor tápellátását 5 V -ra. Csatlakoztassa a tranzisztor földjét a földhöz. Csatlakoztassa a diódát a sorompóba a motor fölé, hogy megakadályozza, hogy az áram közvetlenül a tranzisztorba áramoljon.
Léptetőmotor:
Csatlakoztassa a léptetőmotort a vezérlőpulthoz. A vezérlőpanelen az egyik oldalon vannak 5V -os és földelő csatlakozók. A többi csap vezérlőcsap. Ezek a csapok szabályozzák a motor belsejében lévő mágneseket, hogy elfordulhassanak. Csatlakoztassa ezeket a csapokat a GPIO 12, 16, 20 és 21 -hez a Raspberry Pi -n.
HC-SR04 ultrahangos:
Ez az érzékelő hang segítségével 4,5 méteres távolságot képes mérni.
Csatlakoztassa a VCC csapot az 5V -hoz, a triggercsapot a GPIO 25 -höz, a visszhangcsapot 470 ohmos ellenállással a GPIO 24 -hez és a földet 470 ohmos ellenállással a földhöz.
MPU6050:
Csatlakoztassa a VCC csapot a 3V3 -hoz, a földet a földhöz, scl -t a Pi -n lévő scl -hez és az sda -t az Pi -hez. Ennek az érzékelőnek az I2C vezérlését használom. Bővebben itt olvashat róla. Íme egy alapvető magyarázat: A Pi a mester, az MPU6050 pedig a szolga. Az scl vonalon keresztül a Pi vezérli az időzítést, és az sda vonal adatküldésre szolgál a mestertől a slave -hez vagy a slave -től a masterhez. Csak a mester kezdeményezheti az adatátvitelt.
Fényfüggő ellenállás:
Az LDR helyes leolvasásához MCP3008 chipet használok. Ez biztosítja, hogy az ldr leolvasása stabil és helyesen legyen konvertálva analógból digitális jelekké.
Csatlakoztassa a 3V3 -at az ldr egyik oldalához 10K ohmos ellenállással. Az ldr és az ellenállás között csatlakoztasson egy vezetéket az MCP3008 0 csatornájához. Ezután csatlakoztassa az ldr másik oldalát a talajhoz.
LCD kijelzö:
Az LCD kijelzőt PCF8574 nélkül is használhatja, de mivel a Pi GPIO csapjai korlátozottak, PCF8574 -et használok néhány GPIO tű mentésére. Használhat műszakregisztert is, de én a PCF8574 -et részesítem előnyben. A PCF8574 -et az SMbus protokollal vezérelheti, de saját osztályt írtam a vezérléséhez. A potenciométer szabályozza a kontrasztot.
LCD kijelző csapok:
- VSS a földre
- VDD - 5V
- V0 a potenciométer változó csapjához
- RS a GPIO 13 -hoz
- R/W földelni, mert csak a kijelzőre írok és nem olvasok
- E - GPIO 19
- A PCF DB0 -tól P0 -ig
- DB1 - P1
- DB2 - P2
- DB3 - P3
- DB4 - P4
- DB5 - P5
- DB6 - P6
- DB7 - P7
- LED+ 5V
- LED- a földhöz
PCF8574 csapok:
- A0 a földhöz
- A1 a földre
- A2 a földre
- Földtől földig
- VCC 5V -ig
- SDA - GPIO 27
- SCL - GPIO 22, 330 ohmos ellenállással
Lehet, hogy nem rendelkezik LED+ és LED- típusokkal, attól függően, hogy milyen típusú kijelzőt kapott. A LED+ és a LED- a háttérvilágítás.
Csatlakoztassa a potenciométer pozitív oldalát 5V -ra, a földet pedig a földre.
Ügyeljen arra, hogy felhúzó ellenállásokat használjon!
4. lépés: Kód a Githubon
Az összes szükséges kódot megtalálod a Githubomon.
Mappaprojekt1:
Ez a mappa tartalmazza a háttérrendszer összes kódját. A mappában a Klasses tartalmazza a hardver vezérlésére szolgáló összes osztályt.
A mappatárak 2 fájlt tartalmaznak: Database.py és DataRepository.py. A Database.py fenntartja a kapcsolatot az adatbázissal és kezeli a lekérdezéseket. A DataRepository.py tartalmazza a webhelyhez szükséges összes lekérdezést.
Az App.py a háttérrendszer fő fájlja. Ez a fájl automatikusan elindul, amikor a Pi elindul.
A Config.py néhány beállítást tartalmaz az adatbázishoz való csatlakozáshoz. Feltétlenül töltse ki ezeket a fájlokat saját adataival.
Ezt a mappát bárhol elhelyezheti a saját könyvtárában.
Mappa html:
Ez a mappa tartalmazza a webhely, a kezelőfelület összes fájlját.
- A mappa tartalmazza a webhely elrendezéséhez szükséges fájlokat.
- A Betűtípusok a webhelyen használt betűtípusokat tartalmazza.
- A szkript tartalmazza az összes Javascript fájlt, hogy dinamikus legyen a webhely
Ennek a mappának a/var/www/html mappában kell lennie
Fájlt vagy mappát másolhat ezzel a paranccsal:
sudo mv/elérési út//aktuális/könyvtár/útvonal/célállomás/könyvtár
A böngészőben a webhely típusához való navigáláshoz az LCD-kijelzőn megjelenő IP-cím.
5. lépés: Normalizált adatbázis -struktúra
Ebben a lépésben importáljuk az adatbázist.
- Csatlakozzon Raspberry Pi készülékéhez a MySQL Workbench segítségével
- Kattintson a Szerver -> Adatok importálása elemre
- Válassza az Önálló fájl importálása lehetőséget
- A Github adatbázis-export mappájában van egy dump fájl, dump_project1.sql
- Keresse meg ezt a fájlt, és kattintson az importálás indítása gombra
Ez az. A Pi most hozzáférhet az adatbázishoz, ha rendelkezik a megfelelő információkkal.
6. lépés: A kártyaforgalmazó ügye
Ebben a lépésben elmagyarázom, hogy mit használtam a tokhoz, és hogyan szereltem fel mindent.
Ebben az esetben 2 ABS dobozt használtam:
- 265 x 185 x 95 mm
- 171 x 121 x 80 mm
A lyukakat, amelyeket a dobozokban csináltam
Lyuk az LCD kijelzőhöz, 3 lyuk a tápkábelekhez, egy a léptetőmotor, a DC motor és az ultrahangos érzékelő vezetékeihez.
A legkisebb dobozban lyukat készítettem a vezetékekhez az alkatrészekből és egy lyukat a kártyák áthaladásához. A tetején csináltam a legnagyobb lyukat, így játékkártyákat helyezhetsz a készülékbe.
Felszereltem az egyenáramú motort egy konzolral és néhány kétoldalas szalaggal. Készítettem egy fából készült táblát, amelyre a kártyákat fektettem, és egy lyukat a keréknek, hogy lőhessen egy kártyát.
Azért választottam az ABS műanyagot, mert könnyű, így a léptetőmotor könnyen el tudja forgatni. A fa nagyon nehéz lehet, és a léptetőmotornak problémái lehetnek ezzel. A lyukak kivágásához fémet használtam, fémhez és Dremelhez tervezett fúrószárral. A nagyobb lyukak kivágása sokkal több munkát igényelt, és a szúrófűrész jobb lenne.
7. lépés: Programozás szolgáltatásként
Nagyon hasznos, ha a kód a Pi indítása után kezdődik. Ehhez szolgáltatást fogunk nyújtani.
Hozzon létre egy új fájlt smartcard.service néven a következő paranccsal:
sudo nano /etc/systemd/system/smartcard.service
Ennek be kell mennie a fájlba:
[Mértékegység]
Leírás = Intelligens kártya háttérkép = After.net = többfelhasználós.cél A WorkingDirectory a mappa elérési útja, ahol a program található
Most megvan a saját intelligens kártyája!
Ajánlott:
Automatikus kézfertőtlenítő: 8 lépés
Automatikus kézfertőtlenítő: A COVID-19 világjárvány olyan dolog lett, amelyet a nyilvánosság nagyon gyakran hallott 2020 folyamán. Minden polgár, aki hallja a „COVID-19” szót, azonnal a „Veszélyes”, „Halálos”, „Tiszta maradjon” szóra fog gondolni”, És más szavakkal. Ez a COVID-19 is
DIY automatikus kézfertőtlenítő adagoló: 6 lépés
DIY automatikus kézfertőtlenítő adagoló: Ebben a projektben egy automatikus kézfertőtlenítő adagolót építünk. Ez a projekt Arduino -t, ultrahangos érzékelőt, vízpumpát és kézfertőtlenítőt fog használni. Ultrahangos érzékelőt használnak a kezek jelenlétének ellenőrzésére a fertőtlenítő gép kimenete alatt
Mobil teljes feltöltés automatikus kikapcsolás: 20 lépés
Mobil teljes töltés automatikus kikapcsolása: A mobiltelefon töltésének leállítása automatikusan történik, ha teljesen fel van töltve. Ne aggódjon az akkumulátor élettartama miatt, még akkor sem, ha éjszakára hagyta. A mobiltelefonokat az akkumulátorok működtetik. Bár az elemek praktikusak, használatuk bizonyos óvintézkedéseket is igényel. Egy ma
Automatikus kutyaadagoló !!: 4 lépés
Automatikus kutyaadagoló !!: Könnyű, segítőkész és egészséges
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítás - automatikus vízi növények távoli megfigyeléssel: 21 lépés
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítások - Automatikus vízi növények távoli felügyelettel: Ebben az oktatóanyagban bemutatjuk, hogyan kell beállítani egy egyéni beltéri/kültéri növényadagoló rendszert, amely automatikusan öntözi a növényeket, és távolról felügyelhető az Adosia platform használatával