Tartalomjegyzék:

A doboz rögzítése: 8 lépés
A doboz rögzítése: 8 lépés

Videó: A doboz rögzítése: 8 lépés

Videó: A doboz rögzítése: 8 lépés
Videó: Lakáselosztó doboz / Kismegszakító doboz/szekrény 3 fázis 2024, Július
Anonim
Rögzítse a dobozt
Rögzítse a dobozt
Rögzítse a dobozt
Rögzítse a dobozt

A Capture The Box egy csapatépítő játék, amelyet a környéken élő barátokkal játszhat.

A cél az, hogy elfogja a dobozt, és a lehető leghosszabb ideig a birtokában tartsa, míg más játékosok megpróbálnak elmenni, és ellopják a verandától vagy az előkerttől.

Ez a játék a GPS -t használja a doboz és az RFID -címkék azonosítására a játékosok számára. Az opcionális LDR hozzáadható a pontmátrix kijelző intenzitásának és a terület százalékos fényerejének megfelelően.

Kellékek

Mikrokontrollerek és számítógépek

  • Raspberry Pi
  • Arduino (Mega) Arduino Mega -t választottam a normál Uno helyett, mert sokkal több csapja van. Erre azért van szükség, mert Dragino LoRa pajzsot használunk, ami miatt túl kevés digitális csap maradna az UNO használata során. TIPP: A legjobb, ha eredeti klónt használ, mert a kínai klónok nem mindig a várt módon működnek.

Érzékelők és modulok

  • 4 MAX7219 Dot Matrix ModulesConnect DOUT to DIN, CS to CS, CLK to CLK …
  • Fényfüggő ellenállás (10K) + ellenállás (10K)
  • NEO-7M (vagy hasonló) GPS modul A Velleman VMA430-at használom
  • RC522 RFID modul+ néhány RFID jelvény/kártya

A LoRa (vezeték nélküli technológia) használatához

Dragino Lora pajzs

Opcionális érzékelők és modulok

LCD kijelző A Raspberry Pi IP -címének megjelenítéséhez

A teszt beállításához

Kenyérsütő deszka és Dupont kábelek (férfi-férfi)

Opcionális (burkolat)

  • Forrasztópáka
  • Régi szerszámos tok
  • Anyagok 3D nyomtatáshoz
  • Néhány vékony fa deszka
  • Néhány csavar és anya (amelyek elférnek az Arduino lyukakban). A csavarjaim átmérője körülbelül 3 mm.

A becsült ár megtalálható az alábbi BOM -ban (Bill of Materials).

1. lépés: A Raspberry Pi beállítása

A Raspberry Pi a projekt szíve.

Futtatni fogja a frontendet, a backendet és az adatbázist. Ez lesz a felelős a háttér és az Arduino közötti kommunikációért is.

A Raspberry Pi használatához a következőket kell tennünk:

1. rész: A Raspbian telepítése Raspberry Pi -re

Az oktatóanyag ennek módjáról itt található:

2. rész: A Raspbian telepítése a Raspberry Pi -re Az otthoni WiFi beállítása.

Ezt megteheti a wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf használatával

Indítsa újra a Pi -t, és látnia kell egy IP -címet az ifconfig beírásakor

3. rész: Telepítse a webszervert és az adatbázist

Miután elindította a Pi -t, a legjobb, ha megváltoztatja a jelszavát. Ezt megteheti a passwd paranccsal.

Ha ez megtörtént, telepítse az Apache, PHP, MariaDB és PHPMyAdmin alkalmazásokat.

Apache, PHP sudo apt install apache2 -y sudo apt install php libapache2 -mod -php -y

MariaDB sudo apt install mariadb-server mariadb-client -y sudo apt install php-mysql -y sudo systemctl restart apache2.service

PHPMyAdminsudo apt install phpmyadmin -y

Ne felejtsen el beállítani egy biztonságos MySQL jelszót.

4. rész: A szükséges Python könyvtárak telepítése

A háttérrendszerhez szükségünk lesz néhány könyvtárra. Ezeket a pip3 paranccsal lehet telepíteni.

pip3 telepítse a mysql-connector-python programot

pip3 telepítse a flask-socketio-t

pip3 telepítse a lombikhüvelyeket

pip3 install geventpip3 install gevent-websocket

pip3 install ttn

2. lépés: Az elektronika elhelyezése

Az elektronika elhelyezése
Az elektronika elhelyezése
Az elektronika elhelyezése
Az elektronika elhelyezése

Ahhoz, hogy ez a projekt működjön, csatlakoztatnunk kell az összes elektronikát.

A LoRa pajzs könnyen a helyére tehető. Csak igazítsa a csapokat az Arduino csapjaihoz.

A többi kapcsolatot a Fritzing -sémám írja le. Ami innen letölthető:

3. lépés: Az adatbázis tervezése

Az adatbázis tervezése
Az adatbázis tervezése

Annak érdekében, hogy az összes játék- és érzékelőadatot tárolhassam, készítettem néhány táblázatot:

Az érzékelők mérései az érzékelőtáblákban találhatók. Ez tartalmaz egy hivatkozást az érzékelőre, a mérés értékére (pl. coördinates: 51.123456; 3.123456) és egy opcionális játék azonosítót (ha egy játék aktív volt a mérés során).

A játékosok neve és RFID -jelvényük UID -je. Az opcionális mezőmoderátor hozzáadásra kerül, ez a személy módosíthatja a játékot (pl. Leállíthatja idő előtt).

A játék információi (kezdési és befejezési idő).

spel_has_spelerA kapcsolat a spel és a speler között. Itt osztják ki a játékosokat egy játékba.

ebben a táblázatban a pontszám mentésre kerül. Ez tartalmazza a játék azonosítóját, a játékos azonosítóját, az időt, amikor ellopta a dobozt, és azt az időt, amikor elvesztette (amikor valaki más ellopja vagy amikor a játék véget ér). Ha kivonja a kezdési időt a befejezési időből, kiszámíthatja az adott felvételből kapott pontszámot.

Az adatbázis exportja megtalálható a GitHub -on (https://github.com/BoussonKarel/CaptureTheBox)

Nyissa meg az SQL -t a PHPMyAdmin / MySQL Workbench alkalmazásban, és futtassa azt. Az adatbázist most importálni kell.

4. lépés: Fiók beállítása TTN -en

1. lépés: Regisztráljon egy fiókot a TTN -en, és hozzon létre egy alkalmazást

Regisztráljon fiókot a TheThingsNetwork webhelyen, majd válassza a Konzol> Alkalmazás hozzáadása lehetőséget.

Válassza ki az alkalmazás nevét, majd kattintson az Alkalmazás hozzáadása gombra.

2. lépés: Regisztráljon egy eszközt

Az alkalmazás elkészítése után lépjen az Eszköz regisztrálása oldalra.

Válasszon egy eszközazonosítót, ez bármi lehet (ha kígyótok), és kattintson a Regisztráció gombra.

Kattintson a Generálás ikonra az Eszköz EUI alatt, így a TTN generál egyet Önnek.

3. lépés: Jegyezze fel hitelesítő adatait

Most menjen az Eszközhöz, és kattintson az Eszköz EUI, Alkalmazás EUI és Alkalmazáskulcs melletti Kód ikonra. Most bájtok tömbjeként kell megjelennie.

Másolás előtt kattintson a Váltás gombra, és győződjön meg arról, hogy Dev EUI és App EUI elsődleges LSB.

Az alkalmazáskulcsnak elsőnek MSB -nek kell maradnia (ezt ne változtassa meg).

Ezekre a kulcsokra lesz szüksége a következő lépésben: Az Arduino beállítása.

4. lépés: Írja le az Application Acces kulcsot

Most még egy kulcsra lesz szükségünk az MQTT beállításához a Raspberry Pi -n.

Nyissa meg az alkalmazást, és görgessen le a Hozzáférési kulcsok elemhez.

Erre szüksége lesz a Backend lépésben.

5. lépés: Az Arduino beállítása

Az Arduino kód megtalálható a GitHub -on is, az Arduino alatt (https://github.com/BoussonKarel/CaptureTheBox)

Ez a kód több lapra van osztva, hogy rendszerezett legyen.

A fő kód: pin deklarációk, setup () és loop ()

0_LoRa.inoEz a kód kezeli a LoRa használatával történő kommunikációt.

Az LDR, GPS és RFID címkék adatait 13 bájtos tömbbe helyezi, és továbbítja a TheThingsNetwork számára.

1_LDR.inoAnalogRead () használatával méri a fényfüggő ellenállás feszültségét.

Ezt azután a fény százalékos értékévé alakítják át (a 0 semmi, 100 a mobil zseblámpa).

2_GPS.inoEz a soros kommunikációt használja a TX1 és RX1 (Serial1) használatával.

NMEA üzeneteket (pontosabban a $ GPRMC üzeneteket) használ a doboz szélességének és hosszúságának megkereséséhez.

3_RFID.ino Az MFRC522 könyvtár használatával ez a kód új RFID -címkéket keres. Amikor jelen van, az RFID_lastUID formátumban tárolja.

4_DotMatrix.inoEz a kód a inicializálásra és a pontmátrix -kijelző beállítására szolgál. Tartalmazza a betöltő animáció definícióit stb.

Felállítása

Mielőtt feltöltheti ezt a kódot Arduino készülékére, telepítenie kell néhány könyvtárat.

Matthijskooijman Arduino-LMIC könyvtára (https://github.com/matthijskooijman/arduino-lmic)

Az MFRC522 könyvtár az RFID olvasóhoz (https://github.com/miguelbalboa/rfid)

Most menjen a main.ino oldalra, és módosítsa a DEVEUI, APPEUI és APPKEY beállításokat azokra, amelyeket az utolsó lépésben másolt.

6. lépés: A háttérrendszer beállítása

A projekt háttere megtalálható a GitHub -on, az RPI> Backend (https://github.com/BoussonKarel/CaptureTheBox) alatt.

Hogyan működik?

  1. 10 másodpercenként a kód keres egy aktív játékot. Ha talál egyet, akkor a huidigSpel (currentGame) nevű változóba menti
  2. Ha az üzemmód sorosra van állítva, kábelt használnak az Arduino és a Pi között. A Pi lekérdezi az LDR és a GPS értékeit. Az Arduino JSON formátummal válaszol. Az RFID -címkéket minden alkalommal elküldik, amikor bemutatják. Ezt az üzemmódot kizárólag fejlesztési célokra használták, és már nem szükséges.
  3. Ha az üzemmód LoRa -ra van állítva, akkor létrejön egy MQTT -ügyfél, amely visszahívást indít, amikor LoRa -adatokat fogad a TTN. Ez LDR, GPS és RFID adatokat tartalmaz.
  4. A kezelőfelület adatokat kérhet le az API végpontok segítségével. A legtöbb adat a huidigSpel.id használatával kerül lekérésre. Az adatok JSON formátumban kerülnek visszaadásra a jsonify () használatával

Lépjen a secrets.py oldalra, és írja be a LoRa alkalmazás nevét és a hozzáférési kulcsot (amit korábban leírt).

Lépjen a config.py oldalra, és töltse ki az adatbázis hitelesítő adatait (például jelszó, felhasználó…)

Próbálja meg futtatni az app.py -t, miután megerősítette, hogy ez működik, szolgáltatásként használhatjuk. Ez automatikusan elindítja a kódot a háttérben, amikor elindítja a pi -t.

Ehhez másolja a ctb_service.service mappát az /etc/systemd/system/ctb_service.service címre. sudo cp ctb_service.service /etc/systemd/system/ctb_service.service

Most engedélyezze a systemctl enable ctb_service.service használatával

Ha módosítania kell a kódot, egyszerűen leállíthatja azt a systemctl stop használatával (ez újraindul újraindításkor), vagy letiltja (leállítja az automatikus indítást) a systemctl letiltásával.

Ha meg kell vizsgálnia a naplókat (hibák miatt), használhatja a journalctl -u ctb_service.service szolgáltatást.

A szolgáltatásokról bővebb információ itt található:

7. lépés: A kezelőfelület beállítása

A szokásos módon a kezelőfelület megtalálható a GitHub -on, az RPI> Frontend alatt (https://github.com/BoussonKarel/CaptureTheBox)

Illessze be a Raspberry Pi /var /html mappájába.

Ez tartalmazza a játékhoz szükséges összes weboldalt.

Tartalmaz egy szkriptet a háttérrendszerrel való kommunikációhoz (valós időben és az API végpontok használatával is).

8. lépés: A burkolat hozzáadása

Burkolat hozzáadása
Burkolat hozzáadása
Burkolat hozzáadása
Burkolat hozzáadása

A tokhoz egy régi szerszámtartót használtam, a következő anyagokkal/technikákkal együtt:

  • 3D nyomtatás
  • Hab az akkumulátor helyén tartásához
  • Újrahasznosított fa deszka
  • Forró ragasztó
  • Csavarok és anyák

A te döntésed, hogy mit teszel az ügyeddel! A művészi szabadságot adom neked.

Inspirációként hozzáadtam néhány fotót a (kész) tokomról.

Ajánlott: