Sisällysluettelo:

Kriketin tulostaulu NodeMCU: n avulla: 9 vaihetta (kuvilla)
Kriketin tulostaulu NodeMCU: n avulla: 9 vaihetta (kuvilla)

Video: Kriketin tulostaulu NodeMCU: n avulla: 9 vaihetta (kuvilla)

Video: Kriketin tulostaulu NodeMCU: n avulla: 9 vaihetta (kuvilla)
Video: Как начать бизнес в Интернете 2024, Marraskuu
Anonim
Image
Image
Suunnitelma
Suunnitelma

Hei! Minut esiteltiin äskettäin esineiden internetin (esineiden internet) maailmaan, kun törmäsin tämän alan suosituimpaan laitteeseen ESP8266. Olin hämmästynyt mahdollisuuksien lopullisesta määrästä, jotka tämä pieni ja halpa laite avasi. Koska olen tällä hetkellä uusi tässä, päätin tehdä projektin sitä käyttäen ja oppia matkan varrella. Aloin siis etsiä projekteja ja ideoita Internetistä.

Tapasin hämmästyttävän projektin nimeltä W. A. Smith, Arduino Cricket Score Ticker. Tässä projektissa Arduinoa sekä Ethernet -suojaa ja SD -korttia käytetään Cricbuzzin live -krikettitulosten näyttämiseen. Tämä projekti sai minut ajattelemaan.

Olen intialainen ja ensimmäinen asia, joka tulee mieleen Intian kuultua, on kriketti. Tässä kriketti on uskonto. Joskus on vaikeaa istua television edessä seuratakseen koko ottelua. Joten miksi et tekisi jotain, joka tekee katsomisen tuloksista helppoa, langatonta ja kannettavaa. Pieni laite, joka näyttää tarpeeksi tietoja, jotta voit pysyä ajan tasalla vain yhdellä vilkaisulla.

Etkö ole kriketin fani? Ei ongelmaa! Koodi sisältää XML -jäsennyksen, jota voidaan käyttää tietojen saamiseen mistä tahansa XML -tiedostosta. Käytä vain oikeita toimintoja saadaksesi tietoja.

Vaihe 1: Suunnitelma

Suunnitelma
Suunnitelma

Suunnitelmana on käyttää Internetiä NodeMCU Development Boardin (ESP-12E-moduuli) avulla ja pyytää Cricbuzzilta XML-koodia, joka sisältää kaikki tiedot käynnissä olevista/tulevista otteluista. Tämä koodi tallennetaan SD -kortille.xml -tiedostona. Tiedosto luetaan sitten SD -kortilta tarvittavien tietojen jäsentämiseksi XML -koodista. Käytän W. A. Smithin koodia tietojen jäsentämiseen. Hänen ponnistelujensa ansiosta. Tutustu hänen projektiinsa, jos haluat tehdä saman käyttämällä Arduinoa ja Ethernet Shieldiä.

Ajatukseni on tehdä siitä mahdollisimman pieni, rakentaa sille mukautettu piirilevy ja kotelo. Tehdään toistaiseksi prototyyppi. Mutta ensin tutustutaan tässä projektissa käytettyihin komponentteihin.

Aloitetaan

Vaihe 2: OLED -näyttö

OLED -näyttö
OLED -näyttö
OLED -näyttö
OLED -näyttö

Päätin käyttää OLED -näyttöä sen pienen koon vuoksi ja niitä on saatavana halvalla. Käytän 0,96 näyttöä, joka riittää ottelutietojen näyttämiseen. Voit käyttää mitä tahansa näytön kokoa.

Näyttö, jota käytän, on yksivärinen, ja siinä on SSD1306-ohjain ja I2C (2-johtiminen) -liitäntä. Näytön SPI -versioita on myös saatavana. Niiden ajaminen on helppo tehtävä. Lataa näyttöjen suorittamiseen tarvittavat SSD1306- ja GFX -kirjastot. Kiitos Adafruitille näiden kirjastojen kirjoittamisesta.

Liitännät ovat hyvin yksinkertaisia.

  • GND - GND
  • VCC - 3.3V
  • SCL - D1
  • SDA - D2.

Vaihe 3: SD -kortti ja sovitin

SD -kortti ja sovitin
SD -kortti ja sovitin

SD -kortti tallentaa XML -tiedoston Cricbuzzilta, kunnes kaikki tiedot on jäsennetty. Kun tarvittavat tiedot on näytetty, tiedosto poistetaan. SD -kortin käyttäminen 10 - 20 kt: n XML -tiedoston tallentamiseen on hieman liioittelua, mutta se tekee jäsentämisestä paljon helpompaa ja helpompaa ymmärtää.

Mitä tahansa muistikorttia voidaan käyttää. Valitsin micro SD -kortin sen pienen muodon vuoksi. Voit juottaa johdot suoraan SD -kortille, mutta katkaisukortin käyttö helpottaa työtä. On huomattava, että kaikki SD -kortit on tarkoitettu toimimaan 3,3 V: n jännitteellä. Tämä tarkoittaa, että sen lisäksi, että se saa virtaa 3,3 V: n avulla, myös mikrokontrollerin ja SD -kortin välisen tiedonsiirron on oltava 3,3 V: n logiikkatasoa. Jännite yli 3,3 V tappaa sen! Emme välitä siitä NodeMCU: n osalta, koska NodeMCU itse toimii 3,3 V: lla, mikä on hyvä. Jos aiot käyttää muita 5 V: n logiikkatason mikrokontrollereita, varmista, että katkaisukortissasi on sisäänrakennettu tasonvaihtaja (kuten kuvassa). Se pohjimmiltaan muuntaa tai "siirtää" 5 V: n mikrokontrollerista SD -korttiystävälliseen 3.3 V: iin. Tasonsiirtimen käyttäminen yhdessä 3.3 V: n kanssa (kuten minä) ei vaikuta sen toimintaan.

SD -kortti käyttää SPI -liitäntää viestintään. CS- tai Chip Select -tappi voidaan liittää mihin tahansa GPIO -nastaan. Valitsin GPIO15 (D8). Tee vain tarvittavat muutokset koodiin, jos käytit muuta PIN -koodia kuin GPIO15

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

Alusta SD -kortti

Käyttämämme kirjasto tukee FAT16- tai FAT32 -tiedostojärjestelmiä. Muista alustaa SD -kortti oikeassa muodossa.

Vaihe 4: Näppäimistön luominen

Näppäimistön tekeminen
Näppäimistön tekeminen
Näppäimistön tekeminen
Näppäimistön tekeminen
Näppäimistön tekeminen
Näppäimistön tekeminen

Haluan pitää projektin mahdollisimman pienenä. Joten päätin tehdä erillisen levyn näppäimistölle ja asentaa sen emolevyn yläpuolelle myöhemmin. Tämä säästää tilaa.

Valmis avainmatriisi voidaan ostaa, mutta minulla oli painikkeet paikallaan. Lisäksi halusin tehdä siitä mahdollisimman pienen. Tyypillinen rivien ja sarakkeiden yhdistämisjärjestely vaatisi yhteensä 6 GPIO -nastaa 3 x 3 matriisiin. Tämä on melko paljon, kun otetaan huomioon, että OLED -näyttö ja SD -kortti liitetään myös.

Jos epäilet, googlaa! Näin tein ja löysin tavan, joka tarvitsee vain yhden nastan koko matriisin hallitsemiseksi. Tämä on mahdollista käyttämällä jännitteenjakajamatriisia. Vastukset on kytketty jokaisen rivin ja sarakkeen väliin. Kun näppäintä painetaan, tietty vastuksen yhdistelmä kytketään sarjaan, mikä luo jännitteenjakajan. Katso piirikaavio. Mikro -ohjain lukee vaihtelevan jännitteen. Kukin näppäin tuottaa eri jännitteen ja näin voidaan helposti selvittää, mitä näppäintä painettiin lukemalla matriisin lähtöjännite. Koska haluamme lukea erilaisia jännitetasoja ja nyt vain korkeita ja matalia, tarvitsemme analogisen nastan. Onneksi NodeMCU: ssa on yksi analoginen nasta, joka on merkitty A0: ksi. Ongelma ratkaistu!

Jos haluat ostaa matriisin, tarkista kaavion sisäiset liitännät. Mitä tahansa matriisia voidaan käyttää. Varmista, että käytät 2,2 kΩ: n vastusta rivien välissä ja 680Ω: n vastusta sarakkeiden välillä.

Painikkeiden yhdistäminen

Nastat 1 ja 2 on kytketty sisäisesti. Sama nastat 3 ja 4. Kun painiketta painetaan, kaikki nastat on kytketty yhteen. Katso kuva saadaksesi käsityksen perfboardin kytkimien liittämisestä.

Olen liittänyt 3-nastaisen urosliittimen, jotta se voidaan kytkeä emolevyyn myöhemmin.

Vaihe 5: Yhdistä kaikki

Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen

Voit suunnitella komponenttien sijoittamisen haluamaasi paikkaan. Ei rajoituksia sille. Näytän, kuinka tein sen kompaktiksi, koska halusin jotain, joka sopii kämmenelle. Se voi mennä hieman sotkuiseksi, joten kokeile tapaani, jos olet tyytyväinen juottamiseen. Päätin täyttää levyn molemmat puolet kaksikerroksisena piirilevynä. NodeMCU- ja SD -korttien katkaisukortti toisella puolella ja OLED ja näppäimistö toisella puolella.

SD -kortin katkeaminen sattuu vain sopimaan kahden naarasotsikon väliin, jotka ovat NodeMCU: ta varten. Irrotin katkaisulaudan mukana tulleet kulmaiset urospäät, käänsin sitä ja juotin uudelleen niin, että tapit menevät kohtisuoraan alaspäin, kuten kuvassa. SD -korttipaikan käyttö on helpompaa.

Taivutin 4-napaisen naarasliittimen tapit suorassa kulmassa ja juotin sen perfboardin kuparipuolelle kuvan mukaisesti.

Peitä juotosliitännät näppäimistön alla oikosulkujen estämiseksi. Lisää ohut pala kovaa vaahtoa (noin 5 mm paksu) näppäimistön ja emolevyn väliin lisäsuojan ja jäykkyyden aikaansaamiseksi. Lopuksi juotamme näppäimistön, jonka teimme aiemmin. Jos sinulla on terävä kärki ja juotin, se helpottaa työtäsi. Se oli sotkuinen työ tehdä siitä mahdollisimman kompakti, mutta lopulta onnistui tekemään sen.

Tarkista kaikki liitännät oikosulkujen varalta ennen laitteen käynnistämistä

Vaihe 6: Näppäimistön asennus

Näppäimistön asentaminen
Näppäimistön asentaminen

Kun olet tarkistanut kaikki liitännät, olet valmis käynnistämään laitteen ensimmäistä kertaa. Sormet ristissä! Ei maagista savua? Onnittelut!

Nyt olemme valmiit asentamaan näppäimistön. Muista näppäimistön toiminta. Jokainen näppäimen painallus antaa eri jännitteen, joka syötetään NodeMCU: n analogiseen nastaan. ESP-12E: ssä on analoginen digitaalimuunnin (ADC), jonka resoluutio on 10 bittiä. 2 korotettuna tehoon 10 antaa 1024. Tämä tarkoittaa, että saamme lukeman 0-1024 jokaista painettua näppäintä kohden. Katsotaan mitä lukemia saamme. Mutta ensin meidän on kirjoitettava pieni ohjelma näiden arvojen saamiseksi. Avaa Arduino IDE, kopioi ja liitä seuraava koodi ja lataa se NodeMCU: hon.

int näppäimistöPin = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analoginenLuku (näppäimistöPin); Sarja.println (r); }

  • Avaa sarjamonitori. Aseta siirtonopeudeksi 115200.
  • Paina nyt mitä tahansa painiketta. Sinun pitäisi saada jatkuva lukema sarjamonitorista. Pienet vaihtelut ovat kunnossa. Niistä huolehditaan pääkoodissa. Tee sama jokaiselle avaimelle.
  • Jokaisella näppäimellä tulee olla eri lukema.
  • Merkitse muistiin kaikki arvot. Tarvitsemme niitä myöhemmin.

Vaihe 7: Koodataan

Koodataan
Koodataan
Koodataan
Koodataan
Koodataan
Koodataan

Lataa alla oleva Scoreboard.ino -tiedosto tietokoneellesi ja avaa se Arduino IDE: n avulla.

Ennen lataamista

1) Aseta tulostaulun päivitysaika. Esimerkiksi 15 litraa 15 sekunnin ajan.

2) Anna yhteyden muodostavan reitittimen SSID ja salasana.

3) Tee tarvittavat muutokset, jos päätät liittää SD -kortin CS -nastan muuhun kuin GPIO15 -nastaan.

4) Muista arvot, jotka merkitsimme muistiin kaikille näppäimille? Jokaiselle arvolle on annettava avainnumero. Kerroin myös lukemisen vaihteluista. Tämä johtuu siitä, että kytkimen kontaktit eivät ole täydellisiä. Pitkällä aikavälillä tämä arvo voi poiketa nykyisestä arvosta koskettimien ikääntymisen vuoksi, mikä lisää ylimääräistä vastusta piiriin ja muuttaa siten jännitettä. Voimme hoitaa tämän ongelman koodissa.

Lisäämme arvon ylä- ja alarajan marginaalilla 5. Sain esimerkiksi avaimen 1 lukeman 617.

  • Vähennä siitä 5. 617-5 = 612. Tämä on alaraja.
  • Lisää nyt siihen 5. 617 + 5 = 622. Tämä on yläraja.
  • Vieritä koodin loppuun. Täytä koodin kahdelle arvolle varattu tila kuvan osoittamalla tavalla.
  • Tee tämä jokaisen 9 arvon osalta.

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

Mitä tämä tarkoittaa?

JOS lukema (r) on suurempi kuin 612 JA pienempi kuin 622, näppäintä 1 painetaan. Kaikkia arvoja välillä 612 ja 622 käsitellään avaimena 1. Tämä ratkaisee vaihtelevan lukemisen ongelman.

Vaihe 8: Kotelon rakentaminen

Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen
Kotelon rakentaminen

Tämä on täysin valinnaista. Ajattelin, että projekti näyttää siistiltä ja täydelliseltä kotelon ympärillä. Ilman oikeita työkaluja tähän työhön se oli minulle valtava tehtävä. Kotelo on rakennettu akryylistä.

Valmisteltiin palat liimaamista varten tasoittamalla reunat hiekkapaperilla. Käytin Fevi Kwikia (Super Glue) kaikkien osien yhdistämiseen. Superliima jättää valkoisen jäännöksen kovettumisen jälkeen. Käytä siis vain nivelten välissä. Sinun on oltava nopea ja tarkka työskennellessäsi superliiman kanssa, koska se kovettuu nopeasti. Akryylisementti sopii parhaiten tähän työhön.

Tehtiin pieni aukko päästäkseen USB -porttiin tiedoston avulla. Sen pitäisi olla tarpeeksi suuri USB -johdon asettamiseksi.

Luo 3x3 ruudukko etukanteen painikkeita varten. Tämä vaikeuttaa painikkeiden käyttöä. Tämän ongelman ratkaisemiseksi leikkasin neliöpalat kullekin näppäimelle, jotta niiden painikkeet ulottuvat nyt pintaan.

Niin paljon hiomisen, leikkaamisen, kiinnittämisen ja säätämisen jälkeen se vihdoin tehtiin!

Vaihe 9: Pidä hauskaa

Pidä hauskaa!
Pidä hauskaa!

Lopulta kaikki kova työ on tehty. Käynnistä minitulostaulu ja pysy ajan tasalla pelistä.

Virran kytkemisen jälkeen se muodostaa ensin yhteyden tukiasemaan. Alustaa SD -kortin. Se näyttää virheen, jos SD -korttia ei alusteta.

Luettelo kaikista otteluista näytetään yhdessä ottelun numeron kanssa.

Valitse ottelunumero näppäimistöllä.

Pisteet näytetään. Voit muokata mitä kaikkea haluat nähdä näytöllä. En menisi liian syvälle koodin selittämiseen. Löydät yksityiskohtaisen selityksen siitä, miten jäsennys toimii.

Palataksesi valikkoon, pidä TAKAISIN -näppäintä (näppäin 8) painettuna, kunnes "Haetaan tuloksia …" -sivu tulee näkyviin.

Tulevaisuuden suunnitelmat

  • Suunnittele mukautettu piirilevy ESP8266 12-E -moduulilla.
  • Lisää ladattava akku.
  • Paranna koodia uusilla ominaisuuksilla.

Toivottavasti nautit rakentamisesta. Tee se itse ja pidä hauskaa! Aina on parantamisen varaa ja paljon opittavaa. Keksi omia ideoitasi. Voit vapaasti kommentoida rakentamiseen liittyviä ehdotuksia. Kiitos kun jaksoit loppuun asti.

Suositeltava: