Sisukord:

Kriketi tulemustabel NodeMCU abil: 9 sammu (piltidega)
Kriketi tulemustabel NodeMCU abil: 9 sammu (piltidega)

Video: Kriketi tulemustabel NodeMCU abil: 9 sammu (piltidega)

Video: Kriketi tulemustabel NodeMCU abil: 9 sammu (piltidega)
Video: Nodemcu cricket score update iot project 2024, November
Anonim
Image
Image
Plaan
Plaan

Tere! Mulle tutvustati hiljuti asjade Interneti (asjade internet) maailma, kuna sattusin selle valdkonna kõige populaarsema seadme ESP8266 juurde. Mind hämmastas võimaluste lõpparv, mida see pisike ja odav seade avas. Kuna olen selles osas alles uus, otsustasin seda kasutades teha projekti ja õppida. Niisiis hakkasin otsima Internetist projekte ja ideid.

Sattusin hämmastava projekti nimega W. A. Smithi nimega Arduino Cricket Score Ticker. Selles projektis kasutatakse Arduino koos Ethernet Shieldi ja SD -kaardiga Cricbuzzi reaalajas kriketitulemuste kuvamiseks. See projekt pani mind mõtlema.

Olen pärit Indiast ja esimene asi, mis pärast India kuulmist meelde tuleb, on kriket. Siin on kriket religioon. Mõnikord muutub kogu mängu jälgimiseks raske teleri ees istuda. Niisiis, miks mitte teha midagi, mis muudab vaatamise tulemuse lihtsaks, traadita ja kaasaskantavaks. Spetsiaalne pisike seade, mis näitab piisavat teavet, et teid vaid pilguga värskendada.

Kas pole kriketifänn? Pole probleemi! Kood sisaldab XML -parserit, mida saab kasutada andmete hankimiseks mis tahes XML -failist. Andmete saamiseks kasutage lihtsalt õigeid funktsioone.

Samm: plaan

Plaan
Plaan

Plaan on kasutada Internetti pääsemiseks NodeMCU arendusnõukogu (koos ESP-12E mooduliga) ja taotleda Cricbuzzilt XML-koodi, mis sisaldab kogu teavet käimasolevate/tulevaste mängude kohta. See kood salvestatakse SD -kaardile.xml -failina. Seejärel loetakse fail SD -kaardilt, et sõeluda XML -koodist vajalikud andmed. Ma kasutan teabe analüüsimiseks W. A. Smithi koodi. Tänu tema pingutustele. Vaadake tema projekti, kui soovite sama teha Arduino ja Ethernet Shieldi abil.

Minu idee on muuta see võimalikult väikeseks, ehitada sellele kohandatud trükkplaat ja ümbris. Teeme esialgu prototüübi. Kuid kõigepealt tutvume selles projektis kasutatud komponentidega.

Alustame

Samm: OLED -ekraan

OLED -ekraan
OLED -ekraan
OLED -ekraan
OLED -ekraan

Otsustasin kasutada OLED -ekraani selle väikese suuruse tõttu ja need on odavalt saadaval. Kasutan 0,96 ekraani, millest piisab vasteteabe kuvamiseks. Saate kasutada mis tahes suurusega ekraani.

Ekraan, mida ma kasutan, on ühevärviline, millel on SSD1306 draiver ja I2C (2-juhtmeline) liides. Saadaval on ka ekraani SPI versioonid. Nende käivitamine on lihtne ülesanne. Laadige alla kuvarite käitamiseks vajalikud SSD1306 ja GFX teegid. Aitäh Adafruitile nende raamatukogude kirjutamise eest.

Ühendused on väga lihtsad.

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

Samm: SD -kaart ja adapter

SD -kaart ja adapter
SD -kaart ja adapter

SD -kaart salvestab Xric -faili Cricbuzzist kuni kogu teabe sõelumiseni. Kui vajalik teave on kuvatud, kustutatakse fail. SD -kaardi kasutamine 10–20 kB suuruse XML -faili salvestamiseks on natuke liialdus, kuid muudab parsimise palju lihtsamaks ja arusaadavamaks.

Kasutada võib mistahes mälukaarti. Valisin micro SD -kaardi selle väikese vormi tõttu. Saate juhtmeid otse SD -kaardile jootma panna, kuid vaheplaadi kasutamine muudab töö lihtsaks. Tuleb märkida, et kõik SD -kaardid on mõeldud töötama 3,3 V pingel. See tähendab, et mitte ainult selle toiteallikaks peaks olema 3,3 V, vaid ka mikrokontrolleri ja SD -kaardi vaheline side peab olema 3,3 V loogikatase. Pinge üle 3,3 V tapab selle! Me ei muretse selle pärast NodeMCU osas, sest NodeMCU ise töötab 3,3 V toitel, mis on hea. Kui kavatsete kasutada mõnda muud 5V loogikatasemega mikrokontrollerit, veenduge, et teie plaadil oleks sisseehitatud taseme nihutaja (nagu pildil näidatud). Põhimõtteliselt teisendab või nihutab see 5 V mikrokontrollerist SD -kaardisõbralikuks 3.3 V -ks. Taseme nihutaja kasutamine koos 3.3V -ga (nagu ma tegin) ei mõjuta selle tööd.

SD -kaart kasutab suhtlemiseks SPI -liidest. CS või Chip Select tihvti saab ühendada ükskõik millise GPIO tihvtiga. Valisin GPIO15 (D8). Lihtsalt tehke koodis vajalikud muudatused, kui kasutasite muud PIN -koodi kui GPIO15

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

Vormindage oma SD -kaart

Meie kasutatav raamatukogu toetab FAT16 või FAT32 failisüsteeme. Vormindage kindlasti SD -kaart õiges vormingus.

Samm: klaviatuuri valmistamine

Klaviatuuri tegemine
Klaviatuuri tegemine
Klaviatuuri tegemine
Klaviatuuri tegemine
Klaviatuuri tegemine
Klaviatuuri tegemine

Tahan projekti võimalikult väikeseks jätta. Niisiis, otsustasin teha klaviatuuri jaoks eraldi plaadi ja paigaldada selle hiljem emaplaadi kohale. See säästab ruumi.

Valmis võtmemaatriksit saab osta, kuid mul olid nupud ümber. Lisaks tahtsin selle teha võimalikult väikeseks. Tüüpiline ühendavate ridade ja veergude paigutus vajaks kokku 6 GPIO tihvti 3 x 3 maatriksi jaoks. Seda on üsna palju, arvestades, et ühendatakse ka OLED -ekraan ja SD -kaart.

Kahtluse korral googeldage! Seda ma tegin ja leidsin viisi, mis vajab kogu maatriksi juhtimiseks vaid ühte tihvti. See on võimalik Voltage Divider Matrix abil. Takistid on ühendatud iga rea ja veeru vahele. Kui klahvi vajutatakse, ühendatakse teatud takisti kombinatsioon järjestikku, mis loob pingejaguri. Vaadake vooluahela skeemi. Erinevat pinget loeb mikrokontroller. Iga klahv tekitab erineva pinge ja seega saab maatriksi väljundpinget lugedes hõlpsasti teada, millist klahvi vajutati. Kuna me tahame lugeda erinevaid pingetasemeid ja nüüd ainult kõrgeid ja madalaid, vajame analoogpinge. Õnneks on NodeMCU -l üks analoogpistik, mis on märgistatud kui A0. Probleem lahendatud!

Kui soovite maatriksit osta, vaadake skeemil näidatud siseühendusi. Kasutada võib mis tahes mõõtmetega maatriksit. Kasutage ridade vahel kindlasti 2,2 kΩ takisti ja veergude vahel 680Ω takisti.

Nuppude ühendamine

Pistikud 1 ja 2 on sisemiselt ühendatud. Sama tihvtidega 3 ja 4. Nupu vajutamisel on kõik tihvtid omavahel ühendatud. Vaadake pilti, et saada aimu lüliti ühendamisest perfboardil.

Olen ühendanud 3-kontaktilise meessoost päise, et seda saaks hiljem emaplaadiga ühendada.

Samm: kõik kokku panemine

Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes
Kõike kokku pannes

Saate planeerida komponentide paigutamise kõikjale, kuhu soovite. Sellele pole mingeid piiranguid. Ma näitan teile, kuidas ma selle kompaktseks muutmiseks tegin, kuna tahtsin midagi, mis peopessa mahub. See võib veidi sassi minna, nii et proovige minu teed, kui teil on jootmisega mugav. Otsustasin täita plaadi mõlemad küljed kahekihilise trükkplaadi kujul. NodeMCU ja SD -kaardi katkestusplaat ühel küljel ning OLED ja klaviatuur teisel küljel.

SD -kaardi purunemine mahub lihtsalt kahe naissoost päise vahele, mis on mõeldud NodeMCU jaoks. Vabastasin purunemisplaadiga kaasas olnud nurga all olevad isased päised, pöörasin seda ja jootsin uuesti, nii et tihvtid lähevad risti allapoole, nagu pildil näidatud. SD -kaardi pesasse pääsemine muutub lihtsamaks.

Ma painutasin 4-kontaktilise naissoost päise tihvte täisnurga all ja jootsin selle perfboardi vaseküljele, nagu pildil näidatud.

Katke jootekohad klaviatuuri all, et vältida lühiseid. Täiendava kaitse ja jäikuse tagamiseks lisage klaviatuuri ja emaplaadi vahele õhuke tükk kõva vahtu (umbes 5 mm paksune). Lõpuks jootke klaviatuur, mille me varem tegime. Terava otsaga jootekolbi olemasolu muudab teie töö kindlasti lihtsaks. See oli räpane töö, muutes selle võimalikult kompaktseks, kuid lõpuks suutsime sellega hakkama saada.

Enne seadme sisselülitamist kontrollige üle kõik ühendused lühiste suhtes

6. samm: klaviatuuri seadistamine

Klaviatuuri seadistamine
Klaviatuuri seadistamine

Kui olete kõik ühendused kontrollinud, olete seadme esmakordseks toiteks valmis. Pöidlad pihus! Maagilist suitsu pole? Palju õnne!

Nüüd oleme valmis klaviatuuri seadistama. Tuletage meelde klaviatuuri tööd. Iga klahvivajutus väljastab erineva pinge, mis antakse NodeMCU analoogpistikule. ESP-12E-l on 10-bitise eraldusvõimega analoog-digitaalmuundur (ADC). 2 tõstetud võimsusele 10 annab 1024. See tähendab, et saame iga vajutatud klahvi kohta väärtuse 0 ja 1024 vahel. Vaatame, milliseid näiteid saame. Kuid kõigepealt peame nende väärtuste saamiseks kirjutama väikese programmi. Avage Arduino IDE, kopeerige järgmine kood ja laadige see NodeMCU -sse.

int klaviatuurPin = A0;

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

  • Avage seeriamonitor. Seadke edastuskiiruseks 115200.
  • Nüüd vajutage suvalist nuppu. Seeriamonitoril peaksite pidevalt lugema. Väikesed kõikumised on okei. Nende eest hoolitsetakse põhikoodis. Tehke sama iga võtme puhul.
  • Igal klahvil peaks olema erinev näit.
  • Märkige kõik väärtused üles. Vajame neid hiljem.

7. samm: kodeerime

Koodime
Koodime
Koodime
Koodime
Koodime
Koodime

Laadige oma arvutis alla Scoreboard.ino fail ja avage see Arduino IDE abil.

Enne üleslaadimist

1) Määrake tulemustabeli värskendusaeg. Näiteks 15L 15sek.

2) Sisestage ühenduse loomiseks soovitud ruuteri SSID ja parool.

3) Tehke vajalikud muudatused, kui otsustasite ühendada SD -kaardi CS -pistiku mõne muu tihvtiga kui GPIO15.

4) Kas mäletate väärtusi, mille märkisime kõigi klahvide jaoks? Peame igale väärtusele määrama võtme numbri. Olin teile rääkinud ka näidu kõikumistest. Selle põhjuseks on asjaolu, et lüliti kontaktid pole ideaalsed. Pikemas perspektiivis võib see väärtus kontaktide vananemise tõttu praegusest väärtusest kõrvale kalduda, mis lisab vooluringile täiendavat takistust, muutes seega pinget. Me saame selle probleemi eest hoolitseda koodis.

Lisame väärtuse ülemise ja alumise piiri marginaaliga 5. Näiteks sain võtme 1 näidu 617.

  • Lahutage sellest 5. 617 - 5 = 612. See on alumine piir.
  • Nüüd lisage sellele 5. 617 + 5 = 622. See on ülempiir.
  • Kerige koodi lõpuni. Täitke koodis kahe väärtuse jaoks ette nähtud ruum, nagu pildil näidatud.
  • Tehke seda iga 9 väärtuse puhul.

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

Mida see tähendab?

Kui näit (r) on suurem kui 612 JA väiksem kui 622, siis vajutatakse klahvi 1. Iga väärtust vahemikus 612 kuni 622 käsitletakse võtmena 1. See lahendab kõikuva näidu probleemi.

8. samm: korpuse ehitamine

Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine
Korpuse ehitamine

See on täiesti vabatahtlik. Arvasin, et projekt näeb välja kena ja täielik koos ümbrisega. Ilma selle töö jaoks sobivate tööriistadeta oli see minu jaoks tohutu ülesanne. Korpus on valmistatud akrüülist.

Valmistas tükid liimimiseks ette, lihvpaberi abil servad siludes. Kõigi tükkide ühendamiseks kasutasin Fevi Kwiki (superliimi). Superliim jätab pärast kõvenemist valge jäägi. Seetõttu kasutage seda ainult liigeste vahel. Superliimiga töötamisel peate olema kiire ja täpne, kuna see kiiresti hangub. Selle töö jaoks sobib kõige paremini akrüültsement.

Tegi väikese ava, et faili abil USB -porti juurde pääseda. See peaks olema USB -juhtme sisestamiseks piisavalt suur.

Loonud 3x3 ruudustiku esikaanele nuppude jaoks. See muudab nuppudele ligipääsu keeruliseks. Selle probleemi lahendamiseks lõikasin iga klahvi jaoks ruudukujulised tükid, nii et nende nupud oleksid nüüd pinnale sirutatud.

Pärast nii palju lihvimist, lõikamist, fikseerimist ja reguleerimist sai see lõpuks tehtud!

Samm: nautige

Lõbutse hästi!
Lõbutse hästi!

Lõpuks on kogu raske töö tehtud. Lülitage oma mini tulemustabel sisse ja olge mänguga kursis.

Pärast sisselülitamist ühendab see esmalt pääsupunktiga. Vormistab SD -kaardi. See näitab viga, kui SD -kaarti ei vormindata.

Kuvatakse kõigi vastete loend koos vaste numbriga.

Valige klahvistiku abil vaste number.

Tulemused kuvatakse. Saate kohandada kõike, mida soovite ekraanil näha. Ma ei süveneks koodi selgitamisse liiga sügavale. Siit leiate üksikasjaliku selgituse parsimise toimimise kohta.

Menüüsse naasmiseks hoidke nuppu TAGASI (klahv 8) all, kuni kuvatakse leht "Tulemuste toomine …".

Tulevikuplaanid

  • Kujundage kohandatud trükkplaat ESP8266 12-E mooduliga.
  • Lisage laetav aku.
  • Parandage koodi uute funktsioonidega.

Loodetavasti teile ehitamine meeldis. Tehke seda ise ja nautige! Alati on ruumi arenguks ja palju õppida. Esitage oma ideid. Kommenteerige julgelt kõiki ehitusega seotud soovitusi. Tänan, et püsisite lõpuni.

Soovitan: