Tartalomjegyzék:
- Lépés: Az anyagok
- 2. lépés: Az elektromos áramkör
- 3. lépés: Az érzékelők kódolása
- 4. lépés: Az érzékelők előkészítése és elhelyezése
- 5. lépés: A Mátrix modul előkészítése és elhelyezése
- 6. lépés: Az IoT létrehozása
- 7. lépés: A Raspberry Pi csatlakoztatása
- 8. lépés: Az adatbázis beállítása
- 9. lépés: A webhely létrehozása
- 10. lépés: Csatlakozás a világhálóhoz
- 11. lépés: Befejezés
Videó: Raspberry Pi IoT csocsóasztal: 11 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Üdvözöljük a feltört foosball asztal verziójában, az új média és kommunikációs technológia hallgatói projektjének részeként. Alapvetően a csocsó és a biliárdasztalok körül nőttem fel, ezért úgy gondoltam, hogy jó lenne megpróbálni csatlakoztatni az egyik ilyen eszközt az internethez.
A fő beállítás egy Raspberry Pi -hez csatlakoztatott meglévő csocsóasztalt használ, amely a következő feladatok mindegyikét képes elvégezni:
- GPIO csapokat használ az IR LED/vevők és a 8x8 pontmátrix modulok meghajtásához
- Flask webhelyet futtat nginx használatával
- MySQL/MariaDB adatbázist futtat az adatok tárolására
A projekt újbóli létrehozásához a következő készségekre lesz szüksége:
Háttér:
- A HTML/CSS/Javascript megértése a webhely ügyfele számára
- A Python megértése a Flask/Flask-SocketIO/Jinja2 segítségével a webhely szerveroldalához
- Alapvető ismeretek a MySQL -ről
- Tudja, hogyan kell futtatni egy webszervert
Prototípus
- Alapvető ismeretek az elektromos áramkör bekötéséről
- Forrasztás
- Alapvető ismeretek a szkript írásához Pythonban
- Linux (Raspbian) használata
- Sok türelme van, mert sok hibakeresés lesz
Lépés: Az anyagok
Itt található a táblázat az összes szükséges alkatrésszel:
- Raspberry Pi Model 3 (burkolattal)
- T-Cobbler a Pi és a kenyértábla csatlakoztatásához
- Csocsó asztal (én egy ehhez hasonló, nagyon régi asztalt használtam. Hajlandó vagyok lyukakat fúrni benne)
- MAX7219 Arduino Dot Matrix modul (2)
- IR LED -sugárzók (2+, mert törnek, hasonlóan ehhez)
- IR -vevők (2+, mert szintén törnek, hasonlóan ehhez)
- Alap forrasztás nélküli kenyeretábla
- Sok -sok drót (a csocsóasztal méretétől függően)
- férfi csatlakozók (30+)
- női csatlakozók (10+)
- 100-220 ohmos ellenállások (4+)
- forrasztóanyagok
- drótpántok
- LED tartók
- néhány fa/csavar abban az esetben, ha a labdát az ereszcsatornába szeretné továbbítani
A projekt teljes költsége teljes mértékben függ a csocsóasztal költségétől (drága). Az asztal mellett az anyagok maximum 150 euróba kerülnek.
2. lépés: Az elektromos áramkör
Mielőtt megpróbálna forrasztani, szerelje össze az összes alkatrészt, erősen javaslom, hogy először tesztelje kenyérsütőn. Könnyebb kicserélni a hibás alkatrészeket, mielőtt órákat töltött forrasztással.
Először megpróbáltam megvalósítani a 8x8 LED -es mátrixot 74HC595 váltóregiszterrel (első kép) és tranzisztor tömbrel, de a sok vezeték és nagyon alacsony kimenet miatt a MAX7219 pontmátrix modulra váltottam, mert csak 5 vezetéket vesz igénybe, és közvetlenül hajtja SPI busz.
Az áramkört, amelyet végül használtam, Fritzing segítségével rajzolták meg. Kérjük, vegye figyelembe, hogy az infravörös LED -ek és vevőegységek bármelyik ingyenes GPIO -tűhöz csatlakoztathatók.
Az infravörös vevőkészüléknek és a LED -nek közvetlenül egymással szemben kell lenniük, a LED tetejét pedig a vevő felé kell mutatni. Mivel közvetlen sugárzást akarunk szimulálni, amelyet a labda mozgása megtörhet, ilyenkor a vevő DATA vonalának állapotváltozása 0 -ról 1 -re változik.
3. lépés: Az érzékelők kódolása
A projekt nagy részét a Pycharm használatával kódoltam, mert lehetővé teszi az SSH egyszerű telepítését a Raspberry Pi -n a távoli tolmács segítségével. Nem részletezem, hogyan működik ez a program, de sok információ megtalálható a pycharm weboldalán.
Jelenleg még dolgozom a projekten, de ha minden kész, az egész projekt elérhető lesz a github profilomon
Az érzékelők kódja 3 osztályból áll, amelyeket egy háttérszálban futtatnak a Flask szerveremen (ezt később kifejtjük):
- A célosztály (link) -Ez a fájl kezdeményezi az összes különálló összetevőt, amelyek a megfelelő SPI eszköz/busz és pin szám beillesztésével hívhatók le
- A Mátrix osztály (link) -Ez a fő osztály a MAX7219 modul bekapcsolásához
- A LED és a vevő osztály (link) - Ez a fő osztály az infravörös megszakító sugár bekapcsolására külön szálak használatával, hogy csökkentse az RPi CPU terhelését
A LED és a vevőegység egyaránt 38 kHz -es frekvencián működik, és a vevőkészülékek mindig 50% -os felfelé és 50% -os lefelé irányuló impulzust várnak el a megfelelő működéstől.
4. lépés: Az érzékelők előkészítése és elhelyezése
Most előkészítjük az IR LED -et és a vevőt. A táblázat képében u megtalálja azokat a helyeket, ahol az RPi -t és az érzékelőket el kell helyezni.
De először elő kell készítenünk a vezetékeket:
- Győződjön meg arról, hogy megmérte a szükséges huzalmennyiséget az RPi/kenyérlap helyétől az érzékelő helyéig
- Forrasztja az IR vevő csapjait a vezeték egyik végére (COM/GND/V+)
- Forrasztja a dugaszoló csatlakozókat a vezeték másik végén
Most elkészítjük az asztalt:
- Készítsen egy alaprajzot (a kép alapján), hogy hol kell fúrni. Nagyon fontos, hogy a 2 lyuk egymáshoz igazodjon, mert ez lesz a gerenda helye.
- Fúrja ki a lyukakat
- Ha van néhány LED -tartója (link), akkor ezeket a lyukba helyezheti, hogy stabilabb legyen
- Helyezze be + ragassza fel a LED + vevőkészüléket mindkét oldalára
- Fűzze be a vezetékeket + ragasztja őket a fára, hogy ne keresztezzék túlságosan
- Helyezze be a dugaszos csapokat a kenyérsütő lapra az előzőleg megadott áramkör szerint
5. lépés: A Mátrix modul előkészítése és elhelyezése
Ezután összekapcsoljuk a 2 LED mátrix modult
Jegyzet:
Mivel egy régi csocsóasztalt használtam, a cigarettatartók miatt már lyukak mentek felfelé a felső rész felé. Ha nincs ilyen, akkor létre kell hoznia.
A vezetékek előkészítése:
- Mérje meg a vezetéket a kenyértáblától az asztal felső része felé
- Forrasztjon néhány női csatlakozót a vezeték első végéhez
- Forrasztjon néhány dugaszoló csatlakozót a vezeték másik végéhez
A mátrix elhelyezése:
- Húzza ki a mátrixot a tetején lévő lyukon keresztül
- Pántozza be + ragasztja be a vezetéket a fába, hogy ne keresztezze
- Helyezze be a hüvelycsapokat a kenyérsütő táblára a korábban mellékelt kör szerint
Valamikor hozzáadok egy kis barkácslépést a burkolat hozzáadásához a mátrix modulhoz, de egyelőre meztelenek.
6. lépés: Az IoT létrehozása
Ha csak regisztrálni szeretné és megjeleníteni a pontszámokat, befejezheti a projektet egy kis futó python -szkript írásával, amely addig ciklusos, amíg az egyik pontszám el nem éri a 9 -et, majd visszaáll.
Ha azonban az asztalt az internethez szeretné csatlakoztatni, akkor a következő néhány lépésnek felfelé kell haladnia.
A következő néhány lépésben az alábbiakkal foglalkozunk:
- A Raspberry Pi konfigurálása
- Adatbázis készítése tárolásra
- A weboldal létrehozása
- Felhelyezése az internetre
Ezen a ponton, ha ismeri a git -et, javaslom, hogy készítsen egy tárhelyet a GitHub/GitLab -on a fájlok nyomon követéséhez. Ha nem, létrehozhat egy mappát, amelynek szerkezete megegyezik a képen láthatóval.
A teljes projekt hamarosan elérhető lesz a GitHubon. Azonban rendelkezésre áll egy ideiglenes rar fájl az összes szükséges fájllal.
7. lépés: A Raspberry Pi csatlakoztatása
Ezután beállítjuk a málna pi környezetet, ehhez a következő lépéseket kell végrehajtania:
- Csatlakozás SSH -n keresztül a Rasberry Pi -hez (használhatja a PuTTY -t)
- Hozzon létre egy mappát (például mkdir projekt), és lépjen ebbe a mappába a cd paranccsal
- Hozzon létre egy virtuális Python környezetet ebben a mappában a python3 -m venv --system-site-package env paranccsal
- Aktiválja a virtuális tolmácsot a source/env/bin/activ paranccsal
- Telepítse a csomagokat a követelmények.txt fájlból a python -m pip install package -name paranccsal
- Vigye át a fájlokat a korábban megadott project_example.rar fájlból a projektmappában lévő SSH -n keresztül
Most már képesnek kell lennie a teljes projekt futtatására a Raspberry Pi készüléken. Azt tanácsolom, hogy használjon olyan Python IDE -t, mint a PyCharm, amely lehetővé teszi az Ön számára, hogy hibakeresést végezzen a távoli tolmácsból SSH -n keresztül, és szükség esetén közvetlenül töltse fel a módosításokat.
8. lépés: Az adatbázis beállítása
Most egy nagyon egyszerű adatbázist kell létrehoznia, ennek a modellnek a alapján.
Ennek legegyszerűbb módja az adatbázis létrehozása a MySQL munkaasztalon, ahol néhány tesztet is végezhet.
Ha elkészült, exportálhatja az adatbázis kiíratását, feltöltheti azt az RPi -re, majd végrehajthatja a sudo mariadb <pathtofile/file.sql paranccsal
9. lépés: A webhely létrehozása
Ezután elemezheti (és használhatja) a project_example.rar fájlban megadott kódot.
A fő fájl a Flask.py, amely a projekt kenyere és vaja:
- Futtat egy Flask-SocketIO alkalmazást, amely kezeli a webhely háttérét
- Kapcsolatot hoz létre az adatbázis és a lombik között
- Bejelentkezési ellenőrzést és felhasználói regisztrációt biztosít
- Biztosítja a szükséges játékkódot a socketio használatával a webhely valós idejű frissítéséhez a játék során
- A játék eredményeit az adatbázisba helyezi
A statikus és a sablon mappákban megtalálhatja a HTML/CSS/JS -t, amelyek a webhely frontend részét képezik. Nyugodtan módosítsa ezeket saját ízlése szerint.
10. lépés: Csatlakozás a világhálóhoz
Weboldalunknak az internethez való csatlakoztatásához az nginx és az uwsgi eszközöket fogjuk használni. A projekt példában u megtalálja a szükséges fájlokat a conf mappában.
Először is frissítenie kell a következőket ezekben a fájlokban:
- Az uwsgi-flask.ini-ben meg kell változtatnia a virtualenv paraméter útvonalát a tolmácshoz
- A project1-flask.service szolgáltatásban frissítenie kell a fájl [Service] részét a hitelesítő adataival és a kapcsolódó fájlokhoz vezető elérési útjaival
- Az nginx fájlban frissítenie kell a kiszolgálót és a helyet / elérési utat a hozzá tartozó aljzathoz
Ezután le kell cserélnie az alapértelmezett nginx webszerver fájlt az nginx konfigurációs fájl helyére, az alábbiakban egy példa a linux parancsokra
- me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- me@my-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl indítsa újra az nginx.service szolgáltatást
Végül hozzá kell adnia az egyéni szolgáltatásokat a systemd mappához, ez egy példa erre:
- 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 indítsa el a projektet1-*
- me@my-rpi: ~/project1 $ sudo systemctl állapotprojekt1-*
Ha azt szeretné, hogy a webszerver elinduljon a málna pi rendszerindításakor, akkor a sudo systemctl enable project1-*. Service parancsot kell használnia.
Ha helyesen tette, a rendszer újraindítása után a webhelynek futnia kell az IP -címen. Ha szerkeszteni szeretné ezeket a konfigurációs fájlokat, mindig le kell állítania a szolgáltatást, töltse fel újra a fájlokat, és használja a démon-újratöltés parancsot, majd az indítást, különben a módosítások nem lesznek érvényesek.
11. lépés: Befejezés
Miközben ennek az oktatóanyagnak az utolsó részét gépeli, ez a kis iskolai projekt még folyamatban van.
Számtalan órát töltöttem ezzel 2,5 hét alatt. Annak ellenére, hogy minden kicsit elhamarkodott volt, büszke vagyok arra, amit elértem. Az összeszerelési fázis során számtalan hibával/hibával/hibás érzékelővel találkoztam, ezért ne csüggedjen, ha minden nem működik az első próbálkozáskor.
A legjobb, amit tehetünk, ha segítséget kérünk vagy keresünk az interneten. Sokan sokkal jobb ismeretekkel rendelkeznek, és nagyon szívesen segítenek Önnek.
Végül, de nem utolsósorban szeretném megköszönni az új média és kommunikációs technológia tanárainak, hogy sok tanácsot adtak és segítettek befejezni ezt a projektet.
Ajánlott:
Egyszerű IOT - Alkalmazás által vezérelt RF érzékelő hub közepes hatótávolságú IOT eszközökhöz: 4 lépés
Egyszerű IOT - Alkalmazás által vezérelt RF érzékelő hub közepes hatótávolságú IOT eszközökhöz: Ebben az oktatóanyag -sorozatban olyan eszközök hálózatát fogjuk felépíteni, amelyek egy központi hub eszközről rádiókapcsolaton keresztül vezérelhetők. A 433 MHz -es soros rádiókapcsolat előnye WIFI vagy Bluetooth helyett a sokkal nagyobb hatótávolság (jó
IoT APIS V2 - Autonóm IoT -kompatibilis automata üzemi öntözőrendszer: 17 lépés (képekkel)
IoT APIS V2 - Autonóm IoT -kompatibilis automata üzemi öntözőrendszer: Ez a projekt a korábbi utasításaim továbbfejlesztése: APIS - Automatizált növényi öntözőrendszer távolról figyelje a növényt. Így
A Raspbian telepítése a Raspberry Pi 3 B -be HDMI nélkül - Kezdő lépések a Raspberry Pi 3B - A Raspberry Pi beállítása 3: 6 lépés
A Raspbian telepítése a Raspberry Pi 3 B -be HDMI nélkül | Kezdő lépések a Raspberry Pi 3B | A Raspberry Pi 3 beállítása: Mint néhányan tudják, a Raspberry Pi számítógépek nagyon félelmetesek, és az egész számítógépet egyetlen apró táblán szerezheti be. A Raspberry Pi 3 B modell négymagos 64 bites ARM Cortex A53-at tartalmaz 1,2 GHz -es órajelen. Ezzel a Pi 3 nagyjából 50
WebFoos - intelligens csocsóasztal: 6 lépés
WebFoos - intelligens csocsóasztal: A Howest első évében az iskolai projektemhez úgy döntöttem, hogy készítek egy intelligens csocsóasztalt. A táblázat regisztrálja a gólokat, és menti a lejátszott mérkőzéseket, a mérkőzés statisztikákat és a felhasználói/csapat statisztikákat egy online webhelyre
Autonóm csocsóasztal: 5 lépés (képekkel)
Autonóm csocsóasztal: A projekt fő célja egy működő prototípus elkészítése volt az Autonomous Foosball Table (AFT) számára, ahol egy emberi játékos szembesül egy robot ellenféllel. A játék emberi szemszögéből nézve a csocsóasztal nagyon hasonlít egy normál asztalhoz. A játszó