Tartalomjegyzék:

Krikett eredménytábla a NodeMCU használatával: 9 lépés (képekkel)
Krikett eredménytábla a NodeMCU használatával: 9 lépés (képekkel)

Videó: Krikett eredménytábla a NodeMCU használatával: 9 lépés (képekkel)

Videó: Krikett eredménytábla a NodeMCU használatával: 9 lépés (képekkel)
Videó: Nodemcu cricket score update iot project 2024, Július
Anonim
Image
Image
A terv
A terv

Helló! Nemrég ismerkedtem meg az IoT (Internet of Things) világával, mivel találkoztam ezen a területen a legnépszerűbb eszközzel, az ESP8266 -al. Meglepődtem azon lehetőségek számán, amelyeket ez az apró és olcsó eszköz nyitott meg. Mivel még új vagyok ebben, úgy döntöttem, hogy projektet készítek ennek felhasználásával, és közben tanulok. Így elkezdtem keresni az interneten projekteket és ötleteket.

Egy csodálatos projektre bukkantam, W. A. Smith Arduino Cricket Score Ticker néven. Ebben a projektben az Arduino, valamint az Ethernet pajzs és az SD kártya a Cricbuzz élő krikett eredményeinek megjelenítésére szolgál. Ez a projekt elgondolkodtatott.

Indiából származom, és az első dolog, ami eszembe jut az India meghallgatása után, a Tücsök. Itt a krikett a vallás. Néha nehéz lesz a tévé előtt ülni, hogy követhesse az egész mérkőzést. Tehát miért nem készít valamit, ami megkönnyíti a nézést, vezeték nélküli és hordozható. Egy dedikált apró eszköz, amely elegendő információt mutat ahhoz, hogy csak egy pillantással naprakész legyen.

Nem krikett rajongó? Nincs mit! A kód tartalmazza az XML elemzőt, amellyel bármilyen XML fájlból adatokat lehet lekérni. Csak használja a megfelelő funkciókat az adatok megszerzéséhez.

1. lépés: A terv

A terv
A terv

A terv az, hogy a NodeMCU Development Board (ESP-12E modullal) segítségével hozzáfér az internethez, és XML-kódot kér a Cricbuzz-tól, amely minden információt tartalmaz a folyamatban lévő/közelgő mérkőzésekről. Ezt a kódot.xml fájlként menti az SD -kártyára. A fájlt ezután az SD -kártyáról olvassuk be, hogy elemezzük a szükséges adatokat az XML -kódból. W. A. Smith kódját fogom használni az információk elemzéséhez. Erőfeszítéseinek köszönhetően. Nézze meg a projektjét, ha ugyanazt szeretné elérni az Arduino és az Ethernet Shield használatával.

Az ötletem az, hogy a lehető legkisebb legyen, egyedi PCB -t és tokot készítsek hozzá. Készítsünk most egy prototípust. De először ismerkedjünk meg a projektben használt összetevőkkel.

Lássunk neki

2. lépés: OLED kijelző

OLED kijelző
OLED kijelző
OLED kijelző
OLED kijelző

Úgy döntöttem, hogy OLED kijelzővel megyek, mert kicsi, és olcsón kaphatók. 0,96 -os kijelzőt használok, amely elegendő lesz a mérkőzésinformációk megjelenítéséhez. A kijelző bármilyen méretét használhatja.

Az általam használt kijelző fekete-fehér, SSD1306 illesztőprogrammal és I2C (2 vezetékes) interfésszel. A kijelző SPI verziói is rendelkezésre állnak. Futtatásuk könnyű feladat. Töltse le a kijelzők futtatásához szükséges SSD1306 és GFX könyvtárakat. Köszönöm az Adafruitnak, hogy megírta ezeket a könyvtárakat.

A kapcsolatok nagyon egyszerűek.

  • GND - GND
  • VCC - 3.3V
  • SCL - D1
  • SDA - D2.

3. lépés: SD kártya és adapter

SD kártya és adapter
SD kártya és adapter

Az SD -kártya tárolja az XML -fájlt a Cricbuzz -tól, amíg az összes információt elemzik. A szükséges információk megjelenítése után a fájl törlődik. Az SD -kártya használata 10-20 kB méretű XML -fájl tárolására kissé túlzás, de sokkal könnyebbé és könnyebben érthetővé teszi az elemzést.

Bármilyen memóriakártya használható. A micro SD kártyát választottam kis formája miatt. Közvetlenül forraszthatja a vezetékeket az SD -kártyára, de a megszakítópanel használata megkönnyíti a munkát. Meg kell jegyezni, hogy minden SD -kártya 3.3V -on fut. Ez azt jelenti, hogy nem csak 3.3V -ról kell táplálni, hanem a mikrokontroller és az SD -kártya közötti kommunikációnak is 3.3V -os logikai szintűnek kell lennie. A 3.3V feletti feszültség megöli! A NodeMCU -val nem fogunk foglalkozni vele, mert maga a NodeMCU 3.3V -ról működik, ami rendben van. Ha bármilyen más, 5 V-os logikai szinttel rendelkező mikrovezérlőt tervez használni, győződjön meg arról, hogy a megszakítópanel beépített szintváltóval rendelkezik (a képen látható módon). Alapvetően átalakítja vagy "eltolja" az 5V -ot a mikrokontrollerről SD -kártya -barát 3.3V -ra. A szintváltó és a 3.3V együttes használata (ahogy én is) nem befolyásolja annak működését.

Az SD -kártya SPI interfészt használ a kommunikációhoz. A CS vagy Chip Select csap bármely GPIO csaphoz csatlakoztatható. A GPIO15 (D8) -ot választottam. Csak hajtsa végre a szükséges módosításokat a kódban, ha nem a GPIO15 tűt használta

  • SCK - D5
  • MISO - D6
  • MOSI - D7
  • CS - D8
  • VCC - 3.3V
  • GND - GND

Formázza az SD -kártyát

Az általunk használt könyvtár támogatja a FAT16 vagy FAT32 fájlrendszereket. Győződjön meg arról, hogy az SD -kártyát a megfelelő formátumba formázza.

4. lépés: A billentyűzet elkészítése

A billentyűzet készítése
A billentyűzet készítése
A billentyűzet készítése
A billentyűzet készítése
A billentyűzet készítése
A billentyűzet készítése

Szeretném a projektet a lehető legkisebbre csökkenteni. Ezért úgy döntöttem, hogy külön táblát készítek a billentyűzethez, és később az alaplap fölé szerelem. Ez némi helyet takarít meg.

Egy kész kulcsmátrix megvásárolható, de nyomógombjaim voltak. Ezenkívül azt akartam, hogy a lehető legkisebb legyen. Az összekötő sorok és oszlopok tipikus elrendezéséhez összesen 6 GPIO csap szükséges 3 x 3 mátrixhoz. Ez elég sok, ha figyelembe vesszük, hogy az OLED kijelző és az SD kártya is csatlakoztatva lesz.

Ha kétségei vannak, keressen rá a Google -ra! Ezt tettem, és találtam egy módszert, amelyhez mindössze 1 tűre van szükség a teljes mátrix vezérléséhez. Ez a feszültségosztó mátrix segítségével lehetséges. Minden sor és oszlop között ellenállások vannak csatlakoztatva. Amikor megnyom egy gombot, az ellenállások bizonyos kombinációja sorba kötődik, ami feszültségosztót hoz létre. Nézze meg a kapcsolási rajzot. A változó feszültséget a mikrokontroller leolvassa. Mindegyik billentyű más -más feszültséget állít elő, így a mátrix kimeneti feszültségének leolvasásával könnyen megállapítható, hogy melyik gombot nyomták meg. Mivel különböző feszültségszinteket akarunk olvasni, most pedig csak magas és alacsony értékeket, szükségünk lesz egy analóg tűre. Szerencsére a NodeMCU -n van egy analóg pin A0 -val. Probléma megoldódott!

Ha mátrixot szeretne vásárolni, nézze meg az ábrán látható belső csatlakozásokat. Bármilyen méretű mátrix használható. Ügyeljen arra, hogy a sorok között 2,2 kΩ ellenállást és az oszlopok között 680Ω ellenállást használjon.

Nyomógombok csatlakoztatása

Az 1 -es és 2 -es csapok belsőleg össze vannak kötve. Ugyanez vonatkozik a 3 és 4 csapokra is. Amikor megnyomja a gombot, az összes csap össze van kötve. Tekintse meg a képet, hogy képet kapjon a kapcsolók csatlakoztatásáról a perfboardon.

Csatlakoztattam egy 3 tűs férfi fejlécet, hogy később csatlakoztatható legyen az alaplaphoz.

5. lépés: Mindent össze kell rakni

Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni
Mindent összerakni

Tervezheti az alkatrészek tetszőleges elhelyezését. Nincs korlátozás rá. Megmutatom, hogyan csináltam, hogy kompakt legyen, hiszen olyat szerettem volna, ami elfér a tenyerében. Kicsit zavarossá válhat, ezért próbálja ki az utamat, ha jól érzi magát a forrasztással. Úgy döntöttem, hogy a tábla mindkét oldalát úgy töltöm fel, mint egy kétrétegű NYÁK-t. Az egyik oldalon NodeMCU és SD -kártya törőpanel, a másik oldalon OLED és billentyűzet.

Az SD -kártya törése véletlenül elfér a NodeMCU két női fejléce között. Leszedtem a szögletes fejléceket, amelyekkel a kitörő tábla érkezett, elforgattam, majd újra forrasztottam, hogy a csapok merőlegesen lefelé menjenek, ahogy a képen látható. Az SD -kártyanyílás elérése könnyebbé válik.

Derékszögben meghajlítottam egy 4 tűs női fejléc csapjait, és a képen látható módon forrasztottam a perfboard réz oldalára.

A rövidzárlat elkerülése érdekében takarja le a forrasztási kötéseket a billentyűzet alatt. Adjon hozzá egy vékony (kb. 5 mm vastag) darab habot a billentyűzet és az alaplap közé az extra védelem és merevség érdekében. Végül forrasztja be a billentyűzetet, amelyet korábban készítettünk. A hegyes hegyes forrasztópáka biztosan megkönnyíti a munkáját. Rendetlen munka volt a lehető legkompaktabbá tenni, de végül sikerült.

Mielőtt bekapcsolná a készüléket, ellenőrizze az összes csatlakozást, nincs -e rövidzárlat

6. lépés: A billentyűzet beállítása

A billentyűzet beállítása
A billentyűzet beállítása

Miután ellenőrizte az összes csatlakozást, készen áll a készülék első bekapcsolására. Szorít valakinek! Nincs varázsfüst? Gratula!

Most készen állunk a billentyűzet beállítására. Idézze fel a billentyűzet működését. Minden gombnyomás más feszültséget ad ki, amelyet a NodeMCU analóg érintkezője táplál. Az ESP-12E 10 bites felbontású analóg-digitális átalakítóval (ADC) rendelkezik. Ha a 10 -es fokozatra emelve 2 1024 -et kapunk. Ez azt jelenti, hogy minden lenyomott gomb esetében 0 és 1024 közötti értéket kapunk. Lássuk, milyen olvasmányokat kapunk. De először egy kis programot kell írnunk, hogy megkapjuk ezeket az értékeket. Nyissa meg az Arduino IDE -t, másolja be a következő kódot, és töltse fel a NodeMCU -ba.

int billentyűzetPin = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Soros.println (r); }

  • Nyissa meg a soros monitort. Állítsa az átviteli sebességet 115200 -ra.
  • Most nyomja meg bármelyik gombot. Folyamatos leolvasást kell kapnia a soros monitoron. A kis ingadozások rendben vannak. Ezekről a fő kódban gondoskodunk. Tegye ugyanezt minden kulcsnál.
  • Minden billentyűnek más és más értékűnek kell lennie.
  • Jegyezze fel az összes értéket. Szükségünk lesz rájuk később.

7. lépés: Kódoljunk

Kódoljunk
Kódoljunk
Kódoljunk
Kódoljunk
Kódoljunk
Kódoljunk

Töltse le az alábbi Scoreboard.ino fájlt a számítógépére, és nyissa meg az Arduino IDE használatával.

A feltöltés előtt

1) Állítsa be az eredményjelző frissítési idejét. Például 15 liter 15 másodpercig.

2) Írja be a csatlakozni kívánt útválasztó SSID -jét és jelszavát.

3) Végezze el a szükséges módosításokat, ha úgy döntött, hogy az SD -kártya CS -tűjét a GPIO15 -től eltérő tűhöz csatlakoztatja.

4) Emlékszel azokra az értékekre, amelyeket az összes kulcsnál feljegyeztünk? Minden értékhez kulcsszámot kell rendelnünk. Meséltem az olvasás ingadozásáról is. Ez annak köszönhető, hogy a kapcsoló érintkezői nem tökéletesek. Hosszú távon ez az érték eltérhet az aktuális értéktől az érintkezők elöregedése miatt, ami extra ellenállást biztosít az áramkörben, ezáltal megváltoztatva a feszültséget. Ezt a problémát a kódban tudjuk kezelni.

Az érték felső és alsó határát 5 margóval adjuk hozzá. Például 617 -es értéket kaptam az 1 -es kulcsnál.

  • Vonj le belőle 5 -öt. 617 - 5 = 612. Ez az alsó határ.
  • Most adjunk hozzá 5 -öt. 617 + 5 = 622. Ez a felső határ.
  • Görgessen a kód végére. Töltse ki a kód két értékét a képen látható módon.
  • Tegye ezt minden 9 értéknél.

if (r> 612 && r <622) {keyNumber = 1; }

Mit is jelent ez?

HA az (r) érték nagyobb, mint 612 ÉS kevesebb, mint 622, akkor nyomja meg az 1 gombot. A 612 és 622 közötti értékeket az 1. kulcs kezeli. Ez megoldja az ingadozó olvasás problémáját.

8. lépés: A tok felépítése

A tok építése
A tok építése
A tok építése
A tok építése
A tok építése
A tok építése
A tok építése
A tok építése

Ez teljesen opcionális. Azt hittem, hogy a projekt ügyesnek és komplettnek fog tűnni, egy doboz körül. Ha nem voltak megfelelő eszközök ehhez a munkához, hatalmas feladat volt számomra. A tok akrilból készült.

Előkészítette a darabokat a ragasztáshoz, a széleket csiszolópapírral kisimítva. A Fevi Kwik -t (szuper ragasztó) használtam az összes darab összeillesztéséhez. A szuper ragasztó megszilárdulása után fehér maradványokat hagy maga után. Tehát csak az ízületek között alkalmazza. Gyorsnak és pontosnak kell lennie, amikor szuper ragasztóval dolgozik, mivel gyorsan köt. Az akrilcement a legalkalmasabb erre a feladatra.

Kis nyílást készített az USB -port fájl segítségével történő eléréséhez. Elég nagynak kell lennie az USB -kábel behelyezéséhez.

Létrehozott egy 3x3 rácsot az előlapon a nyomógombokhoz. Ez megnehezíti a nyomógombok hozzáférését. Ennek a problémának a megoldásához négyzet alakú darabokat vágok minden kulcshoz, így a gombjaik felfelé nyúlnak.

Annyi csiszolás, vágás, rögzítés és beállítás után végre elkészült!

9. lépés: Jó szórakozást

Érezd jól magad!
Érezd jól magad!

Végül minden kemény munka elkészült. Kapcsolja be a mini eredménytáblát, és maradjon naprakész a játékkal.

A bekapcsolás után először csatlakozik a hozzáférési ponthoz. Inicializálja az SD kártyát. Hiba jelenik meg, ha az SD -kártya nincs inicializálva.

Megjelenik az összes mérkőzés listája, valamint a mérkőzés száma.

Válassza ki a találati számot a billentyűzet segítségével.

A pontszámok megjelennek. Testreszabhatja, hogy mit szeretne látni a kijelzőn. Nem mennék túl mélyen a kód magyarázatába. Itt részletes magyarázatot talál az elemzés működéséről.

A menübe való visszatéréshez tartsa lenyomva a BACK (8. gomb) gombot, amíg meg nem jelenik a "Pontszámok lekérése …" oldal.

Jövőbeli tervek

  • Tervezzen egyedi NYÁK-t az ESP8266 12-E modullal.
  • Adjon hozzá újratölthető akkumulátort.
  • Javítsa a kódot új funkciókkal.

Remélem tetszett az építkezés. Készítsd el magad és érezd jól magad! Mindig van hova fejlődni és sokat kell tanulni. Készítsen saját ötleteket. Nyugodtan írjon megjegyzést a konstrukcióval kapcsolatban. Köszönöm, hogy kitartottál a végéig.

Ajánlott: