Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Maailma on tällä hetkellä koronaviruspandemiassa ja monien muiden maiden tapaan myös Intiassa, joten sain idean luoda IoT -näyttö, joka antaa reaaliaikaisen päivityksen maan koronatilastoista. Käytän sovellusliittymää, joka tarjoaa tietoja Intiasta, mutta voit käyttää mitä tahansa sovellusliittymää pienellä koodimuutoksella.
Vaihe 1: Tarvittavat asiat
Tässä on asioita, jotka sinun on tehtävä IoT -näytön luomiseksi:
- NodeMCU (ESP8266)
- 16x2 LCD -moduuli (I2C)
- Leipälauta (valinnainen)
- Jotkut johdot/ puserot
- USB kaapeli
Vaihe 2: Liitännät
Liitännät ovat melko helppoja. Yhdistämiseen on vain 4 johtoa. Voit sijoittaa esp8266: n leipälevylle ja muodostaa sen jälkeen yhteyden LCD -moduuliin tai käyttää vain suoraa naaras -naarasliitinjohtoa.
Liitännät ovat (ESP-> LCD):
- VIN -> VCC (5 V: lle)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
Liitä nyt esp8266 USB -kaapelilla tietokoneeseen, nyt meidän on vain ladattava koodi.
Vaihe 3: Koodaus
Tämä on nyt tärkein osa. Monilla teistä on mielessä kysymyksiä, miten tämä toimii?
Joten se muodostaa ensin yhteyden wifi -verkkoon ja muodostaa sitten yhteyden sovellusliittymään JSON -tietojen keräämiseksi, sitten se purkaa JSON -tiedot ja tallentaa ne muuttujaan, sitten LCD näyttää arvot ja tämä jatkuu silmukassa.
Käyttämäni sovellusliittymä on https://coronago.xyz/api/data.json, joka saa tietonsa osoitteesta https://www.covid19india.org/, se tarjoaa tietoja vain Intiasta, mutta muille maille on monia sovellusliittymiä, voit käyttää mitä tahansa sovellusliittymää, mutta varmista, että siihen pääsee HTTP: llä.
Ensin sinun on asennettava ESP8266 -kortin tuki Arduino IDE: lle. Seuraa tätä opetusohjelmaa.
Toinen asia on asentaa kaikki tarvittavat kirjastot, voit asentaa ne helposti Arduino Library Managerista.
Avaa sitten koodi ja vaihda wifi -kirjautumistiedot ja lähetä koodi.
koodi on täällä GitHub-arkistossani-https://github.com/Soumojit28/covid19-iot-display.
Vaihe 4: Koodin selitys ja muiden sovellusliittymien käyttö
Koodi on melko yksinkertainen
Tyhjän asennuksen osassa se alustaa LCD -moduulin ja näyttää tuijottavan viestin ja muodostaa yhteyden wifi -verkkoon.
Silmukkaosassa se hakee JSON -tiedot sovellusliittymästä ja purkaa mainoksen tallentamaan sen muuttujaan ja näyttää sitten tiedot sarjamonitorissa ja nestekidenäytössä.
Jos haluat käyttää toista sovellusliittymää, sinun on vaihdettava osoite tällä koodirivillä
http.begin ("https://coronago.xyz/api/data.json"); // API
Toinen asia, jonka sovellusliittymän on toimittava HTTP -yhteyden kanssa, HTTPS -yhteys ei toimi tässä koodissa ja saat -1 -virheen.
Sovellusliittymä palauttaa JSON -tiedot näin
Nyt tämä seuraava koodi vain purkaa JSON -koodin ja tallentaa arvot muuttujaan, tämä riippuu täysin sen palauttamasta API- ja JSON -datasta. Mutta se on helppo vaihtaa, jos haluat lisätietoja, katso tämä opetusohjelma.
StaticJsonBuffer JSONBuffer; // Muistivarasto JsonObject & parsed = JSONBuffer.parseObject (hyötykuorma); // Jäsennysviesti vahvistettu = jäsennetty ["vahvistettu"]; talteen = jäsennetty ["palautettu"]; kuolemat = jäsennetty ["kuolemat"]; current_active = jäsennetty ["aktiivinen"];
Tämän jälkeen koodi näyttää vain muuttujat sarjamonitorissa ja nestekidenäytössä.
Serial.print ("vahvistettu:"); Serial.println (vahvistettu); Serial.print ("talteen:"); Serial.println (palautettu); Serial.print ("currenty_active:"); Sarja.println (nykyinen_aktiivinen); Serial.print ("kuolemat:"); Serial.println (kuolemat); if (httpCode == 200) {// näyttää tiedot muodossa lcd lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vahvistettu:"); lcd.print (vahvistettu); lcd.setCursor (0, 1); lcd.print ("Kuolemat:"); lcd.print (kuolemat); viive (2500); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Aktiivinen:"); lcd.print (current_active); lcd.setCursor (0, 1); lcd.print ("Palautettu:"); lcd.print (palautettu); viive (2500);
}
Vaihe 5: Johtopäätös
Tämä on loistava projekti seurata tilastoja koko ajan ja voitko rakentaa sen kuluttamaan aikaa tässä lukitustilanteessa.
Jos tarvitset apua, voit kysyä minulta kommentteja tai avata ongelman Githubissani
github.com/Soumojit28/covid19-iot-display kaikista koodiin liittyvistä ongelmista.
Kiitos.