Sadržaj:

Tablica kriketa pomoću NodeMCU: 9 koraka (sa slikama)
Tablica kriketa pomoću NodeMCU: 9 koraka (sa slikama)

Video: Tablica kriketa pomoću NodeMCU: 9 koraka (sa slikama)

Video: Tablica kriketa pomoću NodeMCU: 9 koraka (sa slikama)
Video: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, Novembar
Anonim
Image
Image
Plan
Plan

Zdravo! Nedavno sam se upoznao sa svijetom IoT (Internet of Things) jer sam naišao na najpopularniji uređaj u ovoj oblasti, ESP8266. Bio sam zadivljen krajnjim brojem mogućnosti koje je otvorio ovaj maleni i jeftini uređaj. Budući da sam tek nov u ovome, odlučio sam napraviti projekt koristeći ga i usput učiti. Tako sam počeo pretraživati internet za projekte i ideje.

Naišao sam na nevjerojatan projekt koji je W. A. Smith nazvao Arduino Cicket Score Ticker. U ovom projektu, Arduino se zajedno s Ethernet Shieldom i SD karticom koristi za prikaz rezultata kriketa uživo iz Cricbuzza. Ovaj projekat me je naveo na razmišljanje.

Ja sam iz Indije i prvo što mi padne na pamet nakon što čujem Indiju je kriket. Ovdje je kriket religija. Ponekad postane teško sjediti ispred televizora i pratiti cijeli meč. Pa, zašto ne biste napravili nešto što gledanje rezultata čini lakim, bežičnim i prenosivim. Namjenski mali uređaj koji prikazuje dovoljno informacija kako biste bili u toku sa samo jednim pogledom na njega.

Niste ljubitelj kriketa? Nema problema! Kôd sadrži XML parser koji se može koristiti za dobivanje podataka iz bilo koje XML datoteke. Samo koristite ispravne funkcije za dobivanje podataka.

Korak 1: Plan

Plan
Plan

Plan je koristiti razvojnu ploču NodeMCU (s modulom ESP-12E) za pristup internetu i zatražiti XML kod od Cricbuzza koji sadrži sve informacije o tekućim/predstojećim podudaranjima. Ovaj kôd se sprema na SD karticu kao.xml datoteka. Datoteka se zatim čita sa SD kartice radi raščlanjivanja potrebnih podataka iz XML koda. Koristiću kod W. A. Smitha za raščlanjivanje informacija. Zahvaljujući njegovim naporima. Pogledajte njegov projekt ako želite napraviti isti koristeći Arduino i Ethernet Shield.

Moja je ideja učiniti ga što manjim, izraditi prilagođenu PCB i kućište za njega. Za sada napravimo prototip. No, prvo se upoznajmo sa komponentama koje se koriste u ovom projektu.

Hajde da počnemo

Korak 2: OLED ekran

OLED ekran
OLED ekran
OLED ekran
OLED ekran

Odlučio sam se za OLED ekran zbog male veličine i dostupni su jeftino. Koristim ekran od 0,96 koji će biti dovoljan za prikaz informacija o podudaranju. Možete koristiti bilo koju veličinu ekrana.

Ekran koji koristim je jednobojan sa SSD1306 upravljačkim programom i I2C (2-žičnim) interfejsom. Dostupne su i SPI verzije ekrana. Pokretanje istih je lak zadatak. Preuzmite biblioteke SSD1306 i GFX potrebne za pokretanje zaslona. Hvala Adafruit -u na pisanju ovih biblioteka.

Veze su vrlo jednostavne.

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

Korak 3: SD kartica i adapter

SD kartica i adapter
SD kartica i adapter

SD kartica pohranjuje XML datoteku iz Cricbuzza dok se sve informacije ne raščlane. Nakon što se prikažu potrebne informacije, datoteka se briše. Korištenje SD kartice za spremanje XML datoteke od 10 - 20 kB pomalo je pretjerano, ali čini raščlanjivanje mnogo lakšim i lakšim za razumijevanje.

Može se koristiti bilo koja memorijska kartica. Odabrao sam mikro SD karticu zbog male veličine. Možete izravno lemiti žice na SD karticu, ali upotreba razvodne ploče olakšava posao. Treba napomenuti da su sve SD kartice namijenjene za rad na 3.3V. To znači da ne samo da se napaja pomoću 3.3V, već i komunikacija između mikrokontrolera i SD kartice mora biti na 3.3V logičkom nivou. Napon iznad 3,3 V UBIT ĆE GA! Što se tiče NodeMCU -a, nećemo se gnjaviti oko toga jer sam NodeMCU radi na 3.3V što je u redu. Ako planirate koristiti bilo koji drugi mikrokontroler s logičkim nivoom od 5 V, pobrinite se da vaša ploča za probijanje ima ugrađen pomak nivoa (Kao što je prikazano na slici). U osnovi pretvara ili "prebacuje" 5V sa mikrokontrolera na 3.3V prilagođeno SD kartici. Korištenje mjenjača nivoa sa 3.3V (kao što sam i ja učinio) ne utječe na njegov rad.

SD kartica koristi SPI sučelje za komunikaciju. CS ili Chip Select pin može se spojiti na bilo koji od GPIO pinova. Odabrao sam GPIO15 (D8). Samo unesite potrebne promjene u kôd ako ste koristili pin koji nije GPIO15

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

Formatirajte SD karticu

Biblioteka koju ćemo koristiti podržava datotečne sisteme FAT16 ili FAT32. Formatirajte SD karticu u ispravnom formatu.

Korak 4: Izrada tastature

Izrada tastature
Izrada tastature
Izrada tastature
Izrada tastature
Izrada tastature
Izrada tastature

Želim da projekt bude što manji. Stoga sam odlučio napraviti zasebnu ploču za tipkovnicu i kasnije je montirati iznad glavne ploče. Ovo će uštedjeti malo prostora.

Gotova matrica ključeva se može kupiti, ali ja sam pritisnuo dugmad. Takođe, hteo sam da bude što manji. Tipičan raspored povezivanja redova i stupaca trebao bi ukupno 6 GPIO pinova za 3 x 3 matrice. To je prilično s obzirom na to da će OLED ekran i SD kartica također biti povezani.

Ako ste u nedoumici, proguglajte to! To sam i učinio i pronašao sam način na koji će trebati samo 1 pin za kontrolu cijele matrice. To je omogućeno pomoću matrice razdjelnika napona. Otpornici su spojeni između svakog reda i stupca. Kada se pritisne tipka, određena kombinacija otpornika se serijski povezuje što stvara razdjelnik napona. Pogledajte dijagram kola. Mikrokontroler će očitati promjenjivi napon. Svaki taster će proizvesti drugačiji napon, pa se lako može saznati koji taster je pritisnut čitanjem izlaznog napona matrice. Budući da želimo čitati različite razine napona, a sada samo visoke i niske, trebat će nam analogni pin. Srećom, na NodeMCU -u postoji jedan analogni pin označen kao A0. Problem riješen!

Ako želite kupiti matricu, provjerite interne veze prikazane na dijagramu. Može se koristiti matrica bilo koje dimenzije. Obavezno upotrijebite otpornik od 2,2 kΩ između redova i otpornik od 680 Ω između stupova.

Povezivanje dugmadi

Igle 1 i 2 su interno povezane. Isto je sa pinovima 3 i 4. Kada se pritisne dugme, svi pinovi su povezani zajedno. Pogledajte sliku da biste dobili ideju o povezivanju prekidača na ploči.

Priključio sam 3-pinsko muško zaglavlje tako da se kasnije može spojiti na glavnu ploču.

Korak 5: Sve spojite

Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega

Možete planirati postavljanje komponenti gdje god želite. Nema ograničenja za to. Pokazat ću vam kako sam to učinio kompaktnim jer sam htio nešto što će stati na dlan. Može postati malo neuredno pa pokušajte na moj način ako vam je ugodno lemljenje. Odlučio sam napuniti obje strane ploče kao što bi bila dvoslojna PCB ploča. NodeMCU i SD kartica za razbijanje sa jedne strane i OLED i tastatura sa druge strane.

Slučajno se probijanje SD kartice uklapa između dva ženska zaglavlja koja su za NodeMCU. Odlemio sam ugaone muške zaglavlje s kojima je stigla ploča za razbijanje, okrenuo ga i ponovno lemio tako da igle idu okomito prema dolje kao što je prikazano na slici. Pristup utoru za SD karticu postaje lakši.

Savio sam igle 4-pinskog ženskog zaglavlja pod pravim kutom i lemio ga na bakrenoj strani ploče kao što je prikazano na slici.

Pokrijte lemne spojeve ispod tastature kako biste spriječili kratke spojeve. Dodajte tanki komad tvrde pjene (debljine oko 5 mm) između tastature i matične ploče za dodatnu zaštitu i krutost. Konačno, lemite tastaturu koju smo ranije napravili. Lemilica sa šiljastim vrhom zasigurno će vam olakšati posao. Bio je to neuredan posao što ga je činilo što kompaktnijim, ali napokon je to uspio.

Prije uključivanja uređaja, provjerite ima li na vašim priključcima kratkih spojeva

Korak 6: Postavljanje tastature

Postavljanje tastature
Postavljanje tastature

Nakon što provjerite sve veze, spremni ste za uključivanje uređaja po prvi put. Držim palčeve! Nema čarobnog dima? Čestitam!

Sada smo spremni za postavljanje tastature. Prisetite se rada tastature. Svakim pritiskom na tipku izlazit će različiti napon koji se dovodi na analogni pin NodeMCU -a. ESP-12E ima analogno-digitalni pretvarač (ADC) 10-bitne rezolucije. 2 podignuto na stepen 10 dat će 1024. To znači da ćemo dobiti očitanje između 0 i 1024 za svaki pritisnuti taster. Pogledajmo kakva čitanja imamo. Ali prvo moramo napisati mali program da bismo dobili te vrijednosti. Otvorite Arduino IDE, kopirajte i zalijepite sljedeći kôd te ga prenesite na NodeMCU.

int keypadPin = A0;

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

  • Otvorite serijski monitor. Postavite brzinu prijenosa na 115200.
  • Sada pritisnite bilo koje dugme. Trebali biste stalno čitati na serijskom monitoru. Male fluktuacije su u redu. O njima će se voditi računa u glavnom kodu. Učinite isto za svaki ključ.
  • Svaki ključ bi trebao imati drugačije čitanje.
  • Zapišite sve vrijednosti. Trebat će nam kasnije.

Korak 7: Kodirajmo

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

Preuzmite datoteku Scoreboard.ino koja se nalazi ispod na računaru i otvorite je pomoću Arduino IDE -a.

Prije postavljanja

1) Postavite vrijeme osvježavanja na semaforu. Na primjer, 15L za 15 sekundi.

2) Unesite SSID i lozinku usmjerivača za povezivanje.

3) Napravite potrebne promjene ako ste odlučili spojiti CS pin SD kartice na pin koji nije GPIO15.

4) Sjećate li se vrijednosti koje smo zabilježili za sve tipke? Za svaku vrijednost moramo dodijeliti broj ključa. Takođe sam vam govorio o fluktuacijama u čitanju. To je zbog toga što kontakti prekidača nisu savršeni. Dugoročno gledano, ova vrijednost može odstupati od trenutne vrijednosti zbog starenja kontakata što dodaje dodatni otpor u krugu i na taj način mijenja napon. Ovaj problem možemo riješiti u kodu.

Dodaćemo gornju granicu i donju granicu vrednosti sa marginom 5. Na primer, dobio sam očitavanje 617 za ključ 1.

  • Od toga oduzmite 5. 617 - 5 = 612. Ovo je donja granica.
  • Sada mu dodajte 5. 617 + 5 = 622. Ovo je gornja granica.
  • Pomaknite se do kraja koda. Popunite prostor predviđen za dvije vrijednosti u kodu kao što je prikazano na slici.
  • Učinite to za svakih 9 vrijednosti.

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

Šta to znači?

AKO je očitanje (r) veće od 612 i manje od 622, tada se pritisne tipka 1. Bilo koja vrijednost između 612 i 622 bit će tretirana kao ključ 1. Time se rješava problem fluktuirajućeg očitanja.

Korak 8: Izgradnja kućišta

Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta
Izgradnja kućišta

Ovo je potpuno neobavezno. Mislio sam da će projekt izgledati uredno i kompletno sa slučajem oko njega. Bez odgovarajućih alata za ovaj posao, to bi za mene bio veliki zadatak. Kućište je izrađeno od akrila.

Komadi su pripremljeni za lijepljenje zaglađivanjem rubova brusnim papirom. Koristio sam Fevi Kwik (super ljepilo) da spojim sve dijelove. Super ljepilo nakon stvrdnjavanja ostavlja bijele tragove. Dakle, nanosite ga samo između spojeva. Morate biti brzi i precizni pri radu sa super ljepilom jer se brzo lijepi. Akrilni cement najprikladniji je za ovaj posao.

Napravio je mali otvor za pristup USB priključku pomoću datoteke. Trebao bi biti dovoljno velik za umetanje USB kabela.

Napravljena je mreža 3x3 na prednjem poklopcu za tipke. Ovo će otežati pristup dugmadima. Da bih riješio ovaj problem, izrezao sam kvadratne komade za svaki ključ tako da su njihovi gumbi sada produženi do površine.

Nakon toliko brušenja, rezanja, popravljanja i podešavanja, konačno je to učinjeno!

Korak 9: Zabavite se

Zabavi se!
Zabavi se!

Konačno, sav naporan posao je obavljen. Uključite mini semafor i budite u toku s igrom.

Nakon uključivanja, prvo se povezuje s pristupnom točkom. Pokreće SD karticu. Pokazat će grešku ako SD kartica nije inicijalizirana.

Prikazat će se popis svih podudaranja zajedno s brojem utakmice.

Odaberite broj podudaranja pomoću tastature.

Rezultati će biti prikazani. Možete prilagoditi šta sve želite da vidite na ekranu. Ne bih se previše upuštao u objašnjavanje koda. Ovdje možete pronaći detaljno objašnjenje o tome kako funkcionira raščlanjivanje.

Da biste se vratili na meni, držite dugme BACK (taster 8) dok se ne prikaže stranica "Dohvaćanje rezultata …".

Budući planovi

  • Dizajnirajte prilagođenu PCB sa ESP8266 12-E modulom.
  • Dodajte punjivu bateriju.
  • Poboljšajte kôd novim značajkama.

Nadam se da ste uživali u izradi. Napravite sami i zabavite se! Uvijek postoji prostor za poboljšanje i mnogo toga za naučiti. Dođite do vlastitih ideja. Slobodno komentirajte sve prijedloge vezane za konstrukciju. Hvala vam što ste ostali do kraja.

Preporučuje se: