Cuprins:
- Pasul 1: Planul
- Pasul 2: Afișaj OLED
- Pasul 3: Card SD și adaptor
- Pasul 4: Realizarea tastaturii
- Pasul 5: Puneți totul împreună
- Pasul 6: Configurarea tastaturii
- Pasul 7: Să codificăm
- Pasul 8: Construirea cazului
- Pasul 9: Distrează-te
Video: Tabloul de bord Cricket folosind NodeMCU: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Buna! Am fost introdus recent în lumea IoT (Internet of Things), deoarece am dat peste cel mai popular dispozitiv din acest domeniu, ESP8266. Am fost uimit de numărul final de posibilități care au fost deschise de acest dispozitiv mic și ieftin. Deoarece sunt în acest moment nou în acest sens, am decis să fac un proiect folosindu-l și să învăț pe parcurs. Așadar, am început să caut pe internet proiecte și idei.
Am dat peste un proiect uimitor numit Arduino Cricket Score Ticker de W. A. Smith. În acest proiect, Arduino împreună cu Ethernet Shield și cardul SD sunt utilizate pentru a afișa scoruri live de cricket de la Cricbuzz. Acest proiect m-a pus pe gânduri.
Sunt din India și primul lucru care îmi vine în minte după ce am auzit India este Cricket. Aici, greierul este religie. Uneori devine dificil să stai în fața unui televizor pentru a urmări întregul meci. Deci, de ce să nu faci ceva care face ca vizionarea scorului să fie ușoară, wireless și portabilă. Un dispozitiv mic dedicat, care prezintă suficiente informații pentru a vă ține la curent cu doar o privire.
Nu ești un fan de cricket? Nici o problemă! Codul conține analizorul XML care poate fi utilizat pentru a obține date din orice fișier XML. Folosiți doar funcțiile corecte pentru a obține datele.
Pasul 1: Planul
Planul este de a utiliza placa de dezvoltare NodeMCU (cu modul ESP-12E) pentru a accesa internetul și a solicita codul XML de la Cricbuzz care conține toate informațiile despre meciurile în curs / viitoare. Acest cod este salvat pe cardul SD ca fișier.xml. Fișierul este apoi citit de pe cardul SD pentru a analiza datele necesare din codul XML. Voi folosi codul lui W. A. Smith pentru a analiza informațiile. Mulțumită eforturilor sale. Verificați proiectul său dacă doriți să faceți același lucru folosind Arduino și Ethernet Shield.
Ideea mea este să-l fac cât mai mic posibil, să construiască un PCB personalizat și o carcasă pentru el. Deocamdată, să facem un prototip. Dar mai întâi, să ne familiarizăm cu componentele utilizate în acest proiect.
Să începem
Pasul 2: Afișaj OLED
Am decis să merg cu un ecran OLED din cauza dimensiunilor sale reduse și sunt disponibile la prețuri ieftine. Folosesc un afișaj de 0,96 , care va fi suficient pentru afișarea informațiilor despre meci. Puteți utiliza orice dimensiune a afișajului.
Afișajul pe care îl folosesc este unul monocrom cu driverul SSD1306 și interfața I2C (2 fire). Sunt disponibile și versiunile SPI ale afișajului. Executarea lor este o sarcină ușoară. Descărcați bibliotecile SSD1306 și GFX necesare pentru a rula afișajele. Mulțumim Adafruit pentru că a scris aceste biblioteci.
Conexiunile sunt foarte simple.
- GND la GND
- VCC la 3,3V
- SCL la D1
- SDA la D2.
Pasul 3: Card SD și adaptor
Cardul SD stochează fișierul XML de la Cricbuzz până când toate informațiile au fost analizate. Odată afișate informațiile necesare, fișierul este șters. Utilizarea unui card SD pentru a stoca un fișier XML de 10 - 20 kB este un pic excesiv, dar face analiza mult mai ușoară și mai ușor de înțeles.
Poate fi utilizat orice card de memorie. Am ales cardul micro SD pentru factorul său de formă mic. Puteți lipi direct firele pe cardul SD, dar utilizarea unei plăci de rupere ușurează lucrarea. Trebuie remarcat faptul că toate cardurile SD sunt menite să ruleze pe 3.3V. Aceasta înseamnă că nu numai că ar trebui să fie alimentat utilizând 3,3V, dar și comunicația dintre microcontroler și cardul SD trebuie să fie la nivel logic de 3,3V. Tensiunea peste 3,3 V îl va ucide! Nu ne vom deranja în ceea ce privește NodeMCU, deoarece NodeMCU în sine rulează pe 3.3V, ceea ce este bine. Dacă intenționați să utilizați orice alt microcontroler cu nivel logic de 5V, asigurați-vă că placa dvs. de breakout are un schimbător de nivel încorporat (așa cum se arată în imagine). Practic convertește sau „schimbă” 5V de la microcontroler la card SD de 3,3V. Utilizarea schimbătorului de nivel împreună cu 3,3V (așa cum am făcut-o) nu afectează funcționarea acestuia.
Cardul SD utilizează interfața SPI pentru comunicare. Pinul CS sau Chip Select poate fi conectat la oricare dintre pinii GPIO. Am ales GPIO15 (D8). Efectuați modificările necesare în cod dacă ați folosit un alt pin decât GPIO15
- SCK la D5
- MISO până la D6
- MOSI la D7
- CS la D8
- VCC la 3,3V
- GND la GND
Formatați cardul SD
Biblioteca pe care o vom folosi acceptă sisteme de fișiere FAT16 sau FAT32. Asigurați-vă că formatați cardul SD în formatul corect.
Pasul 4: Realizarea tastaturii
Vreau să mențin proiectul cât mai mic posibil. Deci, am decis să fac o placă separată pentru tastatură și să o montez mai sus deasupra plăcii principale. Acest lucru va economisi puțin spațiu.
Se poate achiziționa o matrice de chei gata pregătită, dar aveam butoane care se întindeau. De asemenea, am vrut să-l fac cât mai mic posibil. Un aranjament tipic de conectare a rândurilor și coloanelor ar avea nevoie de un total de 6 pini GPIO pentru 3 x 3 matrice. Acest lucru este destul de mare, având în vedere că afișajul OLED și cardul SD vor fi conectate și ele.
Când aveți dubii, Google it out! Asta am făcut și am găsit o cale care va avea nevoie de doar 1 pin pentru a controla întreaga matrice. Acest lucru este posibil folosind Matricea divizorului de tensiune. Rezistoarele sunt conectate între fiecare rând și coloană. Când este apăsată o tastă, o anumită combinație de rezistențe este conectată în serie, ceea ce creează un divizor de tensiune. Consultați schema de circuit. Tensiunea variabilă va fi citită de microcontroler. Fiecare tastă va produce o tensiune diferită și astfel se poate afla cu ușurință ce tastă a fost apăsată citind tensiunea de ieșire a matricei. Întrucât dorim să citim niveluri variate de tensiune și acum doar mari și mici, vom avea nevoie de un pin analogic. Din fericire, există un pin analogic etichetat ca A0 pe NodeMCU. Problema rezolvata!
Dacă doriți să cumpărați o matrice verificați conexiunile interne prezentate în diagramă. Se poate utiliza o matrice de orice dimensiuni. Asigurați-vă că utilizați un rezistor de 2,2 kΩ între rânduri și un rezistor de 680Ω între coloane.
Conectarea butoanelor push
Pinii 1 și 2 sunt conectați intern. La fel cu pinii 3 și 4. Când butonul este apăsat, toți pinii sunt conectați împreună. Consultați imaginea pentru a vă face o idee despre conectarea întrerupătoarelor de pe un panou perfector.
Am conectat un antet masculin cu 3 pini, astfel încât să poată fi conectat ulterior la placa principală.
Pasul 5: Puneți totul împreună
Puteți planifica plasarea componentelor oriunde doriți. Fără restricții. Vă voi arăta cum am făcut-o pentru a o face compactă, deoarece am vrut ceva care să încapă în palmă. Poate deveni un pic dezordonat, așa că încercați-mi cum să vă simțiți bine cu lipirea. Am decis să populez ambele părți ale plăcii așa cum ar fi un PCB cu două straturi. NodeMCU și placa de separare a cardului SD pe o parte și OLED și tastatură pe cealaltă parte.
Schimbarea cardului SD se întâmplă doar să se potrivească între cele două anteturi feminine care sunt pentru NodeMCU. Am desoldat anteturile masculine unghiulare cu care a venit placa de rupere, l-am rotit și l-am lipit din nou, astfel încât știfturile să meargă perpendicular în jos, așa cum se arată în imagine. Accesarea slotului pentru card SD devine mai ușoară.
Am îndoit pinii unui antet feminin cu 4 pini la unghi drept și l-am lipit pe partea de cupru a panoului de perfecționare, așa cum se arată în imagine.
Acoperiți îmbinările de lipit sub tastatură pentru a preveni scurtcircuitele. Adăugați o bucată subțire de spumă dură (aproximativ 5 mm grosime) între tastatură și placă de bază pentru o protecție și rigiditate suplimentară. În cele din urmă, lipiți tastatura pe care am realizat-o mai devreme. A avea un fier de lipit cu vârful ascuțit vă va ușura cu siguranță treaba. A fost o treabă dezordonată, făcându-l cât mai compact posibil, dar în cele din urmă a reușit să o facă.
Verificați din nou toate conexiunile pentru orice scurtcircuit înainte de a porni dispozitivul
Pasul 6: Configurarea tastaturii
După ce ați verificat toate conexiunile, sunteți gata să vă alimentați dispozitivul pentru prima dată. Degete încrucișate! Fără fum magic? Felicitări!
Acum suntem gata să configurăm tastatura. Reamintim funcționarea tastaturii. La fiecare apăsare a tastei se va emite o tensiune diferită care este alimentată la pinul analogic al NodeMCU. ESP-12E are un convertor analog la digital (ADC) cu rezoluție de 10 biți. 2 ridicat la putere 10 va da 1024. Aceasta înseamnă că vom primi o citire între 0 și 1024 pentru fiecare tastă apăsată. Să vedem ce lecturi obținem. Dar mai întâi, trebuie să scriem un mic program pentru a obține acele valori. Deschideți Arduino IDE, copiați lipiți următorul cod și încărcați-l pe NodeMCU.
tastatura intPin = A0;
void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }
- Deschideți monitorul serial. Setați rata de transmisie la 115200.
- Acum apăsați orice buton. Ar trebui să obțineți o citire constantă pe monitorul serial. Fluctuațiile mici sunt în regulă. Acestea vor fi îngrijite în codul principal. Faceți același lucru pentru fiecare tastă.
- Fiecare cheie ar trebui să aibă o lectură diferită.
- Notați toate valorile. Vom avea nevoie de ele mai târziu.
Pasul 7: Să codificăm
Descărcați fișierul Scoreboard.ino furnizat mai jos pe computer și deschideți-l folosind IDE-ul Arduino.
Înainte de a încărca
1) Setați timpul de reîmprospătare pentru tabloul de bord. De exemplu, 15L pentru 15secs.
2) Introduceți SSID-ul și parola routerului pentru a vă conecta.
3) Efectuați modificările necesare dacă ați ales să conectați pinul CS al cardului SD la un alt pin decât GPIO15.
4) Vă amintiți valorile pe care le-am notat pentru toate tastele? Trebuie să alocăm un număr cheie pentru fiecare valoare. Vă povestisem și despre fluctuațiile din lectură. Acest lucru se datorează faptului că contactele comutatorului nu sunt perfecte. Pe termen lung, această valoare se poate abate de la valoarea curentă datorită îmbătrânirii contactelor, ceea ce adaugă o rezistență suplimentară în circuit, schimbând astfel tensiunea. Ne putem ocupa de această problemă în cod.
Vom adăuga o limită superioară și o limită inferioară a valorii cu o marjă de 5. De exemplu, am primit o citire de 617 pentru cheia 1.
- Se scade 5 din el. 617 - 5 = 612. Aceasta este limita inferioară.
- Acum adaugă 5 la el. 617 + 5 = 622. Aceasta este limita superioară.
- Derulați până la sfârșitul codului. Completați spațiul prevăzut pentru cele două valori din cod așa cum se arată în imagine.
- Faceți acest lucru pentru fiecare 9 valori.
if (r> 612 && r <622) {keyNumber = 1; }
Ce inseamna asta?
DACĂ citirea (r) este mai mare de 612 ȘI mai mică de 622, atunci se apasă tasta 1. Orice valoare cuprinsă între 612 și 622 va fi tratată ca cheia 1. Aceasta rezolvă problema lecturii fluctuante.
Pasul 8: Construirea cazului
Acest lucru este complet opțional. Am crezut că proiectul va arăta îngrijit și complet cu o carcasă în jurul său. Fără instrumente adecvate pentru această slujbă, va fi o sarcină imensă pentru mine. Carcasa este construită folosind acril.
Pregătiți bucățile pentru lipire prin netezirea marginilor folosind șmirghel. Am folosit Fevi Kwik (Super Glue) pentru a uni toate piesele. Super lipiciul lasă un reziduu alb după ce s-a vindecat. Deci, aplicați-l numai între articulații. Trebuie să fii rapid și precis când lucrezi cu super lipici, deoarece se fixează rapid. Cimentul acrilic este cel mai potrivit pentru această muncă.
Am făcut o mică deschidere pentru a accesa portul USB folosind un fișier. Ar trebui să fie suficient de mare pentru a introduce cablul USB.
A fost creată o grilă de 3x3 pe capacul frontal pentru butoane. Acest lucru va face ca butoanele să fie dificil de accesat. Pentru a rezolva această problemă, am tăiat bucăți pătrate pentru fiecare cheie, astfel încât butoanele lor să fie acum extinse până la suprafață.
După atât de multă șlefuire, tăiere, fixare și reglare, în cele din urmă s-a făcut!
Pasul 9: Distrează-te
În cele din urmă, toată munca grea este făcută. Porniți mini-tabloul de bord și rămâneți la curent cu jocul.
După pornire, se conectează mai întâi la punctul de acces. Inițializează cardul SD. Va afișa o eroare dacă cardul SD nu este inițializat.
O listă a tuturor meciurilor va fi afișată împreună cu numărul meciului.
Selectați numărul de potrivire utilizând tastatura.
Scorurile vor fi afișate. Puteți personaliza ceea ce doriți să vedeți pe ecran. Nu aș merge prea adânc în a explica codul. Puteți găsi aici o explicație detaliată despre modul în care funcționează analiza.
Pentru a reveni la meniu, țineți apăsat butonul ÎNAPOI (tasta 8) până când se afișează pagina „Obținerea scorurilor …”.
Planuri de viitor
- Proiectați un PCB personalizat cu modulul ESP8266 12-E.
- Adăugați o baterie reîncărcabilă.
- Îmbunătățiți codul cu funcții noi.
Sper că ți-a plăcut construcția. Fă-o singur și distrează-te! Există întotdeauna un spațiu de îmbunătățire și multe de învățat. Vino cu propriile idei. Simțiți-vă liber să comentați orice sugestie cu privire la construcție. Îți mulțumesc că ai rămas până la capăt.
Recomandat:
Tasmota Admin - Tabloul de bord IIoT: 6 pași
Tasmota Admin - Tabloul de bord IIoT: TasmoAdmin este un site administrativ pentru dispozitive cu flash-ul Tasmota. O puteți găsi aici: TasmoAdmin GitHub. Acceptă rularea pe containere Windows, Linux și Docker. CaracteristiciLogin protejatMulti proces de actualizare
Ecran LCD STONE pentru tabloul de bord auto: 5 pași
Ecran LCD STONE pentru tabloul de bord al mașinilor: odată cu dezvoltarea rapidă a economiei și îmbunătățirea treptată a puterii de consum a oamenilor, mașinile au devenit necesitățile zilnice ale familiilor obișnuite și toată lumea acordă mai multă atenție confortului și siguranței mașinilor
Tabloul de bord COVID-19 WHO: 8 pași (cu imagini)
Tabloul de bord COVID-19 WHO: Acest instructable arată cum să utilizați ESP8266 / ESP32 și LCD pentru a construi un tablou de bord al situației COVID-19
Tabloul de bord COVID19 pe harta lumii (folosind Python): 16 pași
Tabloul de bord COVID19 pe harta lumii (folosind Python): Știu că aproape toți știm cele mai multe informații despre COVID19. Și acest instructable este despre crearea unei hărți cu bule, pentru a trasa datele în timp real (ale cazurilor) pe harta lumii. Pentru mai multă comoditate , am adăugat programul în depozitul Github: https: //github.co
Tabloul de bord COVID-19 (simplu și ușor): 4 pași
Tabloul de bord COVID-19 (simplu și ușor): Peste tot există un focar uriaș al virusului nou COVID-19. A devenit necesar să urmărim scenariul actual al COVID-19 în țară. Așadar, fiind acasă, acesta a fost proiectul la care m-am gândit: „Un tablou de bord al informațiilor” - A Da