Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Världen för närvarande i coronaviruspandemin och precis som många andra länder dess lockdown i Indien också, så jag fick den här idén att skapa en IoT -display som kommer att ge en realtidsuppdatering av Corona -statistiken för landet. Jag använder ett API som tillhandahåller data från Indien, men du kan använda vilket API som helst med en liten kodändring.
Steg 1: Saker som behövs
Här är de saker du behöver för att göra IoT -visning:
- NodeMCU (ESP8266)
- 16x2 LCD -modul (I2C)
- Brödbräda (tillval)
- Några ledningar/ hoppare
- USB-kabel
Steg 2: Anslutningar
Anslutningarna är ganska enkla. Det finns bara 4 trådar att ansluta. Du kan använda en brödbräda för att placera esp8266 i den och sedan ansluta till LCD -modulen eller så kan du bara använda direkta kvinnliga till kvinnliga bygelkablar för att ansluta.
Anslutningarna är (ESP-> LCD):
- VIN -> VCC (för 5V)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
Anslut nu esp8266 med USB -kabeln till datorn, nu behöver vi bara ladda upp koden.
Steg 3: Kodning
Nu är detta den viktigaste delen. Många av er kommer att tänka på hur detta fungerar?
Så, den ansluter först till wifi och ansluter sedan till ett API för att samla JSON -data, sedan avkodar den JSON -data och lagrar dessa värden i en variabel, sedan visar LCD -värdena och detta fortsätter i en loop.
API: t jag använde är https://coronago.xyz/api/data.json, som hämtar sin data från https://www.covid19india.org/, Det tillhandahåller endast data för Indien, men det finns många API för andra länder, du kan använda valfritt API, men se till att det kan nås via
Först måste du installera ESP8266 -kortstöd för Arduino IDE. Följ denna handledning.
Den andra saken att göra är att installera alla nödvändiga bibliotek, du kan enkelt installera dem från Arduino Library Manager.
Öppna sedan koden och ändra wifi -uppgifter och ladda upp koden.
koden finns här i mitt GitHub-arkiv-https://github.com/Soumojit28/covid19-iot-display.
Steg 4: Kodförklaring och användning av annat API
Koden är ganska enkel
I tomrumsinställningsdelen initierar den LCD -modulen och visar det starande meddelandet och ansluter sedan till wifi -nätverket.
I loop -delen hämtar den JSON -data från API och avkodar annonsen som lagrar den i en variabel, sedan visar den dem i seriemonitorn och LCD -skärmen.
för att använda ett annat API måste du ändra adressen i den här raden i koden
http.begin ("https://coronago.xyz/api/data.json"); // API
En annan sak som API: et måste fungera med en HTTP -anslutning, HTTPS -anslutning fungerar inte i den här koden och du får ett -1 -fel.
API: et returnerar JSON -data så här
Nu Denna nästa kod avkodar bara JSON- och lagringsvärdena i variabeln, detta beror helt på API- och JSON -data som den returnerar. Men det är enkelt att ändra, för mer information kan du kolla den här självstudien.
StaticJsonBuffer JSONBuffer; // Memory pool JsonObject & parsed = JSONBuffer.parseObject (nyttolast); // Analysmeddelande bekräftat = tolkat ["bekräftat"]; återhämtat = tolkat ["återhämtat"]; dödsfall = analyserat ["dödsfall"]; current_active = parsed ["active"];
Därefter visar koden bara variablerna i den seriella bildskärmen och på LCD -skärmen.
Serial.print ("bekräftat:"); Serial.println (bekräftad); Serial.print ("återställt:"); Serial.println (återställd); Serial.print ("currenty_active:"); Serial.println (aktuell_aktiv); Serial.print ("dödsfall:"); Serial.println (dödsfall); om (httpCode == 200) {// visa data i lcd lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Bekräftad:"); lcd.print (bekräftat); lcd.setCursor (0, 1); lcd.print ("Dödsfall:"); lcd.print (dödsfall); fördröjning (2500); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Aktiv:"); lcd.print (aktuell_aktiv); lcd.setCursor (0, 1); lcd.print ("Återställt:"); lcd.print (återställt); fördröjning (2500);
}
Steg 5: Slutsats
Detta är ett fantastiskt projekt för att övervaka statistiken hela tiden, och kan du bygga den för att ge dig tid i denna låsningssituation.
Om du behöver hjälp kan du fråga mig via kommentarer eller öppna ett problem i min Github
github.com/Soumojit28/covid19-iot-display för eventuella kodrelaterade problem.
Tack.