Taula de continguts:

Tauler de puntuació de Cricket mitjançant NodeMCU: 9 passos (amb imatges)
Tauler de puntuació de Cricket mitjançant NodeMCU: 9 passos (amb imatges)

Vídeo: Tauler de puntuació de Cricket mitjançant NodeMCU: 9 passos (amb imatges)

Vídeo: Tauler de puntuació de Cricket mitjançant NodeMCU: 9 passos (amb imatges)
Vídeo: Chak De India Title Song | Shah Rukh Khan | Sukhwinder Singh | Salim-Sulaiman | Jaideep Sahni 2024, Juliol
Anonim
Image
Image
El Pla
El Pla

Hola! Fa poc m’han introduït al món de l’IoT (Internet de les coses) ja que em vaig trobar amb el dispositiu més popular d’aquest camp, l’ESP8266. Em va sorprendre el nombre final de possibilitats que va obrir aquest petit i barat dispositiu. Com que ara sóc nou en això, vaig decidir fer un projecte amb ell i aprendre en el camí. Per tant, vaig començar a buscar projectes i idees a Internet.

Em vaig trobar amb un projecte increïble anomenat Arduino Cricket Score Ticker de W. A. Smith. En aquest projecte, Arduino juntament amb Ethernet Shield i la targeta SD s’utilitzen per mostrar puntuacions de cricket en directe de Cricbuzz. Aquest projecte em va fer pensar.

Sóc de l'Índia i el primer que em ve al cap després d'escoltar l'Índia és Cricket. Aquí el grill és religió. De vegades es fa difícil seure davant d’un televisor per seguir tot el partit. Per tant, per què no fer alguna cosa que faci que la visualització de partitures sigui fàcil, sense fil i portàtil? Un petit dispositiu dedicat que mostra informació suficient per mantenir-vos actualitzat amb només un cop d'ull.

No ets un fan del criquet? Cap problema! El codi conté l'analitzador XML que es pot utilitzar per obtenir dades de qualsevol fitxer XML. Simplement utilitzeu les funcions correctes per obtenir les dades.

Pas 1: el pla

El Pla
El Pla

El pla és utilitzar la placa de desenvolupament NodeMCU (amb mòdul ESP-12E) per accedir a Internet i sol·licitar el codi XML de Cricbuzz que conté tota la informació sobre els partits en curs / propers. Aquest codi es desa a la targeta SD com a fitxer.xml. A continuació, es llegeix el fitxer des de la targeta SD per analitzar les dades necessàries del codi XML. Utilitzaré el codi de W. A. Smith per analitzar la informació. Gràcies als seus esforços. Consulteu el seu projecte si voleu fer el mateix amb Arduino i Ethernet Shield.

La meva idea és fer-lo més petit possible, construir un PCB personalitzat i fundar-lo. De moment, fem un prototip. Però primer, familiaritzem-nos amb els components utilitzats en aquest projecte.

Comencem

Pas 2: pantalla OLED

Pantalla OLED
Pantalla OLED
Pantalla OLED
Pantalla OLED

Vaig decidir anar amb una pantalla OLED a causa de la seva petita mida i estan disponibles a bon preu. Estic fent servir una pantalla de 0,96 que serà suficient per mostrar la informació del partit. Podeu utilitzar qualsevol mida de la pantalla.

La pantalla que faig servir és de color monocrom amb el controlador SSD1306 i la interfície I2C (2 fils). També hi ha disponibles versions SPI de la pantalla. Executar-los és una tasca fàcil. Baixeu-vos les biblioteques SSD1306 i GFX necessàries per executar les pantalles. Gràcies a Adafruit per escriure aquestes biblioteques.

Les connexions són molt senzilles.

  • GND a GND
  • VCC a 3,3V
  • SCL a D1
  • SDA a D2.

Pas 3: targeta SD i adaptador

Adaptador i targeta SD
Adaptador i targeta SD

La targeta SD emmagatzema el fitxer XML de Cricbuzz fins que s’ha analitzat tota la informació. Una vegada que es mostra la informació necessària, se suprimeix el fitxer. Utilitzar una targeta SD per emmagatzemar un fitxer XML de 10 a 20 kB és una mica excessiu, però fa que l’anàlisi sigui molt més fàcil i fàcil d’entendre.

Es pot utilitzar qualsevol targeta de memòria. Vaig triar la targeta micro SD pel seu petit format. Podeu soldar directament els cables a la targeta SD, però l’ús d’una placa de sortida facilita la feina. Cal tenir en compte que totes les targetes SD estan pensades per funcionar en 3,3V. Això vol dir que no només s’ha d’alimentar mitjançant 3.3V, sinó que la comunicació entre el microcontrolador i la targeta SD ha de ser de 3.3V a nivell lògic. Un voltatge superior a 3,3 V EL MATARÀ! No ens molestarem pel que fa a NodeMCU, ja que el mateix NodeMCU funciona amb 3,3 V, cosa que està bé. Si teniu previst utilitzar qualsevol altre microcontrolador amb nivell lògic de 5V, assegureu-vos que la vostra placa de sortida té un canvi de nivell incorporat (com es mostra a la imatge). Bàsicament converteix o "canvia" el 5V del microcontrolador a la targeta SD de 3.3V. Utilitzar el canvi de nivell junt amb 3,3 V (com he fet) no afecta el seu funcionament.

La targeta SD utilitza la interfície SPI per a la comunicació. El pin CS o Chip Select es pot connectar a qualsevol dels pins GPIO. He triat GPIO15 (D8). Només cal que feu els canvis necessaris al codi si heu utilitzat un pin diferent del GPIO15

  • SCK a D5
  • MISO a D6
  • MOSI a D7
  • CS a D8
  • VCC a 3,3V
  • GND a GND

Formateu la targeta SD

La biblioteca que farem servir admet sistemes de fitxers FAT16 o FAT32. Assegureu-vos de formatar la targeta SD al format correcte.

Pas 4: fabricació del teclat

Realització del teclat
Realització del teclat
Realització del teclat
Realització del teclat
Realització del teclat
Realització del teclat

Vull mantenir el projecte el més petit possible. Per tant, vaig decidir fer un tauler separat per al teclat i muntar-lo per sobre del tauler principal més tard. Això estalviarà una mica d’espai.

Es pot comprar una matriu de claus ja feta, però tenia botons premuts. A més, volia fer-lo el més petit possible. Una disposició típica de connexió de files i columnes necessitaria un total de 6 pins GPIO per a una matriu de 3 x 3. Això és bastant important tenint en compte que també es connectaran la pantalla OLED i la targeta SD.

Si teniu dubtes, feu-ho amb Google. Això és el que vaig fer i vaig trobar una manera que només necessiti 1 pin per controlar tota la matriu. Això és possible mitjançant la divisió de tensió. Les resistències estan connectades entre cada fila i columna. Quan es prem una tecla, es connecta una determinada combinació de resistències en sèrie que crea un divisor de voltatge. Consulteu l’esquema del circuit. El voltatge serà llegit pel microcontrolador. Cada tecla produirà un voltatge diferent i, per tant, es podrà esbrinar fàcilment quina tecla es va prémer llegint el voltatge de sortida de la matriu. Com que volem llegir nivells de voltatge diferents i ara només alts i alts, necessitarem un pin analògic. Per sort, hi ha un pin analògic etiquetat com A0 a NodeMCU. Problema resolt!

Si voleu comprar una matriu, consulteu les connexions internes que es mostren al diagrama. Es pot utilitzar una matriu de qualsevol mida. Assegureu-vos d’utilitzar una resistència de 2,2 kΩ entre les files i una resistència de 680Ω entre les columnes.

Botons de connexió

Els pins 1 i 2 estan connectats internament. El mateix passa amb els pins 3 i 4. Quan es prem el botó, tots els pins estan connectats entre si. Consulteu la imatge per fer-vos una idea de connectar els interruptors a un perfboard.

He connectat una capçalera masculina de 3 pins perquè es pugui connectar a la placa principal més endavant.

Pas 5: ajuntar-ho tot

Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt

Podeu planejar col·locar els components allà on vulgueu. No hi ha restriccions. Us mostraré com ho vaig fer per fer-lo compacte, ja que volia alguna cosa que encaixés al palmell. Es pot posar una mica desordenat, així que proveu-ho si esteu còmode amb la soldadura. Vaig decidir omplir els dos costats del tauler com seria un PCB de dues capes. NodeMCU i placa de sortida de la targeta SD per un costat i OLED i teclat a l’altre costat.

El trencament de la targeta SD només coincideix entre les dues capçaleres femenines que són per al NodeMCU. Vaig dessoldar les capçaleres masculines inclinades amb què venia el tauler de ruptura, les vaig girar i vaig tornar a soldar de manera que els passadors anessin perpendicularment cap avall tal com es mostra a la imatge. Accedir a la ranura de la targeta SD es fa més fàcil.

Vaig doblar els passadors d’una capçalera femenina de 4 pins en angle recte i els vaig soldar al costat de coure del tauler, tal com es mostra a la imatge.

Cobriu les juntes de soldadura sota el teclat per evitar curtcircuits. Afegiu un tros prim d’escuma dura (d’uns 5 mm de gruix) entre el teclat i la placa base per obtenir una protecció i rigidesa addicionals. Finalment, soldeu el teclat que vam fer anteriorment. Tenir un soldador amb una punta punxeguda segur que us facilitarà la feina. Va ser un treball desordenat que el feia el més compacte possible, però finalment va aconseguir fer-ho.

Comproveu si hi ha cap curtcircuit de totes les connexions abans d’engegar el dispositiu

Pas 6: Configuració del teclat

Configuració del teclat
Configuració del teclat

Un cop comprovades totes les connexions, ja podreu engegar el dispositiu per primera vegada. Dits creuats! No hi ha fum màgic? Felicitats!

Ara estem preparats per configurar el teclat. Recordeu el funcionament del teclat. Cada pulsació de tecla generarà una tensió diferent que s’alimenta al pin analògic de NodeMCU. ESP-12E té un convertidor analògic a digital (ADC) de resolució de 10 bits. 2 elevat a la potència 10 donarà 1024. Això vol dir que rebrem una lectura entre 0 i 1024 per cada tecla que es prem. Vegem quines lectures obtenim. Però primer, hem d’escriure un petit programa per obtenir aquests valors. Obriu Arduino IDE, copieu i enganxeu el següent codi i pengeu-lo a NodeMCU.

int keypadPin = A0;

configuració nul·la () {Serial.begin (115200); } bucle buit () {int r = analogRead (teclatPin); Serial.println (r); }

  • Obriu el monitor de sèrie. Estableix la velocitat de transmissió en 115200.
  • Ara premeu qualsevol botó. Hauríeu d'obtenir una lectura constant al monitor sèrie. Les petites fluctuacions estan bé. Aquests seran atesos al codi principal. Feu el mateix per a cada tecla.
  • Cada clau ha de tenir una lectura diferent.
  • Anoteu tots els valors. Els necessitarem més endavant.

Pas 7: codifiquem

Codifiquem
Codifiquem
Codifiquem
Codifiquem
Codifiquem
Codifiquem

Descarregueu el fitxer Scoreboard.ino que es proporciona a continuació a l'ordinador i obriu-lo mitjançant l'IDE Arduino.

Abans de carregar

1) Estableix el temps d’actualització del marcador. Per exemple, 15 L per 15 segons.

2) Introduïu l'SSID i la contrasenya de l'encaminador per connectar-vos.

3) Feu els canvis necessaris si decidiu connectar el pin CS de la targeta SD a un pin diferent de GPIO15.

4) Recordeu els valors que hem assenyalat per a totes les tecles? Hem d'assignar un número clau per a cada valor. També us havia parlat de les fluctuacions de la lectura. Això es deu al fet que els contactes del commutador no són perfectes. A la llarga, aquest valor pot desviar-se del valor actual a causa de l'envelliment dels contactes, cosa que afegeix una resistència addicional al circuit, canviant així la tensió. Podem solucionar aquest problema al codi.

Afegirem un límit superior i un límit inferior del valor amb un marge de 5. Per exemple, he obtingut una lectura de 617 per a la clau 1.

  • Resteu-ne 5. 617 - 5 = 612. Aquest és el límit inferior.
  • Ara afegiu-hi 5. 617 + 5 = 622. Aquest és el límit superior.
  • Desplaceu-vos fins al final del codi. Ompliu l’espai proporcionat per als dos valors del codi tal com es mostra a la imatge.
  • Feu això per cada 9 valors.

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

Què vol dir això?

SI la lectura (r) és superior a 612 I inferior a 622, es prem la tecla 1. Qualsevol valor entre 612 i 622 es tractarà com a clau 1. Això soluciona el problema de la lectura fluctuant.

Pas 8: construir el cas

Construint el cas
Construint el cas
Construint el cas
Construint el cas
Construint el cas
Construint el cas
Construint el cas
Construint el cas

Això és completament opcional. Vaig pensar que el projecte es veuria ordenat i complet amb una funda al voltant. Sense eines adequades per a aquesta feina, seria una tasca enorme per a mi. La caixa està construïda amb acrílic.

Preparar les peces per enganxar suavitzant les vores amb paper de vidre. Vaig utilitzar Fevi Kwik (Super Glue) per unir totes les peces. La súper cola deixa un residu blanc després de curar-se. Per tant, apliqueu-lo només entre les articulacions. Heu de ser ràpids i precisos quan treballeu amb cola super, ja que es fixa ràpidament. El ciment acrílic és el més adequat per a aquesta feina.

S'ha fet una petita obertura per accedir al port USB mitjançant un fitxer. Ha de ser prou gran per inserir el cable USB.

S'ha creat una quadrícula de 3x3 a la coberta frontal dels botons. Això dificultarà l'accés als botons polsadors. Per solucionar aquest problema, he tallat peces quadrades per a cada tecla perquè els seus botons s’estenguin fins a la superfície.

Després de tant de polir, tallar, fixar i ajustar, finalment es va acabar!

Pas 9: Diverteix-te

Diverteix-te!
Diverteix-te!

Finalment, es fa tot el treball dur. Enceneu el vostre mini marcador i estigueu al dia amb el joc.

Després d’encendre’s, primer es connecta al punt d’accés. Inicialitza la targeta SD. Es mostrarà un error si la targeta SD no està inicialitzada.

Es mostrarà una llista de tots els partits juntament amb el número del partit.

Seleccioneu el número de coincidència mitjançant el teclat.

Es mostraran les puntuacions. Podeu personalitzar el que voleu veure a la pantalla. No aprofundiria en explicar el codi. Podeu trobar una explicació detallada aquí sobre el funcionament de l’anàlisi.

Per tornar al menú, manteniu premut el botó TORNAR (tecla 8) fins que aparegui la pàgina "Obtenció de puntuacions …".

Plans futurs

  • Dissenyeu un PCB personalitzat amb el mòdul ESP8266 12-E.
  • Afegiu una bateria recarregable.
  • Milloreu el codi amb noves funcions.

Espero que us hagi agradat la construcció. Feu-ho vosaltres mateixos i divertiu-vos! Sempre hi ha un cert espai per millorar i molt per aprendre. Penseu amb les vostres pròpies idees. No dubteu a comentar qualsevol suggeriment sobre la construcció. Gràcies per estar al final fins al final.

Recomanat: