Sadržaj:
- Korak 1: Plan
- Korak 2: OLED zaslon
- Korak 3: SD kartica i adapter
- Korak 4: Izrada tipkovnice
- Korak 5: Sve spojite
- Korak 6: Postavljanje tipkovnice
- Korak 7: Kodirajmo
- Korak 8: Izgradnja kućišta
- Korak 9: Zabavite se
Video: Tablica za kriket pomoću NodeMCU: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Zdravo! Nedavno sam se upoznao sa svijetom IoT (Internet of Things) jer sam naišao na najpopularniji uređaj u ovom području, ESP8266. Bio sam zadivljen konačnim 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 u potrazi za projektima i idejama.
Naišao sam na nevjerojatan projekt koji je W. A. Smith nazvao Arduino Cricket Score Ticker. U ovom projektu, Arduino se zajedno s Ethernet Shieldom i SD karticom koristi za prikaz ocjena kriketa uživo iz Cricbuzza. Ovaj me projekt potaknuo 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 cijelu utakmicu. Dakle, 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 s jednim pogledom.
Niste ljubitelj kriketa? Nema problema! Kôd sadrži XML raščlanjivač koji se može koristiti za dobivanje podataka iz bilo koje XML datoteke. Dovoljno je koristiti 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/nadolazećim utakmicama. Ovaj kôd sprema se na SD karticu kao.xml datoteka. Datoteka se zatim čita sa SD kartice radi raščlanjivanja potrebnih podataka iz XML koda. Za raščlanjivanje podataka koristit ću kod W. A. Smitha. 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, najprije se upoznajmo sa komponentama koje se koriste u ovom projektu.
Započnimo
Korak 2: OLED zaslon
Odlučio sam se za OLED zaslon zbog male veličine i dostupni su jeftino. Koristim zaslon od 0,96 koji će biti dovoljan za prikaz podataka o podudaranju. Možete koristiti bilo koju veličinu zaslona.
Zaslon koji koristim je jednobojan s pogonom SSD1306 i sučeljem I2C (2 žice). Dostupne su i SPI verzije zaslona. Njihovo vođenje lak je zadatak. Preuzmite biblioteke SSD1306 i GFX potrebne za pokretanje zaslona. Hvala Adafruitu za pisanje ovih knjižnica.
Veze su vrlo jednostavne.
- GND u GND
- VCC do 3.3V
- SCL do D1
- SDA na 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 10 - 20 kB XML datoteke pomalo je pretjerano, ali čini raščlanjivanje mnogo lakšim i razumljivijim.
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 razbijačke 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 mora napajati pomoću 3.3V, već i komunikacija između mikrokontrolera i SD kartice mora biti na 3.3V logičkoj razini. 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 5V logičkom razinom, pobrinite se da vaša ploča za probijanje ima ugrađen pomak razine (kao što je prikazano na slici). U osnovi pretvara ili "prebacuje" 5V s mikrokontrolera na 3.3V prilagođeno SD kartici. Korištenje mjenjača razine zajedno sa 3,3 V (kao što sam 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
Knjižnica koju ćemo koristiti podržava datotečne sustave FAT16 ili FAT32. Formatirajte SD karticu u ispravnom formatu.
Korak 4: Izrada tipkovnice
Želim da projekt bude što manji. Stoga sam odlučio napraviti zasebnu ploču za tipkovnicu i kasnije je montirati iznad glavne ploče. Time ćete uštedjeti malo prostora.
Gotova matrica ključeva se može kupiti, ali ja sam ležao okolo tipkama. Također, želio sam ga učiniti što je moguće manjim. Tipičan raspored povezivanja redaka i stupaca trebao bi ukupno 6 GPIO pinova za 3 x 3 matricu. To je prilično s obzirom na to da će OLED zaslon i SD kartica također biti povezani.
Kad ste u nedoumici, potražite 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 retka i stupca. Kad se pritisne tipka, određena kombinacija otpornika se serijski povezuje što stvara razdjelnik napona. Pogledajte dijagram kruga. Mikrokontroler će očitati promjenjivi napon. Svaka će tipka proizvesti drugačiji napon pa se lako može saznati koja je tipka pritisnuta č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 unutarnje veze prikazane na dijagramu. Može se koristiti matrica bilo koje dimenzije. Upotrijebite otpornik od 2,2 kΩ između redova i otpornik od 680 Ω između stupova.
Povezivanje tipki
Igle 1 i 2 su interno povezane. Isto je sa pinovima 3 i 4. Kad se pritisne tipka, sve pinove se spoji zajedno. Pogledajte sliku da biste dobili ideju o povezivanju prekidača na ploči.
Spojio 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 želio nešto što će stati na dlan. Može postati malo neuredno pa pokušajte na moj način ako vam odgovara lemljenje. Odlučio sam napuniti obje strane ploče kao što bi to bio dvoslojni PCB. NodeMCU i SD kartica za probijanje s jedne strane, OLED i tipkovnica s druge strane.
Slučajno se razbijanje SD kartice uklapa između dva ženska zaglavlja koja su za NodeMCU. Odlemio sam zakrivljena muška zaglavlja 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 tipkovnice kako biste spriječili kratke spojeve. Dodajte tanki komad tvrde pjene (debljine oko 5 mm) između tipkovnice i matične ploče za dodatnu zaštitu i krutost. Konačno, lemite tipkovnicu 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 dvaput provjerite ima li na vašim priključcima kratkih spojeva
Korak 6: Postavljanje tipkovnice
Nakon što provjerite sve veze, spremni ste za uključivanje uređaja po prvi put. Prekriženi prsti! Nema čarobnog dima? Čestitamo!
Sada smo spremni za postavljanje tipkovnice. Prisjetite se rada tipkovnice. Svaki pritisak tipke izlazit će različit napon koji se dovodi na analogni pin NodeMCU -a. ESP-12E ima analogno-digitalni pretvarač (ADC) 10-bitne razlučivosti. 2 podignuto na stepen 10 dat će 1024. To znači da ćemo očitavati između 0 i 1024 za svaku pritisnutu tipku. Pogledajmo kakva čitanja imamo. Ali prvo moramo napisati mali program da bismo dobili te vrijednosti. Otvorite Arduino IDE, kopirajte zalijepite sljedeći kod i prenesite ga na NodeMCU.
int tipkovnicaPin = A0;
void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serijski.println (r); }
- Otvorite serijski monitor. Postavite brzinu prijenosa na 115200.
- Sada pritisnite bilo koji gumb. Trebali biste stalno čitati na serijskom monitoru. Male fluktuacije su u redu. Oni će biti zbrinuti 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 dolje navedenu datoteku Scoreboard.ino na svoje računalo 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đer sam vam govorio o fluktuacijama u čitanju. To je zbog toga što kontakti prekidača nisu savršeni. Dugoročno, ta vrijednost može odstupati od trenutne vrijednosti zbog starenja kontakata što dodaje dodatni otpor u krugu mijenjajući tako napon. Ovaj problem možemo riješiti u kodu.
Dodati ćemo gornju granicu i donju granicu vrijednosti s marginom 5. Na primjer, dobio sam očitanje 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. Ispunite 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; }
Što to znači?
AKO je očitanje (r) veće od 612 i manje od 622, tada se pritisne tipka 1. Svaka 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 upotpunjen slučajem. Bez odgovarajućih alata za ovaj posao, to će mi biti veliki zadatak. Kućište je izrađeno od akrila.
Komadi su pripremljeni za lijepljenje izglađ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. Prilikom rada sa super ljepilom morate biti brzi i točni jer se brzo stvrdnjava. 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 gumbe. To će otežati pristup gumbima. Da bih riješio ovaj problem, izrezao sam kvadratne dijelove za svaku tipku tako da su njihovi gumbi sada produženi do površine.
Nakon toliko brušenja, rezanja, popravljanja i podešavanja, napokon 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 pogrešku ako SD kartica nije inicijalizirana.
Prikazat će se popis svih podudaranja zajedno s brojem podudaranja.
Odaberite broj podudaranja pomoću tipkovnice.
Rezultati će biti prikazani. Možete prilagoditi što sve želite vidjeti na zaslonu. 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.
Za povratak na izbornik držite tipku BACK (tipka 8) dok se ne prikaže stranica "Dohvaćanje rezultata …".
Planovi za buducnost
- Dizajnirajte prilagođenu PCB s modulom ESP8266 12-E.
- Dodajte punjivu bateriju.
- Poboljšajte kôd novim značajkama.
Nadam se da ste uživali u izgradnji. Napravite sami i zabavite se! Uvijek postoji prostor za poboljšanje i puno toga za naučiti. Dođite do vlastitih ideja. Slobodno komentirajte sve prijedloge vezane za gradnju. Hvala vam što ste ostali do kraja.
Preporučeni:
Motocikl za kriket: 3 koraka
Kriket motocikl: Ovaj motocikl proizveden je korištenjem ploče za igralište s dodatkom za proširenje kriketa, pa ako nemate ove određene komponente, pokušajte tražiti nešto što se može programirati što može aktivirati 2 robotska motora naizmjenične struje. Osim toga možete ga Macgyver
LED panjevi za kriket: 5 koraka
LED krikovi za kriket: Ovo je projekt koji sam napravio tijekom diplome inženjera. Glavni cilj ovog projekta bio je stvoriti jednostavan sklop za implementaciju LED panjeva za kriket koristeći manje komponenti i po niskoj cijeni
Analiza podataka o temperaturi/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 primjene. Također 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 u google tablice pomoću Adafruit huzzah ESP8266 koji pomaže u slanju podataka na internet. Slanje podataka u google ćeliju lista vrlo je korisno i osnovni način na koji se podaci spremaju u
Vizualizacija podataka bežičnog senzora pomoću Google tablica: 6 koraka
Vizualizacija podataka bežičnog senzora pomoću Google tablica: Prediktivna analiza strojeva vrlo je potrebna kako bi se smanjili zastoji stroja. Redovite provjere povećavaju vrijeme rada stroja i povećavaju njegovu toleranciju grešaka. Bežični senzor vibracija i temperature