Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Actualment, el món en pandèmia de coronavirus i, com molts altres països, també té bloqueig a l’Índia, així que vaig tenir aquesta idea de crear una pantalla IoT que donarà una actualització en temps real de l’estadística de la Corona del país. Faig servir una API que proporciona dades de l’Índia, però podeu utilitzar qualsevol API amb un petit canvi de codi.
Pas 1: coses necessàries
A continuació, es mostren les coses que necessitareu per mostrar la IoT:
- NodeMCU (ESP8266)
- Mòdul LCD de 16x2 (I2C)
- Taula de pa (opcional)
- Alguns cables / ponts
- Cable USB
Pas 2: connexions
Les connexions són bastant fàcils. Només hi ha 4 cables per connectar. Podeu fer servir una placa per col·locar-hi l’esp8266 i, a continuació, connectar-vos al mòdul LCD o simplement connectar-vos a cables de pont directe femella a femella.
Les connexions són (ESP-> LCD):
- VIN -> VCC (per a 5V)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
Ara només heu de connectar l’esp8266 amb el cable USB al PC, ara només hem de penjar el codi.
Pas 3: Codificació
Ara, aquesta és la part més important. Molts de vosaltres tindreu preguntes en ment sobre com funciona això?
Per tant, primer es connecta a wifi i després es connecta a una API per recopilar dades JSON, després descodifica les dades JSON i emmagatzema aquests valors en una variable, després la pantalla LCD mostra els valors i això continua en bucle.
L'API que he utilitzat és https://coronago.xyz/api/data.json, que obté les seves dades de https://www.covid19india.org/, proporciona dades només per a l'Índia, però hi ha moltes API per a altres països, podeu utilitzar qualsevol API, però assegureu-vos que HTTP pugui accedir-hi.
En primer lloc, heu d’instal·lar el suport de la placa ESP8266 per a Arduino IDE. Seguiu aquest tutorial.
El segon que heu de fer és instal·lar totes les biblioteques necessàries; podeu instal·lar-les fàcilment des del gestor de biblioteques Arduino.
A continuació, obriu el codi i canvieu les credencials del wifi i pengeu el codi.
el codi es troba aquí al meu dipòsit de GitHub:
Pas 4: explicació del codi i ús d'una altra API
El codi és bastant senzill
A la part de configuració del buit, inicialitza el mòdul LCD i mostra el missatge fix que es connecta a la xarxa wifi.
A la part del bucle, obté les dades JSON de l'API i les descodifica per emmagatzemar-les en una variable i, a continuació, les mostra al monitor sèrie i a la pantalla LCD.
per utilitzar una altra API, heu de canviar l'adreça d'aquesta línia del codi
http.begin ("https://coronago.xyz/api/data.json"); // API
Una altra cosa que l'API ha de funcionar amb una connexió HTTP: la connexió HTTPS no funcionarà en aquest codi i obtindreu un error -1.
L'API retorna dades JSON com aquesta
Ara, el següent codi només descodifica el JSON i emmagatzema els valors de la variable, això depèn totalment de les dades de l'API i JSON que retorni. Però és fàcil de canviar, per obtenir més informació, podeu consultar aquest tutorial.
StaticJsonBuffer JSONBuffer; // Agrupació de memòria JsonObject & parsed = JSONBuffer.parseObject (càrrega útil); // Analitza el missatge confirmat = analitzat ["confirmat"]; recuperat = analitzat ["recuperat"]; morts = analitzades ["defuncions"]; current_active = analitzat ["actiu"];
Després, el codi només mostra les variables al monitor sèrie i a la pantalla LCD.
Serial.print ("confirmat:"); Serial.println (confirmat); Serial.print ("recuperat:"); Serial.println (recuperat); Serial.print ("currenty_active:"); Serial.println (current_active); Serial.print ("defuncions"); Serial.println (defuncions); if (httpCode == 200) {// mostra les dades a lcd lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Confirmat:"); lcd.print (confirmat); lcd.setCursor (0, 1); lcd.print ("Defuncions"); lcd.print (defuncions); retard (2500); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Actiu"); lcd.print (current_active); lcd.setCursor (0, 1); lcd.print ("Recuperat:"); lcd.print (recuperat); retard (2500);
}
Pas 5: Conclusió
Aquest és un gran projecte per supervisar les estadístiques tot el temps i el podeu construir per passar-vos el temps en aquesta situació de bloqueig.
Si necessiteu ajuda, podeu demanar-me-ho mitjançant comentaris o obrir un problema al meu Github
github.com/Soumojit28/covid19-iot-display per a qualsevol problema relacionat amb el codi.
Gràcies.