Përmbajtje:

Tabela e Rezultateve të Kriketit duke përdorur NodeMCU: 9 hapa (me fotografi)
Tabela e Rezultateve të Kriketit duke përdorur NodeMCU: 9 hapa (me fotografi)

Video: Tabela e Rezultateve të Kriketit duke përdorur NodeMCU: 9 hapa (me fotografi)

Video: Tabela e Rezultateve të Kriketit duke përdorur NodeMCU: 9 hapa (me fotografi)
Video: Si të përdorim Canva 2020 - Tutorial 2024, Nëntor
Anonim
Image
Image
Plani
Plani

Përshëndetje! Kohët e fundit u prezantova me botën e IoT (Internet of Things) ndërsa hasa në pajisjen më të njohur në këtë fushë, ESP8266. Unë u mahnita nga numri i fundit i mundësive që u hapën nga kjo pajisje e vogël dhe e lirë. Meqenëse jam aktualisht i ri në këtë, vendosa të bëj një projekt duke e përdorur atë dhe të mësoj gjatë rrugës. Kështu, fillova të kërkoj në internet për projekte dhe ide.

Kam hasur në një projekt të mahnitshëm të quajtur Arduino Cricket Score Ticker nga W. A. Smith. Në këtë projekt, Arduino së bashku me Ethernet Shield dhe kartën SD përdoret për të shfaqur rezultatet e kriketit të drejtpërdrejtë nga Cricbuzz. Ky projekt më futi në mendime.

Unë jam nga India dhe gjëja e parë që më vjen në mendje pasi dëgjoj Indinë është Cricket. Këtu, kriket është fe. Ndonjëherë bëhet e vështirë të ulesh para një televizori për të ndjekur të gjithë ndeshjen. Pra, pse të mos bëni diçka që e bën shikimin e rezultatit të lehtë, pa tel dhe të lëvizshëm. Një pajisje e vogël e dedikuar e cila tregon informacion të mjaftueshëm për t’ju mbajtur të përditësuar me një shikim të vetëm.

Nuk jeni tifoz i kriketit? Nuk ka problem! Kodi përmban analizuesin XML i cili mund të përdoret për të marrë të dhëna nga çdo skedar XML. Thjesht përdorni funksionet e sakta për të marrë të dhënat.

Hapi 1: Plani

Plani
Plani

Plani është që të përdorni Bordin e Zhvillimit të NodeMCU (me modulin ESP-12E) për të hyrë në internet dhe për të kërkuar kodin XML nga Cricbuzz i cili përmban të gjithë informacionin në lidhje me ndeshjet në vazhdim/të ardhshme. Ky kod ruhet në kartën SD si një skedar.xml. Skedari pastaj lexohet nga karta SD për të analizuar të dhënat e kërkuara nga kodi XML. Unë do të përdor kodin e W. A. Smith për të analizuar informacionin. Falë përpjekjeve të tij. Shikoni projektin e tij nëse dëshironi të bëni të njëjtën gjë duke përdorur Arduino dhe Ethernet Shield.

Ideja ime është ta bëj atë sa më të vogël të jetë e mundur, të ndërtoj një PCB të personalizuar dhe një kuti për të. Tani për tani, le të bëjmë një prototip. Por së pari, le të njihemi me përbërësit e përdorur në këtë projekt.

Le të fillojmë

Hapi 2: Ekrani OLED

Ekran OLED
Ekran OLED
Ekran OLED
Ekran OLED

Vendosa të shkoj me një ekran OLED për shkak të madhësisë së tij të vogël dhe ato janë në dispozicion për lirë. Unë jam duke përdorur një ekran 0.96 i cili do të jetë i mjaftueshëm për të shfaqur informacionin e ndeshjes. Ju mund të përdorni çdo madhësi të ekranit.

Ekrani që po përdor është një pikturë njëngjyrëshe me drejtuesin SSD1306 dhe ndërfaqe I2C (me 2 tela). Versionet SPI të ekranit janë gjithashtu në dispozicion. Drejtimi i tyre është një detyrë e lehtë. Shkarkoni bibliotekat SSD1306 dhe GFX të nevojshme për të ekzekutuar ekranet. Faleminderit Adafruit për shkrimin e këtyre bibliotekave.

Lidhjet janë shumë të thjeshta.

  • GND në GND
  • VCC në 3.3V
  • SCL në D1
  • SDA në D2.

Hapi 3: Kartë SD dhe Përshtatës

Kartë SD & Përshtatës
Kartë SD & Përshtatës

Karta SD ruan skedarin XML nga Cricbuzz derisa të gjithë informacioni të jetë analizuar. Pasi të shfaqet informacioni i nevojshëm, skedari fshihet. Përdorimi i një karte SD për të ruajtur një skedar XML 10 - 20 kB është pak i tepërt, por e bën analizën shumë më të lehtë dhe të lehtë për t'u kuptuar.

Mund të përdoret çdo kartë memorie. Zgjodha kartën micro SD për faktorin e saj të vogël të formës. Ju mund të lidhni drejtpërdrejt telat në kartën SD, por përdorimi i një bordi shpërthyes e bën punën të lehtë. Duhet të theksohet se të gjitha kartat SD kanë për qëllim të funksionojnë në 3.3V. Kjo do të thotë që jo vetëm që duhet të mundësohet duke përdorur 3.3V, por edhe komunikimi midis mikrokontrolluesit dhe kartës SD duhet të jetë i nivelit logjik 3.3V. Tensioni mbi 3.3V do ta vrasë atë! Ne nuk do të shqetësohemi për këtë sa i përket NodeMCU sepse vetë NodeMCU funksionon me 3.3V që është mirë. Nëse planifikoni të përdorni ndonjë mikrokontrollues tjetër me nivel logjik 5V, sigurohuni që bordi juaj i daljes të ketë një ndërrues të nivelit të integruar (Siç tregohet në figurë). Në thelb konverton ose "zhvendos" 5V nga mikrokontrolluesi në kartën SD miqësore 3.3V. Përdorimi i ndërruesit të nivelit së bashku me 3.3V (siç bëra) nuk ndikon në funksionimin e tij.

Karta SD përdor ndërfaqen SPI për komunikim. Kodi CS ose Chip Select mund të lidhet me ndonjë nga kunjat GPIO. Zgjodha GPIO15 (D8). Thjesht bëni ndryshimet e nevojshme në kod nëse përdorni një kunj tjetër përveç GPIO15

  • SCK në D5
  • MISO deri në D6
  • MOSI deri në D7
  • CS në D8
  • VCC në 3.3V
  • GND në GND

Formatoni kartën tuaj SD

Biblioteka që do të përdorim mbështet sistemet e skedarëve FAT16 ose FAT32. Sigurohuni që të formatoni kartën SD në formatin e duhur.

Hapi 4: Krijimi i tastierës

Bërja e tastierës
Bërja e tastierës
Bërja e tastierës
Bërja e tastierës
Bërja e tastierës
Bërja e tastierës

Dua ta mbaj projektin sa më të vogël të jetë e mundur. Kështu, vendosa të bëj një tabelë të veçantë për tastierën dhe ta montoj mbi tabelën kryesore më vonë. Kjo do të kursejë pak hapësirë.

Një matricë e gatshme e çelësit mund të blihet, por unë kisha butona shtyj përreth. Gjithashtu, doja ta bëja sa më të vogël. Një rregullim tipik i rreshtave dhe kolonave lidhëse do të kishte nevojë për gjithsej 6 kunja GPIO për matricën 3 x 3. Kjo është shumë, duke pasur parasysh që ekrani OLED dhe karta SD do të lidhen gjithashtu.

Kur jeni në dyshim, zbulojeni në Google! Kjo është ajo që bëra dhe gjeta një mënyrë të cilës do t’i duhet vetëm 1 kunj për të kontrolluar të gjithë matricën. Kjo është bërë e mundur duke përdorur Matricën e Ndarjes së Tensionit. Rezistencat janë të lidhura midis çdo rreshti dhe kolone. Kur shtypet një çelës, një kombinim i caktuar i rezistorëve lidhet në seri, gjë që krijon një ndarës të tensionit. Referojuni diagramit të qarkut. Tensioni i ndryshëm do të lexohet nga mikrokontrolluesi. Çdo çelës do të prodhojë një tension të ndryshëm dhe kështu lehtë mund të zbulohet se cili çelës është shtypur duke lexuar tensionin dalës të matricës. Meqenëse ne duam të lexojmë nivele të ndryshme të tensionit dhe tani vetëm të larta dhe të ulëta, do të na duhet një kunj analoge. Për fat të mirë ekziston një kunj Analog i etiketuar si A0 në NodeMCU. Problemi u zgjidh!

Nëse dëshironi të blini një matricë, shikoni lidhjet e brendshme të treguara në diagram. Mund të përdoret një matricë e çdo dimensioni. Sigurohuni që të përdorni një rezistencë 2.2kΩ midis rreshtave dhe rezistencë 680Ω midis kolonave.

Lidhja e butonave Push

Kunjat 1 dhe 2 janë të lidhur brenda. E njëjta gjë me kunjat 3 dhe 4. Kur shtypet butoni, të gjitha kunjat lidhen së bashku. Referojuni figurës për të marrë një ide për lidhjen e çelsave në një dërrasë.

Unë kam lidhur një kokë mashkullore me 3 kunja në mënyrë që të lidhet me tabelën kryesore më vonë.

Hapi 5: Vendosja e gjithçkaje së bashku

Vendosja e gjithçkaje së bashku
Vendosja e gjithçkaje së bashku
Vendosja e gjithçkaje së bashku
Vendosja e gjithçkaje së bashku
Vendosja e gjithçkaje së bashku
Vendosja e gjithçkaje së bashku

Mund të planifikoni vendosjen e përbërësve kudo që dëshironi. Asnjë kufizim për të. Unë do t'ju tregoj se si e bëra për ta bërë atë kompakt pasi doja diçka që do të përshtatet në pëllëmbë. Mund të bëhet pak e çrregullt, kështu që provoni rrugën time nëse jeni të kënaqur me bashkimin. Vendosa të populloj të dy anët e bordit siç do të ishte një PCB me dy shtresa. Bordi i ndarjes së kartës NodeMCU dhe SD në njërën anë dhe OLED dhe tastiera në anën tjetër.

Shpërthimi i kartës SD thjesht përshtatet midis dy titujve femra që janë për NodeMCU. I shkriva titujt meshkuj me kënd me të cilët erdhi bordi i shpërthimit, e rrotullova dhe përsëri i bashkova në mënyrë që kunjat të shkojnë pingul poshtë, siç tregohet në figurë. Qasja në folenë e kartës SD bëhet më e lehtë.

Përkulja kunjat e një kokë femre me 4 kunja në një kënd të drejtë dhe e bashkova në anën e bakrit të tabelës së shpinës siç tregohet në foto.

Mbuloni lidhëset e saldimit nën tastierë për të parandaluar qarqet e shkurtra. Shtoni një copë të hollë shkumë të fortë (rreth 5 mm të trashë) midis tastierës dhe pllakës kryesore për mbrojtje dhe ngurtësi shtesë. Më në fund, lidhni tastierën që kemi bërë më herët. Të kesh një hekur bashkues me majë të theksuar me siguri do ta bëjë punën tënde të lehtë. Ishte një punë e çrregullt duke e bërë atë sa më kompakte të ishte e mundur, por më në fund arriti ta bëjë atë.

Kontrolloni dy herë të gjitha lidhjet tuaja për çdo qark të shkurtër para se të ndizni pajisjen

Hapi 6: Vendosja e tastierës

Vendosja e tastierës
Vendosja e tastierës

Pasi të keni kontrolluar të gjitha lidhjet, jeni gati për të ndezur pajisjen tuaj për herë të parë. Gishtat e kryqëzuar! Nuk ka tym magjik? Urime!

Tani jemi gati të vendosim tastierën. Kujtoni funksionimin e tastierës. Çdo shtypje e tastit do të nxjerrë një tension të ndryshëm i cili ushqehet me pinin analog të NodeMCU. ESP-12E ka një Konvertues analog në dixhital (ADC) me rezolucion 10-bit. 2 i ngritur në fuqinë 10 do të japë 1024. Kjo do të thotë që ne do të marrim një lexim midis 0 dhe 1024 për çdo çelës të shtypur. Le të shohim se çfarë leximesh marrim. Por së pari, ne duhet të shkruajmë një program të vogël për të marrë ato vlera. Hapni Arduino IDE, kopjoni ngjisni kodin e mëposhtëm dhe ngarkojeni në NodeMCU.

int tastieraPin = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (tastiera e tastierës); Serial.println (r); }

  • Hapni monitorin serik. Vendosni normën e baudit në 115200.
  • Tani shtypni çdo buton. Ju duhet të merrni një lexim të vazhdueshëm në monitorin Serial. Luhatjet e vogla janë në rregull. Ata do të kujdesen për kodin kryesor. Bëni të njëjtën gjë për çdo çelës.
  • Çdo çelës duhet të ketë një lexim të ndryshëm.
  • Shënoni të gjitha vlerat. Do të na duhen më vonë.

Hapi 7: Le të Kodojmë

Le të Kodojmë
Le të Kodojmë
Le të Kodojmë
Le të Kodojmë
Le të Kodojmë
Le të Kodojmë

Shkarkoni skedarin Scoreboard.ino të dhënë më poshtë në kompjuterin tuaj dhe hapeni atë duke përdorur Arduino IDE.

Para se të ngarkoni

1) Vendosni kohën e rifreskimit për tabelën e rezultateve. Për shembull, 15L për 15 sekonda.

2) Shkruani SSID dhe fjalëkalimin e ruterit për të dëshiruar të lidheni.

3) Bëni ndryshimet e nevojshme nëse zgjidhni të lidhni kunjin CS të kartës SD me një kunj tjetër përveç GPIO15.

4) Mos harroni vlerat që kemi shënuar për të gjithë çelësat? Duhet të caktojmë një numër kyç për secilën vlerë. Ju kisha treguar edhe për luhatjet në lexim. Kjo është për shkak të faktit se kontaktet e kalimit nuk janë perfekte. Në afat të gjatë, kjo vlerë mund të devijojë nga vlera aktuale për shkak të plakjes së kontakteve e cila shton rezistencë shtesë në qark duke ndryshuar kështu tensionin. Ne mund të kujdesemi për këtë problem në kod.

Ne do të shtojmë një kufi të sipërm dhe një kufi të poshtëm të vlerës me një diferencë prej 5. Për shembull, kam marrë një lexim prej 617 për çelësin 1.

  • Zbrit 5 prej tij. 617 - 5 = 612. Ky është kufiri i poshtëm.
  • Tani shtoni 5 në të. 617 + 5 = 622. Ky është kufiri i sipërm.
  • Shkoni deri në fund të kodit. Plotësoni hapësirën e dhënë për dy vlerat në kod siç tregohet në figurë.
  • Bëni këtë për çdo 9 vlera.

nëse (r> 612 && r <622) {çelësiNumri = 1; }

Çfarë do të thotë kjo?

NFSE leximi (r) është më i madh se 612 DHE më pak se 622, atëherë shtypet çelësi 1. Çdo vlerë midis 612 dhe 622 do të trajtohet si çelësi 1. Kjo zgjidh problemin e luhatjes së leximit.

Hapi 8: Ndërtimi i çështjes

Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit
Ndërtimi i Rastit

Kjo është plotësisht opsionale. Mendova se projekti do të dukej i rregullt dhe i plotë me një kasetë rreth tij. Pa mjetet e duhura për këtë punë, do të ishte një detyrë e madhe për mua. Rasti është ndërtuar duke përdorur akrilik.

Përgatitni copat për ngjitje duke zbutur skajet duke përdorur letër zmerile. Kam përdorur Fevi Kwik (Super Ngjitës) për t'i bashkuar të gjitha pjesët së bashku. Super zam lë një mbetje të bardhë pasi të jetë shëruar. Pra, aplikojeni atë vetëm midis nyjeve. Duhet të jeni të shpejtë dhe të saktë kur punoni me super ngjitës pasi ngurtësohet shpejt. Çimentoja akrilike është më e përshtatshme për këtë punë.

Bëri një hapje të vogël për të hyrë në portën USB duke përdorur një skedar. Duhet të jetë mjaft i madh për të futur kordonin USB.

Krijoi një rrjet 3x3 në kapakun e përparmë për butonat e shtypjes. Kjo do të bëjë që butonat e shtytjes të jenë të vështira për t'u arritur. Për të zgjidhur këtë problem, unë pres copa katrore për secilin çelës, kështu që butonat e tyre tani shtrihen deri në sipërfaqe.

Pas kaq shumë lëmimit, prerjes, rregullimit dhe rregullimit, më në fund u bë!

Hapi 9: Argëtohuni

Argëtohu!
Argëtohu!

Më në fund, e gjithë puna e madhe është bërë. Ndizni mini tabelën tuaj të rezultateve dhe qëndroni të azhurnuar me lojën.

Pas ndezjes, së pari lidhet me pikën e hyrjes. Fillon kartën SD. Do të tregojë një gabim nëse karta SD nuk është e inicializuar.

Një listë e të gjitha ndeshjeve do të shfaqet së bashku me numrin e ndeshjes.

Zgjidhni numrin e ndeshjes duke përdorur tastierën.

Rezultatet do të shfaqen. Mund të personalizoni të gjitha gjërat që dëshironi të shihni në ekran. Nuk do të hyja shumë në shpjegimin e kodit. Këtu mund të gjeni një shpjegim të hollësishëm se si funksionon analizimi.

Për t'u kthyer në meny, mbani butonin BACK (Çelësi 8) derisa të shfaqet faqja "Marrja e Rezultateve …".

Planet e së ardhmes

  • Hartoni një PCB të personalizuar me modulin ESP8266 12-E.
  • Shtoni një bateri të ringarkueshme.
  • Përmirësoni kodin me veçori të reja.

Shpresoj se ju ka pëlqyer ndërtimi. Bëjeni vetë dhe argëtohuni! Gjithmonë ka hapësirë për përmirësim dhe shumë për të mësuar. Ejani me idetë tuaja. Mos ngurroni të komentoni çdo sugjerim në lidhje me ndërtimin. Faleminderit që qëndroni deri në fund.

Recommended: