Kazalo:

Pregled kriketa z uporabo NodeMCU: 9 korakov (s slikami)
Pregled kriketa z uporabo NodeMCU: 9 korakov (s slikami)

Video: Pregled kriketa z uporabo NodeMCU: 9 korakov (s slikami)

Video: Pregled kriketa z uporabo NodeMCU: 9 korakov (s slikami)
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, November
Anonim
Image
Image
Načrt
Načrt

Zdravo! Pred kratkim sem se predstavil svetu IoT (Internet of Things), ko sem naletel na najbolj priljubljeno napravo na tem področju, ESP8266. Bil sem presenečen nad številnimi možnostmi, ki jih je odprla ta majhna in poceni naprava. Ker sem trenutno nov v tem, sem se odločil, da bom z njim naredil projekt in se ob tem učil. Tako sem začel po internetu iskati projekte in ideje.

Naletel sem na neverjeten projekt, imenovan Arduino Cricket Score Ticker avtorja W. A. Smith. V tem projektu se Arduino skupaj z Ethernetnim ščitom in kartico SD uporablja za prikaz rezultatov kriketa v živo iz Cricbuzza. Ta projekt mi je dal misliti.

Sem iz Indije in prva stvar, ki mi pride na misel, ko slišim Indijo, je kriket. Tu je kriket religija. Včasih je težko sedeti pred televizorjem in spremljati celotno tekmo. Torej, zakaj ne bi naredili nekaj, kar olajša gledanje, brezžično in prenosljivo. Namenska drobna naprava, ki prikazuje dovolj informacij, da ste na tekočem samo s pogledom.

Niste ljubitelj kriketa? Ni problema! Koda vsebuje razčlenjevalnik XML, ki ga lahko uporabite za pridobivanje podatkov iz katere koli datoteke XML. Za pridobivanje podatkov uporabite samo ustrezne funkcije.

1. korak: Načrt

Načrt
Načrt

V načrtu je uporaba razvojnega odbora NodeMCU (z modulom ESP-12E) za dostop do interneta in zahtevanje kode XML od Cricbuzza, ki vsebuje vse informacije o trenutnih/prihajajočih tekmah. Ta koda je shranjena na kartici SD kot datoteka.xml. Datoteka se nato prebere s kartice SD, da se razčlenijo potrebni podatki iz kode XML. Za razčlenjevanje podatkov bom uporabil kodo W. A. Smitha. Zahvaljujoč njegovim prizadevanjem. Oglejte si njegov projekt, če želite isto narediti z Arduinom in Ethernet Shieldom.

Moja ideja je, da bi bila čim manjša, izdelala tiskano vezje po meri in ohišje zanj. Za zdaj naredimo prototip. Najprej pa se seznanimo s komponentami, uporabljenimi v tem projektu.

Začnimo

2. korak: Zaslon OLED

OLED zaslon
OLED zaslon
OLED zaslon
OLED zaslon

Odločil sem se za OLED zaslon zaradi majhnosti in so na voljo poceni. Uporabljam 0,96 -palčni zaslon, ki bo dovolj za prikaz podatkov o ujemanju. Uporabite lahko poljubno velikost zaslona.

Zaslon, ki ga uporabljam, je enobarven z gonilnikom SSD1306 in vmesnikom I2C (2-žični). Na voljo so tudi različice zaslona SPI. Njihovo vodenje je lahka naloga. Prenesite knjižnice SSD1306 in GFX, potrebne za zagon zaslonov. Hvala Adafruit za pisanje teh knjižnic.

Povezave so zelo preproste.

  • GND v GND
  • VCC do 3.3V
  • SCL do D1
  • SDA do D2.

3. korak: SD kartica in adapter

SD kartica in adapter
SD kartica in adapter

Kartica SD shranjuje datoteko XML iz Cricbuzza, dokler niso razčlenjeni vsi podatki. Ko so prikazani potrebni podatki, se datoteka izbriše. Uporaba kartice SD za shranjevanje datoteke XML velikosti 10 - 20 kB je nekoliko pretirana, vendar olajša in razčlenjuje razčlenjevanje.

Uporabite lahko katero koli pomnilniško kartico. Za majhno obliko sem izbral kartico micro SD. Žice lahko neposredno spajkate na kartico SD, vendar z uporabo odklopne plošče delo olajšate. Treba je omeniti, da so vse kartice SD namenjene delovanju na 3.3V. To pomeni, da mora biti napajan ne le z 3.3V, ampak mora biti tudi komunikacija med mikrokrmilnikom in kartico SD na 3.3V logični ravni. Napetost nad 3,3 V jo bo ubila! Kar zadeva NodeMCU, se s tem ne bomo sekirali, ker sam NodeMCU deluje na 3.3V, kar je v redu. Če nameravate uporabiti kateri koli drug mikrokrmilnik z logičnim nivojem 5V, se prepričajte, da je na plošči za vklop vgrajen menjalnik nivojev (kot je prikazano na sliki). V bistvu pretvori ali "premakne" 5V iz mikrokrmilnika v SD kartico, ki je prijazna do 3.3V. Uporaba menjalnika nivoja skupaj s 3,3 V (tako kot jaz) ne vpliva na njegovo delovanje.

Kartica SD za komunikacijo uporablja vmesnik SPI. Zatič CS ali Chip Select lahko priključite na katerega koli od zatičev GPIO. Izbral sem GPIO15 (D8). Če želite uporabiti kodo, ki ni GPIO15, naredite potrebne spremembe

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

Formatirajte kartico SD

Knjižnica, ki jo bomo uporabljali, podpira datotečne sisteme FAT16 ali FAT32. Kartico SD formatirajte v pravilni obliki.

4. korak: Izdelava tipkovnice

Izdelava tipkovnice
Izdelava tipkovnice
Izdelava tipkovnice
Izdelava tipkovnice
Izdelava tipkovnice
Izdelava tipkovnice

Želim, da bi bil projekt čim manjši. Zato sem se odločil, da naredim ločeno ploščo za tipkovnico in jo kasneje namestim nad glavno ploščo. To bo prihranilo nekaj prostora.

Pripravljeno matrico ključev je mogoče kupiti, vendar sem imel okoli sebe pritisnjene gumbe. Prav tako sem hotel biti čim manjši. Tipična razporeditev povezovalnih vrstic in stolpcev bi potrebovala skupaj 6 zatičev GPIO za matriko 3 x 3. To je precej, glede na to, da bosta povezana tudi zaslon OLED in kartica SD.

Če ste v dvomih, poiščite Google! To sem storil in našel način, ki potrebuje le en pin za nadzor celotne matrice. To je mogoče z uporabo matrice razdelilnika napetosti. Upori so povezani med vsako vrstico in stolpec. Ko pritisnete tipko, se zaporedno poveže določena kombinacija uporov, kar ustvari delilnik napetosti. Oglejte si diagram vezja. Spremenljiva napetost bo odčitana z mikrokrmilnikom. Vsaka tipka bo proizvedla drugačno napetost, zato je z branjem izhodne napetosti matrike enostavno ugotoviti, katera tipka je bila pritisnjena. Ker želimo prebrati različne napetostne ravni in zdaj le visoke in nizke, bomo potrebovali analogni pin. Na srečo obstaja en analogni pin z oznako A0 na NodeMCU. Problem rešen!

Če želite kupiti matrico, preverite notranje povezave, prikazane na diagramu. Uporabite lahko matriko poljubnih dimenzij. Uporabite upor 2,2 kΩ med vrsticami in upor 680 Ω med stolpci.

Povezovanje potisnih gumbov

Zatiča 1 in 2 sta notranje povezana. Enako z nožicami 3 in 4. Ko pritisnete gumb, so vsi zatiči povezani skupaj. Na sliki si oglejte, kako priključiti stikala na ploščo.

Priključil sem 3-polni moški priključek, tako da ga je mogoče pozneje priključiti na glavno ploščo.

5. korak: Vse združite

Združevanje vsega skupaj
Združevanje vsega skupaj
Združevanje vsega skupaj
Združevanje vsega skupaj
Združevanje vsega skupaj
Združevanje vsega skupaj

Načrtujete lahko postavitev komponent, kamor koli želite. Za to ni nobenih omejitev. Pokazal vam bom, kako sem to naredil, da bi bil kompakten, saj sem želel nekaj, kar bo ustrezalo dlani. Lahko se malo zaplete, zato poskusite, če vam je všeč spajkanje. Odločil sem se, da bom na obeh straneh plošče naselil dvoslojno tiskano vezje. NodeMCU in kartica SD na eni strani, OLED in tipkovnica na drugi strani.

Zlom kartice SD se slučajno prilega med dvema ženskima glavoma, ki sta za NodeMCU. Odkotal sem moške glave pod kotom, s katerimi je prišla odklopna plošča, jo zavrtil in spet spajal, tako da so zatiči pravokotno navzdol, kot je prikazano na sliki. Dostop do reže za kartico SD je lažji.

Zatiče 4-polne ženske glave sem upognil pod pravim kotom in ga spajkal na bakreni strani plošče, kot je prikazano na sliki.

Spajkalne spoje pokrijte pod tipkovnico, da preprečite kratek stik. Za dodatno zaščito in togost med tipkovnico in matično ploščo dodajte tanek kos trde pene (debeline približno 5 mm). Končno spajkajte tipkovnico, ki smo jo naredili prej. Spajkalnik s koničasto konico vam bo zagotovo olajšal delo. To je bilo kar grdo delo, zaradi česar je bilo kar se da kompaktno, a mu je končno uspelo.

Pred vklopom naprave še enkrat preverite, ali so v vseh povezavah kratki stiki

6. korak: Nastavitev tipkovnice

Nastavitev tipkovnice
Nastavitev tipkovnice

Ko preverite vse povezave, ste prvič pripravljeni na vklop naprave. Držim pesti! Ni čarobnega dima? Čestitke!

Zdaj smo pripravljeni na nastavitev tipkovnice. Spomnite se delovanja tipkovnice. Vsak pritisk tipke bo oddajal drugačno napetost, ki se napaja na analogni pin NodeMCU. ESP-12E ima analogno-digitalni pretvornik (ADC) z 10-bitno ločljivostjo. 2, dvignjeno na stopnjo 10, bo dalo 1024. To pomeni, da bomo za vsako pritisnjeno tipko dobili odčitke med 0 in 1024. Poglejmo, kakšne odčitke dobimo. Najprej pa moramo napisati majhen program, da dobimo te vrednosti. Odprite Arduino IDE, kopirajte in prilepite naslednjo kodo in jo naložite v NodeMCU.

int tipkovnicaPin = A0;

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

  • Odprite serijski monitor. Hitrost prenosa nastavite na 115200.
  • Zdaj pritisnite kateri koli gumb. Na serijskem monitorju bi morali imeti stalno branje. Majhna nihanja so v redu. Zanje bo poskrbljeno v glavni kodi. Enako naredite za vsak ključ.
  • Vsak ključ bi moral imeti drugačno branje.
  • Zapišite si vse vrednosti. Potrebovali jih bomo kasneje.

7. korak: Kodirajmo

Kodirajmo
Kodirajmo
Kodirajmo
Kodirajmo
Kodirajmo
Kodirajmo

Na svoj računalnik prenesite spodaj navedeno datoteko Scoreboard.ino in jo odprite z uporabo Arduino IDE.

Preden naložite

1) Nastavite čas osveževanja tablice. Na primer 15L za 15 sekund.

2) Vnesite SSID in geslo usmerjevalnika za povezavo.

3) Izvedite potrebne spremembe, če ste izbrali priključek CS kartice SD na pin, ki ni GPIO15.

4) Se spomnite vrednosti, ki smo jih zapisali za vse tipke? Za vsako vrednost moramo dodeliti številko ključa. Povedala sem vam tudi o nihanju branja. To je zato, ker stikalni stiki niso popolni. Dolgoročno lahko ta vrednost zaradi staranja kontaktov odstopa od trenutne vrednosti, kar doda dodatni upor v vezju in s tem spremeni napetost. To težavo lahko rešimo v kodi.

Dodali bomo zgornjo mejo in spodnjo mejo vrednosti z robom 5. Na primer, za ključ 1 sem dobil odčitek 617.

  • Od tega odštejte 5. 617 - 5 = 612. To je spodnja meja.
  • Zdaj mu dodajte 5. 617 + 5 = 622. To je zgornja meja.
  • Pomaknite se do konca kode. Izpolnite prostor za dve vrednosti v kodi, kot je prikazano na sliki.
  • To naredite za vsakih 9 vrednosti.

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

Kaj to pomeni?

ČE je odčitek (r) večji od 612 IN manjši od 622, pritisnete tipko 1. Vsaka vrednost med 612 in 622 bo obravnavana kot ključ 1. To rešuje problem nihajočega branja.

8. korak: Izdelava primera

Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera
Gradnja primera

To je popolnoma neobvezno. Mislil sem, da bo projekt videti čeden in popoln s primerom okoli njega. Brez ustreznih orodij za to delo bi bila zame velika naloga. Ohišje je izdelano iz akrila.

Kose smo pripravili za lepljenje tako, da smo z brusnim papirjem poravnali robove. Za združevanje vseh kosov sem uporabil Fevi Kwik (super lepilo). Super lepilo po tem, ko se strdi, pusti bele ostanke. Zato ga nanesite samo med sklepi. Pri delu s super lepilom morate biti hitri in natančni, saj se hitro lepi. Akrilni cement je najbolj primeren za to delo.

Naredili so majhno odprtino za dostop do vrat USB z datoteko. Moral bi biti dovolj velik, da vstavite kabel USB.

Ustvaril je mrežo 3x3 na sprednjem pokrovu za potisne gumbe. To bo otežilo dostop do gumbov. Za rešitev tega problema sem izrezal kvadratne kose za vsako tipko, tako da so njihovi gumbi zdaj razširjeni do površine.

Po toliko brušenja, rezanja, pritrjevanja in prilagajanja je bilo končno končano!

9. korak: Zabavajte se

Zabavaj se!
Zabavaj se!

Končno je vse trdo delo opravljeno. Vklopite mini tablo in bodite na tekočem z igro.

Po vklopu se najprej poveže z dostopno točko. Inicializira kartico SD. Če kartica SD ni inicializirana, se prikaže napaka.

Prikazal se bo seznam vseh tekem skupaj s številko ujemanja.

S tipkovnico izberite številko ujemanja.

Rezultati bodo prikazani. Prilagodite lahko, kaj vse želite videti na zaslonu. Ne bi se preveč poglobil v razlago kode. Podrobno razlago o tem, kako deluje razčlenjevanje, najdete tukaj.

Če se želite vrniti v meni, držite gumb NAZAJ (tipka 8), dokler se ne prikaže stran »Pridobivanje rezultatov…«.

Načrti za prihodnost

  • Oblikujte tiskano vezje po meri z modulom ESP8266 12-E.
  • Dodajte baterijo za ponovno polnjenje.
  • Izboljšajte kodo z novimi funkcijami.

Upam, da vam je bila izdelava všeč. Naredite sami in se zabavajte! Vedno je nekaj prostora za izboljšave in veliko se je treba naučiti. Pojdite s svojimi idejami. Komentirajte kakršne koli predloge glede gradnje. Hvala, ker ste vztrajali do konca.

Priporočena: