Satura rādītājs:

Kriketa rezultātu tablo, izmantojot NodeMCU: 9 soļi (ar attēliem)
Kriketa rezultātu tablo, izmantojot NodeMCU: 9 soļi (ar attēliem)

Video: Kriketa rezultātu tablo, izmantojot NodeMCU: 9 soļi (ar attēliem)

Video: Kriketa rezultātu tablo, izmantojot NodeMCU: 9 soļi (ar attēliem)
Video: Управление 32 серводвигателями с PCA9685 и ESP32 - V4 2024, Jūlijs
Anonim
Image
Image
Plāns
Plāns

Sveiki! Nesen es tiku iepazīstināts ar lietu internetu (lietu internetu), jo es saskāros ar populārāko ierīci šajā jomā - ESP8266. Es biju pārsteigts par galīgo iespēju skaitu, ko pavēra šī mazā un lētā ierīce. Tā kā es šobrīd esmu jauns, es nolēmu izveidot projektu, izmantojot to, un mācīties. Tātad, es sāku meklēt projektus un idejas internetā.

Es saskāros ar pārsteidzošu projektu, ko sauca V. A. Smits ar nosaukumu Arduino kriketa rezultātu rādītājs. Šajā projektā Arduino kopā ar Ethernet vairogu un SD karti tiek izmantots, lai parādītu tiešos kriketa rezultātus no Cricbuzz. Šis projekts lika aizdomāties.

Es esmu no Indijas, un pirmā lieta, kas nāk prātā pēc Indijas dzirdēšanas, ir krikets. Šeit krikets ir reliģija. Dažreiz kļūst grūti sēdēt pie televizora, lai sekotu līdzi visam mačam. Tātad, kāpēc ne izveidot kaut ko tādu, kas padara skatīšanās rezultātu vieglu, bezvadu un pārnēsājamu. Īpaša, maza ierīce, kas parāda pietiekamu informāciju, lai jūs varētu tikai atjaunināt informāciju.

Vai neesat kriketa fans? Nekādu problēmu! Kods satur XML parsētāju, ko var izmantot, lai iegūtu datus no jebkura XML faila. Vienkārši izmantojiet pareizās funkcijas, lai iegūtu datus.

1. solis: plāns

Plāns
Plāns

Plāns ir izmantot NodeMCU attīstības padomi (ar ESP-12E moduli), lai piekļūtu internetam un pieprasītu no Cricbuzz XML kodu, kurā ir visa informācija par notiekošajām/gaidāmajām spēlēm. Šis kods tiek saglabāts SD kartē kā.xml fails. Pēc tam fails tiek nolasīts no SD kartes, lai parsētu nepieciešamos datus no XML koda. Lai analizētu informāciju, es izmantošu V. A. Smita kodu. Pateicoties viņa centieniem. Pārbaudiet viņa projektu, ja vēlaties to izdarīt, izmantojot Arduino un Ethernet vairogu.

Mana ideja ir padarīt to pēc iespējas mazāku, izveidot tai pielāgotu PCB un korpusu. Pagaidām izveidosim prototipu. Bet vispirms iepazīsimies ar šajā projektā izmantotajām sastāvdaļām.

Sāksim

2. darbība: OLED displejs

OLED displejs
OLED displejs
OLED displejs
OLED displejs

Es nolēmu izmantot OLED displeju tā mazā izmēra dēļ, un tie ir pieejami par lētu cenu. Es izmantoju 0,96 collu displeju, kas būs pietiekams, lai parādītu spēles informāciju. Varat izmantot jebkura izmēra displeju.

Displejs, kuru izmantoju, ir vienkrāsains ar SSD1306 draiveri un I2C (2 vadu) interfeisu. Ir pieejamas arī displeja SPI versijas. To vadīšana ir viegls uzdevums. Lejupielādējiet displeju palaišanai nepieciešamās SSD1306 un GFX bibliotēkas. Paldies Adafruit par šo bibliotēku rakstīšanu.

Savienojumi ir ļoti vienkārši.

  • GND līdz GND
  • VCC līdz 3.3V
  • SCL līdz D1
  • SDA līdz D2.

3. darbība: SD karte un adapteris

SD karte un adapteris
SD karte un adapteris

SD karte saglabā XML failu no Cricbuzz, līdz visa informācija ir parsēta. Kad ir parādīta nepieciešamā informācija, fails tiek izdzēsts. SD kartes izmantošana 10–20 kB XML faila glabāšanai ir nedaudz pārmērīga, taču tas padara parsēšanu daudz vieglāku un saprotamāku.

Var izmantot jebkuru atmiņas karti. Es izvēlējos micro SD karti tās mazās formas dēļ. Jūs varat tieši pielodēt vadus SD kartē, taču, izmantojot sadalīšanas paneli, darbs ir vieglāks. Jāatzīmē, ka visas SD kartes ir paredzētas darbam ar 3.3V. Tas nozīmē, ka ne tikai to vajadzētu darbināt, izmantojot 3.3V, bet arī sakariem starp mikrokontrolleri un SD karti jābūt 3.3V loģikas līmenī. Spriegums virs 3.3V to nogalinās! Mēs par to neuztraucamies, ciktāl tas attiecas uz NodeMCU, jo pats NodeMCU darbojas ar 3.3 V spriegumu, kas ir labi. Ja plānojat izmantot jebkuru citu mikrokontrolleri ar 5V loģikas līmeni, pārliecinieties, vai jūsu sadalīšanas panelī ir iebūvēts līmeņa pārslēdzējs (kā parādīts attēlā). Būtībā tas pārveido vai “pārslēdz” 5V no mikrokontrollera uz SD kartei draudzīgu 3.3V. Līmeņu pārslēga izmantošana kopā ar 3.3V (kā es to izdarīju) neietekmē tā darbību.

SD karte saziņai izmanto SPI saskarni. CS vai mikroshēmas izvēles tapu var savienot ar jebkuru no GPIO tapām. Es izvēlējos GPIO15 (D8). Vienkārši veiciet nepieciešamās izmaiņas kodā, ja izmantojāt citu tapu, nevis GPIO15

  • SCK līdz D5
  • MISO līdz D6
  • MOSI līdz D7
  • CS līdz D8
  • VCC līdz 3.3V
  • GND līdz GND

Formatējiet savu SD karti

Bibliotēka, kuru mēs izmantosim, atbalsta FAT16 vai FAT32 failu sistēmas. Noteikti formatējiet SD karti pareizajā formātā.

4. darbība. Tastatūras izveide

Tastatūras izgatavošana
Tastatūras izgatavošana
Tastatūras izgatavošana
Tastatūras izgatavošana
Tastatūras izgatavošana
Tastatūras izgatavošana

Es vēlos, lai projekts būtu pēc iespējas mazāks. Tātad, es nolēmu izveidot tastatūrai atsevišķu tāfeli un vēlāk uzstādīt to virs galvenās plates. Tas ietaupīs vietu.

Var iegādāties gatavu atslēgu matricu, bet man bija spiedpogas. Turklāt es gribēju to padarīt pēc iespējas mazāku. Tipiskam savienojošo rindu un kolonnu izvietojumam būtu nepieciešami 6 GPIO tapas 3 x 3 matricai. Tas ir diezgan daudz, ņemot vērā, ka tiks pievienots arī OLED displejs un SD karte.

Ja rodas šaubas, izmantojiet Google! Tā es darīju un atradu veidu, kā būs nepieciešama tikai viena tapa, lai kontrolētu visu matricu. Tas ir iespējams, izmantojot sprieguma dalītāja matricu. Rezistori ir savienoti starp katru rindu un kolonnu. Nospiežot taustiņu, noteikta rezistoru kombinācija tiek savienota virknē, kas rada sprieguma dalītāju. Skatiet shēmas shēmu. Dažādu spriegumu nolasīs mikrokontrolleris. Katrs taustiņš radīs atšķirīgu spriegumu, un tādējādi var viegli uzzināt, kurš taustiņš tika nospiests, nolasot matricas izejas spriegumu. Tā kā mēs vēlamies lasīt dažādus sprieguma līmeņus un tagad tikai augstu un zemu, mums būs nepieciešama analogā tapa. Par laimi NodeMCU ir viena analogā tapa, kas apzīmēta kā A0. Problēma atrisināta!

Ja vēlaties iegādāties matricu, pārbaudiet iekšējos savienojumus, kas parādīti diagrammā. Var izmantot jebkura izmēra matricu. Noteikti izmantojiet 2,2 kΩ rezistoru starp rindām un 680Ω rezistoru starp kolonnām.

Piespiežamo pogu savienošana

1. un 2. tapas ir iekšēji savienotas. Tas pats ar tapām 3 un 4. Nospiežot pogu, visas tapas ir savienotas kopā. Skatiet attēlu, lai iegūtu priekšstatu par slēdžu pievienošanu perforatoram.

Esmu pievienojis 3 kontaktu vīriešu kārtas galveni, lai vēlāk to varētu savienot ar galveno plati.

5. solis: visu salieciet kopā

Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā
Visu salikt kopā

Jūs varat plānot komponentu izvietošanu, kur vien vēlaties. Tam nav ierobežojumu. Es jums parādīšu, kā es to izdarīju, lai padarītu to kompaktu, jo es gribēju kaut ko tādu, kas iederēsies plaukstā. Tas var kļūt nedaudz netīrs, tāpēc izmēģiniet manu ceļu, ja jums ir ērti lodēt. Es nolēmu aizpildīt abas tāfeles puses tā, kā būtu divu slāņu PCB. NodeMCU un SD kartes sadalīšanas panelis vienā pusē un OLED un tastatūra otrā pusē.

SD kartes pārtraukums vienkārši notiek starp divām sieviešu galvenēm, kas paredzētas NodeMCU. Es desoldēju leņķiskos tēviņu galviņas, ar kurām tika piegādāts sadalīšanas dēlis, pagriezu to un atkal pielodēju tā, lai tapas būtu perpendikulāri uz leju, kā parādīts attēlā. Piekļuve SD kartes slotam kļūst vieglāka.

Es noliecu 4-pin sieviešu galvenes tapas taisnā leņķī un lodēju to uz perforatora vara puses, kā parādīts attēlā.

Pārklājiet lodēšanas savienojumus zem tastatūras, lai novērstu īssavienojumus. Papildu aizsardzībai un stingrībai pievienojiet plānu cietu putu gabalu (apmēram 5 mm biezu) starp tastatūru un mātesplati. Visbeidzot, pielodējiet iepriekš izveidoto tastatūru. Lodāmurs ar smailu galu noteikti atvieglos jūsu darbu. Tas bija netīrs darbs, padarot to pēc iespējas kompaktu, bet beidzot izdevās to paveikt.

Pirms ierīces barošanas vēlreiz pārbaudiet visus savienojumus, vai nav īssavienojumu

6. darbība: tastatūras iestatīšana

Tastatūras iestatīšana
Tastatūras iestatīšana

Kad esat pārbaudījis visus savienojumus, esat gatavs ierīci ieslēgt pirmo reizi. Turu īkšķus! Nav burvju dūmu? Apsveicu!

Tagad mēs esam gatavi iestatīt tastatūru. Atgādiniet tastatūras darbību. Katru reizi nospiežot taustiņu, tiks izvadīts cits spriegums, kas tiek padots NodeMCU analogajai tapai. ESP-12E ir analogo ciparu pārveidotājs (ADC) ar 10 bitu izšķirtspēju. 2, palielinot līdz 10, dos 1024. Tas nozīmē, ka mēs saņemsim rādījumu no 0 līdz 1024 par katru nospiesto taustiņu. Apskatīsim, kādus rādījumus mēs iegūstam. Bet vispirms mums ir jāuzraksta neliela programma, lai iegūtu šīs vērtības. Atveriet Arduino IDE, kopējiet un ielīmējiet šo kodu un augšupielādējiet to NodeMCU.

int keypadPin = A0;

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

  • Atveriet seriālo monitoru. Iestatiet pārraides ātrumu uz 115200.
  • Tagad nospiediet jebkuru pogu. Jums vajadzētu iegūt pastāvīgu lasījumu sērijas monitorā. Nelielas svārstības ir piemērotas. Par tiem tiks rūpēts galvenajā kodā. Dariet to pašu ar katru atslēgu.
  • Katrai atslēgai jābūt atšķirīgai nolasīšanai.
  • Pierakstiet visas vērtības. Mums tie būs vajadzīgi vēlāk.

7. darbība: kodēsim

Let's Code
Let's Code
Let's Code
Let's Code
Let's Code
Let's Code

Lejupielādējiet zemāk esošo Scoreboard.ino failu savā datorā un atveriet to, izmantojot Arduino IDE.

Pirms augšupielādes

1) Iestatiet rezultātu tabulas atsvaidzināšanas laiku. Piemēram, 15L 15 sekundes.

2) Ievadiet maršrutētāja SSID un paroli, lai izveidotu savienojumu.

3) Veiciet nepieciešamās izmaiņas, ja izvēlējāties SD kartes CS tapu savienot ar citu tapu, nevis GPIO15.

4) Atcerieties vērtības, kuras mēs atzīmējām visām atslēgām? Katrai vērtībai mums jāpiešķir atslēgas numurs. Es jums arī biju pastāstījis par lasījuma svārstībām. Tas ir tāpēc, ka slēdža kontakti nav perfekti. Ilgtermiņā šī vērtība var novirzīties no pašreizējās vērtības, jo kontakti noveco, kas ķēdē rada papildu pretestību, tādējādi mainot spriegumu. Mēs varam parūpēties par šo problēmu kodā.

Mēs pievienosim vērtības augšējo un apakšējo robežu ar rezervi 5. Piemēram, es saņēmu 617 nolasījumu 1. atslēgai.

  • No tā atņem 5. 617 - 5 = 612. Šī ir apakšējā robeža.
  • Tagad pievienojiet tam 5. 617 + 5 = 622. Šī ir augšējā robeža.
  • Ritiniet līdz koda beigām. Aizpildiet laukumu, kas paredzēts divām vērtībām kodā, kā parādīts attēlā.
  • Dariet to katrām 9 vērtībām.

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

Ko tas nozīmē?

JA rādījums (r) ir lielāks par 612 UN mazāks par 622, tad tiek nospiests 1. taustiņš. Jebkura vērtība starp 612 un 622 tiks uzskatīta par 1. atslēgu. Tas atrisina svārstīgu rādījumu problēmu.

8. solis: lietas izveidošana

Lietas veidošana
Lietas veidošana
Lietas veidošana
Lietas veidošana
Lietas veidošana
Lietas veidošana
Lietas veidošana
Lietas veidošana

Tas ir pilnīgi neobligāti. Es domāju, ka projekts izskatīsies glīts un pabeigts ar lietu ap to. Ja šim darbam nebija atbilstošu instrumentu, tas man bija milzīgs uzdevums. Korpuss ir izgatavots, izmantojot akrilu.

Sagatavoja gabalus līmēšanai, izlīdzinot malas, izmantojot smilšpapīru. Es izmantoju Fevi Kwik (Super Glue), lai savienotu visus gabalus kopā. Super līme pēc sacietēšanas atstāj baltu atlikumu. Tātad, uzklājiet to tikai starp locītavām. Strādājot ar superlīmi, jums ir jābūt ātram un precīzam, jo tā ātri sacietē. Šim darbam vislabāk piemērots akrila cements.

Izveidoja nelielu atveri, lai piekļūtu USB portam, izmantojot failu. Tam vajadzētu būt pietiekami lielam, lai ievietotu USB vadu.

Uz priekšējā vāka spiedpogām tika izveidots 3x3 režģis. Tādējādi spiedpogām būs grūti piekļūt. Lai atrisinātu šo problēmu, es katrai atslēgai sagriezu kvadrātveida gabalus, lai to pogas tagad būtu izstieptas līdz virsmai.

Pēc tik daudz slīpēšanas, griešanas, fiksēšanas un regulēšanas tas beidzot tika izdarīts!

9. solis: izklaidējieties

Izklaidējieties!
Izklaidējieties!

Visbeidzot, viss smagais darbs ir paveikts. Ieslēdziet savu mini rezultātu tablo un sekojiet līdzi spēlei.

Pēc ieslēgšanas tas vispirms izveido savienojumu ar piekļuves punktu. Inicializē SD karti. Tas parādīs kļūdu, ja SD karte nav inicializēta.

Tiks parādīts visu atbilstību saraksts kopā ar spēles numuru.

Izmantojot tastatūru, izvēlieties spēles numuru.

Rezultāti tiks parādīti. Varat pielāgot visu, ko vēlaties redzēt displejā. Es pārāk neiedziļinātos koda skaidrošanā. Detalizētu skaidrojumu par parsēšanas darbību varat atrast šeit.

Lai atgrieztos izvēlnē, turiet pogu ATPAKAĻ (8. taustiņš), līdz tiek parādīta lapa "Rezultātu iegūšana …".

Nākotnes plāni

  • Izstrādājiet pielāgotu PCB ar ESP8266 12-E moduli.
  • Pievienojiet uzlādējamu akumulatoru.
  • Uzlabojiet kodu, izmantojot jaunas funkcijas.

Ceru, ka jums patika būvniecība. Padariet to pats un izklaidējieties! Vienmēr ir vieta uzlabojumiem un daudz ko mācīties. Nāciet klajā ar savām idejām. Jūtieties brīvi komentēt jebkādus ieteikumus par būvniecību. Paldies, ka turaties līdz galam.

Ieteicams: