Innholdsfortegnelse:

Resultattavle for cricket ved bruk av NodeMCU: 9 trinn (med bilder)
Resultattavle for cricket ved bruk av NodeMCU: 9 trinn (med bilder)

Video: Resultattavle for cricket ved bruk av NodeMCU: 9 trinn (med bilder)

Video: Resultattavle for cricket ved bruk av NodeMCU: 9 trinn (med bilder)
Video: How to Study the Bible | Dwight L. Moody | Christian Audiobook 2024, Juli
Anonim
Image
Image
Planen
Planen

Hallo! Jeg ble nylig introdusert for verden av IoT (Internet of Things) da jeg kom over den mest populære enheten på dette feltet, ESP8266. Jeg ble overrasket over det endelige antallet muligheter som ble åpnet opp av denne lille og billige enheten. Siden jeg for øyeblikket er ny på dette, bestemte jeg meg for å lage et prosjekt med det og lære underveis. Så jeg begynte å søke på internett etter prosjekter og ideer.

Jeg kom over et fantastisk prosjekt kalt Arduino Cricket Score Ticker av W. A. Smith. I dette prosjektet brukes Arduino sammen med Ethernet Shield og SD -kort for å vise live cricket score fra Cricbuzz. Dette prosjektet fikk meg til å tenke.

Jeg er fra India, og det første jeg tenker på etter å ha hørt India er cricket. Her er cricket religion. Noen ganger blir det vanskelig å sitte foran en TV for å følge hele kampen. Så hvorfor ikke lage noe som gjør det enkelt å se på score, trådløst og bærbart. En dedikert liten enhet som viser tilstrekkelig informasjon til å holde deg oppdatert med bare et blikk på den.

Ikke en cricket -fan? Ikke noe problem! Koden inneholder XML -parseren som kan brukes til å hente data fra en hvilken som helst XML -fil. Bare bruk de riktige funksjonene for å få dataene.

Trinn 1: Planen

Planen
Planen

Planen er å bruke NodeMCU Development Board (med ESP-12E-modul) for å få tilgang til internett og be om XML-koden fra Cricbuzz som inneholder all informasjon om de pågående/kommende kampene. Denne koden lagres på SD -kortet som en.xml -fil. Filen leses deretter fra SD -kortet for å analysere nødvendige data fra XML -koden. Jeg vil bruke W. A. Smiths kode for å analysere informasjonen. Takket være hans innsats. Sjekk ut prosjektet hans hvis du ønsker å lage det samme ved hjelp av Arduino og Ethernet Shield.

Min idé er å gjøre den liten som mulig, bygge en tilpasset PCB og etui for den. For nå, la oss lage en prototype. Men først, la oss bli kjent med komponentene som brukes i dette prosjektet.

La oss komme i gang

Trinn 2: OLED -skjerm

OLED -skjerm
OLED -skjerm
OLED -skjerm
OLED -skjerm

Jeg bestemte meg for å gå med en OLED -skjerm på grunn av den lille størrelsen, og de er tilgjengelige for billig. Jeg bruker en 0,96 skjerm som vil være tilstrekkelig for å vise kampinformasjonen. Du kan bruke hvilken som helst størrelse på skjermen.

Skjermen jeg bruker er en monokrom skjerm med SSD1306-driveren og I2C (2-leder) grensesnitt. SPI -versjoner av skjermen er også tilgjengelig. Å kjøre dem er en enkel oppgave. Last ned SSD1306- og GFX -bibliotekene som trengs for å kjøre skjermene. Takk til Adafruit for å skrive disse bibliotekene.

Tilkoblinger er veldig enkle.

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

Trinn 3: SD -kort og adapter

SD -kort og adapter
SD -kort og adapter

SD -kort lagrer XML -filen fra Cricbuzz til all informasjon er analysert. Når nødvendig informasjon er vist, blir filen slettet. Å bruke et SD -kort til å lagre en 10 - 20 kB XML -fil er litt overkill, men det gjør analysen mye enklere og lettere å forstå.

Et hvilket som helst minnekort kan brukes. Jeg valgte micro SD -kort for sin lille formfaktor. Du kan lodde ledninger direkte til SD -kortet, men bruk av et utbruddskort gjør jobben enkel. Det skal bemerkes at alle SD -kort er ment å kjøre på 3.3V. Dette betyr at ikke bare den skal drives med 3,3V, men også kommunikasjonen mellom mikrokontroller og SD -kort må være 3,3V logisk nivå. Spenning over 3,3V vil drepe det! Vi kommer ikke til å bry oss om det når det gjelder NodeMCU fordi NodeMCU selv kjører på 3.3V, noe som er greit. Hvis du planlegger å bruke en annen mikrokontroller med 5V logisk nivå, må du sørge for at breakout-kortet har en innebygd nivåskifter (som vist på bildet). Den konverterer eller "skifter" 5V fra mikrokontrolleren til SD -kortvennlig 3.3V. Bruk av nivåskifter sammen med 3.3V (som jeg gjorde) påvirker ikke driften.

SD -kort bruker SPI -grensesnitt for kommunikasjon. CS- eller Chip Select -pinne kan kobles til hvilken som helst av GPIO -pinnene. Jeg valgte GPIO15 (D8). Bare gjør nødvendige endringer i koden hvis du brukte en annen pin enn GPIO15

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

Formater SD -kortet

Biblioteket vi skal bruke støtter FAT16 eller FAT32 filsystemer. Sørg for at du formaterer SD -kortet til riktig format.

Trinn 4: Lag tastaturet

Å lage tastaturet
Å lage tastaturet
Å lage tastaturet
Å lage tastaturet
Å lage tastaturet
Å lage tastaturet

Jeg vil beholde prosjektet så lite som mulig. Så jeg bestemte meg for å lage et eget bord for tastaturet og montere det over hovedkortet senere. Dette vil spare litt plass.

Du kan kjøpe en ferdig nøkkelmatrise, men jeg hadde trykknapper. Dessuten ønsket jeg å gjøre den så liten som mulig. Et typisk arrangement for å koble sammen rader og kolonner vil trenge totalt 6 GPIO -pinner for 3 x 3 matrise. Dette er ganske mye med tanke på at OLED -skjerm og SD -kort også vil være tilkoblet.

Hvis du er i tvil, google det ut! Det var det jeg gjorde og fant en måte som trenger bare 1 pin for å kontrollere hele matrisen. Dette er mulig ved bruk av Voltage Divider Matrix. Motstander er koblet mellom hver rad og kolonne. Når du trykker på en tast, kobles en bestemt kombinasjon av motstander i serie som skaper en spenningsdeler. Se kretsdiagrammet. Den varierende spenningen vil bli lest av mikrokontrolleren. Hver tast vil produsere en annen spenning, og dermed kan du enkelt finne ut hvilken tast som ble trykket ved å lese matrisens utgangsspenning. Siden vi ønsker å lese varierende spenningsnivå og nå bare høyt og lavt, trenger vi en analog pin. Heldigvis er det en analog pin merket som A0 på NodeMCU. Problem løst!

Hvis du ønsker å kjøpe en matrise, sjekk de interne tilkoblingene som er vist i diagrammet. En matrise av alle dimensjoner kan brukes. Sørg for å bruke en 2,2 kΩ motstand mellom radene og 680Ω motstand mellom kolonnene.

Koble til trykknapper

Pins 1 og 2 er internt tilkoblet. Samme med pinne 3 og 4. Når knappen trykkes, er alle pinnene koblet sammen. Se bildet for å få en ide om hvordan du kobler bryterne på et perfboard.

Jeg har koblet en 3-pinners hannhodet slik at den kan kobles til hovedkortet senere.

Trinn 5: Sett alt sammen

Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen

Du kan planlegge å plassere komponentene hvor du vil. Ingen begrensninger på det. Jeg skal vise deg hvordan jeg gjorde det for å gjøre det kompakt da jeg ønsket noe som ville passe i håndflaten. Det kan bli litt rotete, så prøv meg frem hvis du er komfortabel med lodding. Jeg bestemte meg for å fylle ut begge sidene av brettet som et to-lags PCB ville være. NodeMCU og SD -kort breakout board på den ene siden og OLED og tastatur på den andre siden.

SD -kortbruddet tilfeldigvis passer mellom de to kvinnelige overskriftene som er for NodeMCU. Jeg avloddet de vinklede hannhodene som breakoutbordet fulgte med, roterte det og loddet igjen slik at pinnene går vinkelrett nedover som vist på bildet. Det blir lettere å få tilgang til SD -kortsporet.

Jeg bøyde pinnene på et 4-pinners hunnhodet i en rett vinkel og loddet det på kobbersiden av perfboardet som vist på bildet.

Dekk loddeskjøtene under tastaturet for å forhindre kortslutning. Legg til et tynt stykke hardt skum (rundt 5 mm tykt) mellom tastaturet og hovedkortet for ekstra beskyttelse og stivhet. Til slutt lodder du tastaturet som vi laget tidligere. Å ha et loddejern med en spiss spiss vil sikkert gjøre jobben din enkel. Det var en rotete jobb som gjorde det så kompakt som mulig, men klarte det til slutt.

Dobbeltsjekk alle tilkoblingene dine for eventuelle kortslutninger før du slår på enheten

Trinn 6: Sette opp tastaturet

Sette opp tastaturet
Sette opp tastaturet

Når du har kontrollert alle tilkoblingene, er du klar til å slå på enheten for første gang. Fingrene krysset! Ingen magisk røyk? Gratulerer!

Nå er vi klare til å sette opp tastaturet. Husk hvordan tastaturet fungerer. Hvert tastetrykk sender ut en annen spenning som mates til den analoge pinnen til NodeMCU. ESP-12E har en analog til digital omformer (ADC) med 10-biters oppløsning. 2 hevet til effekten 10 vil gi 1024. Dette betyr at vi får en avlesning mellom 0 og 1024 for hver tast som trykkes. La oss se hvilke avlesninger vi får. Men først må vi skrive et lite program for å få disse verdiene. Åpne Arduino IDE, kopier inn følgende kode og last den opp til NodeMCU.

int tastaturPin = A0;

ugyldig oppsett () {Serial.begin (115200); } void loop () {int r = analogRead (tastaturPin); Serial.println (r); }

  • Åpne den serielle skjermen. Sett overføringshastigheten til 115200.
  • Trykk nå på hvilken som helst knapp. Du bør få en konstant avlesning på den serielle skjermen. Små svingninger er greit. Disse vil bli ivaretatt i hovedkoden. Gjør det samme for hver tast.
  • Hver nøkkel bør ha en annen lesning.
  • Noter ned alle verdiene. Vi trenger dem senere.

Trinn 7: La oss kode

La oss kode
La oss kode
La oss kode
La oss kode
La oss kode
La oss kode

Last ned Scoreboard.ino -filen nedenfor på datamaskinen din og åpne den ved hjelp av Arduino IDE.

Før du laster opp

1) Angi oppdateringstiden for resultattavlen. For eksempel 15L i 15sek.

2) Skriv inn SSID og passord for ruteren for å koble til.

3) Gjør nødvendige endringer hvis du valgte å koble CS -pinnen på SD -kortet til en annen pin enn GPIO15.

4) Husker du verdiene som vi noterte for alle tastene? Vi må tildele et nøkkelnummer for hver verdi. Jeg hadde også fortalt deg om svingningene i lesingen. Dette er på grunn av at bryterkontaktene ikke er perfekte. På sikt kan denne verdien avvike fra gjeldende verdi på grunn av aldring av kontakter som gir ekstra motstand i kretsen og dermed endrer spenningen. Vi kan ta vare på dette problemet i koden.

Vi vil legge til en øvre grense og en nedre grense for verdien med en margin på 5. For eksempel fikk jeg en avlesning på 617 for nøkkel 1.

  • Trekk 5 fra den. 617 - 5 = 612. Dette er den nedre grensen.
  • Legg nå til 5. 617 + 5 = 622. Dette er den øvre grensen.
  • Bla til slutten av koden. Fyll ut mellomrommet for de to verdiene i koden som vist på bildet.
  • Gjør dette for hver 9 verdier.

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

Hva betyr dette?

HVIS avlesningen (r) er større enn 612 OG mindre enn 622, trykkes tast 1. Enhver verdi mellom 612 og 622 vil bli behandlet som nøkkel 1. Dette løser problemet med svingende lesing.

Trinn 8: Bygg saken

Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken
Å bygge saken

Dette er helt valgfritt. Jeg trodde prosjektet ville se pent og komplett ut med en sak rundt det. Uten riktige verktøy for denne jobben, kom det til å bli en enorm oppgave for meg. Etuiet er bygget i akryl.

Forberedte bitene for liming ved å jevne ut kantene med sandpapir. Jeg brukte Fevi Kwik (Super Glue) til å koble alle bitene sammen. Superlim etterlater en hvit rest etter at den er herdet. Så bruk det bare mellom leddene. Du må være rask og nøyaktig når du arbeider med superlim da det setter seg raskt. Akrylsement er best egnet for denne jobben.

Lagde en liten åpning for å få tilgang til USB -porten ved hjelp av en fil. Den skal være stor nok til å sette inn USB -kabelen.

Laget et 3x3 rutenett på forsiden for trykknappene. Dette vil gjøre trykknappene vanskelig tilgjengelige. For å løse dette problemet, kuttet jeg firkantede stykker for hver nøkkel, slik at knappene deres nå er forlenget opp til overflaten.

Etter så mye slipe, kutte, fikse og justere, var det endelig gjort!

Trinn 9: Ha det gøy

Ha det gøy!
Ha det gøy!

Til slutt er alt det harde arbeidet gjort. Slå på minitavlen og hold deg oppdatert med spillet.

Etter oppstart kobles den først til tilgangspunktet. Initialiserer SD -kortet. Det vil vise en feil hvis SD -kortet ikke initialiseres.

En liste over alle kampene vil vises sammen med kampnummer.

Velg matchnummeret med tastaturet.

Resultatene vises. Du kan tilpasse alt du vil se på skjermen. Jeg ville ikke gå for dypt inn på å forklare koden. Du finner en detaljert forklaring her om hvordan analysen fungerer.

For å komme tilbake til menyen, hold BACK (Tast 8) -knappen til siden "Henter poeng …" vises.

Fremtidsplaner

  • Design en tilpasset kretskort med ESP8266 12-E-modulen.
  • Legg til et oppladbart batteri.
  • Forbedre koden med nye funksjoner.

Håper du likte bygget. Lag det selv og ha det gøy! Det er alltid plass til forbedring og mye å lære. Kom med dine egne ideer. Kommenter gjerne forslag til byggingen. Takk for at du holder deg til slutten.

Anbefalt: