Sadržaj:
- Korak 1: Plan
- Korak 2: OLED ekran
- Korak 3: SD kartica i adapter
- Korak 4: Izrada tastature
- Korak 5: Sve spojite
- Korak 6: Postavljanje tastature
- Korak 7: Kodirajmo
- Korak 8: Izgradnja kućišta
- Korak 9: Zabavite se
Video: Tablica kriketa pomoću NodeMCU: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
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 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
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 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
Ž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
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
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
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
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
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:
Analiza podataka o temp./Vlažnosti pomoću Ubidota i Google tablica: 6 koraka
Analiza podataka o temperaturi/vlažnosti pomoću Ubidota i Google tablica: U ovom ćemo vodiču mjeriti različite podatke o temperaturi i vlažnosti zraka pomoću senzora temperature i vlažnosti. Naučit ćete i kako poslati te podatke Ubidotsu. Tako da ga možete analizirati s bilo kojeg mjesta za različite aplikacije. Takođe slanjem
Podaci o vremenu pomoću Google tablica i Google skripte: 7 koraka
Podaci o vremenu pomoću Google tablica i Google skripte: U ovom Blogtutu poslat ćemo očitanja senzora SHT25 na google tablice koristeći Adafruit huzzah ESP8266 koji pomaže u slanju podataka na internet. Slanje podataka u google ćeliju lista je vrlo korisno i osnovni način na koji se podaci spremaju u
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO - Napravite četvorokopter pomoću mikrokontrolera: 8 koraka (sa slikama)
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO | Napravite četvorokopter pomoću mikrokontrolera: UvodPosjetite moj Youtube kanalA Drone je vrlo skup gadget (proizvod) za kupovinu. U ovom postu ću raspravljati o tome kako to učiniti jeftino ?? I kako možete sami napraviti ovakvu po povoljnoj cijeni … Pa u Indiji svi materijali (motori, ESC
Tablica stonog tenisa: 16 koraka (sa slikama)
Tablica tablice za stolni tenis: Prelijeni ste za praćenje rezultata stonog tenisa / ping ponga? Ili vam je jednostavno dosadilo da to uvijek zaboravljate? Ako je tako, možda ćete biti zainteresirani za izradu ove digitalne tablice za stolni tenis. Evo istaknutih točaka: Pjesme za bodove , igre, server i p
Elektronička igra kriketa: 24 koraka (sa slikama)
Elektronička igra kriketa: Izgradite vlastitu elektroničku, ručnu igru kriketa. Utakmice na kriket testu su poznate po tome što se igraju više od 5 dana, a ponekad i dalje nema pobjednika - 5 dana !!! Mislim da ste morali biti odgajani da gledate utakmice kriketa na TV -u i igrate ga