Innholdsfortegnelse:
- Trinn 1: Skaff API -nøkkel og URL fra Openweather.org
- Trinn 2: Tilkoblingsdiagram
- Trinn 3: Arduino -kode
- Trinn 4: Behandler kode
Video: (IOT Project) Få værdata ved hjelp av ESP8266 og Openweather API: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
I denne instruksen skal vi bygge et enkelt IOT -prosjekt der vi henter værdataene fra byen vår fra openweather.com/api og viser dem ved hjelp av behandlingsprogramvare.
Rekvisita:
- Arduino
- ESP8266 eller annen esp -modul
- Arduino IDE
- Behandler programvare
- Brødbrett
- Jumperwires Mann til Mann og Mann til Kvinne
Trinn 1: Skaff API -nøkkel og URL fra Openweather.org
- Opprett konto på https://openweathermap.org (Bilde 1)
- Etter at du har logget inn, gå til API -nøkler, og du får API -nøkkelen som vist på bildet. (Bilde 2)
- Kopier API -nøkkelen og lagre den i en notisblokkfil. (Bilde 3)
- Gå til API -alternativet (Bilde 4)
- Gå til API -dokumentalternativet som vist på bildet (Bilde 5)
- Kopier nettadressen fra og vist og lagre den i en notisblokkfil (Bilde 6)
Trinn 2: Tilkoblingsdiagram
Trinn 3: Arduino -kode
Før du kopierer denne koden til Arduino, må du kontrollere at du har lastet ned ESP8266 -kortet til arduino ide ved å bruke Boards manager.
#inkludere
#include #include #include const char* ssid = "Din SSID"; const char* password = "SSID PASSWORD"; // Ditt domenenavn med URL -sti eller IP -adresse med bane String openWeatherMapApiKey = "Lim inn API -nøkkelen din her"; // Erstatt med landskode og by String city = "Mumbai"; String countryCode = "IN"; Strengdata [16]; // STANDARDTIMEREN ER STILT TIL 10 SECONDS FOR TESTING FORMÅL // For en siste applikasjon, sjekk API -anropsgrensene per time/minutt for å unngå å bli blokkert/utestengt usignert long lastTime = 0; // Timer satt til 10 minutter (600000) // usignert lang timerDelay = 600000; // Still timeren til 10 sekunder (10000) usignert lang timerDelay = 10000; String jsonBuffer; ugyldig oppsett () {Serial.begin (115200); WiFi.begin (ssid, passord); //Serial.println("Connecting "); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); // Serial.print ("."); } // Serial.println (""); // Serial.print ("Koblet til WiFi -nettverk med IP -adresse:"); // Serial.println (WiFi.localIP ()); // // Serial.println ("Timer satt til 10 sekunder (timerDelay variabel), det vil ta 10 sekunder før den første lesingen publiseres."); } void loop () {// Send en HTTP GET -forespørsel hvis ((millis () - lastTime)> timerDelay) {// Kontroller WiFi -tilkoblingsstatus hvis (WiFi.status () == WL_CONNECTED) {String serverPath = "https://api.openweathermap.org/data/2.5/weather?q= " + city +", " + countryCode +" & APPID = " +" d5b56fd07988143ae141503ed9d81742 " +" & units = metric "; jsonBuffer = httpGETRequest (serverPath.c_str ()); //Serial.println(jsonBuffer); JSONVar myObject = JSON.parse (jsonBuffer); // JSON.typeof (jsonVar) kan brukes til å få typen var hvis (JSON.typeof (myObject) == "undefined") {//Serial.println("Parsing input mislyktes! "); komme tilbake; } // Serial.print ("JSON -objekt ="); // Serial.println (myObject); // Serial.print ("Temperatur:"); // Serial.println (myObject ["main"] ["temp"]); // Serial.print ("Trykk:"); // Serial.println (myObject ["main"] ["press"]); // Serial.print ("Fuktighet:"); // Serial.println (myObject ["main"] ["fuktighet"]); // Serial.print ("Vindhastighet:"); // Serial.println (myObject ["wind"] ["speed"]); int temp = myObject ["main"] ["temp"]; long pres = myObject ["main"] ["press"]; int fuktig = myObject ["main"] ["fuktighet"]; int wind = myObject ["wind"] ["speed"]; String country = JSON.stringify (myObject ["sys"] ["country"]); String city1 = JSON.stringify (myObject ["navn"]); String weather = JSON.stringify (myObject ["weather"] [0] ["description"]); String icon = JSON.stringify (myObject ["weather"] [0] ["icon"]); data [0] = String (temp); data [1] = "/"; data [2] = String (pres); data [3] = "/"; data [4] = String (fuktig); data [5] = "/"; data [6] = String (vind); data [7] = "/"; data [8] = land; data [9] = "/"; data [10] = by1; data [11] = "/"; data [12] = vær; data [13] = "/"; data [14] = ikon; data [15] = "\ n"; for (int i = 0; i0) {// Serial.print ("HTTP -svarskode:"); // Serial.println (httpResponseCode); nyttelast = http.getString (); } annet {Serial.print ("Feilkode:"); Serial.println (httpResponseCode); } // Gratis ressurser http.end (); retur nyttelast; }
Trinn 4: Behandler kode
Last ned de oppgitte ikonbildene som skal brukes til å vise været før du kjører denne koden. Og behold bildene og koden i samme mappe.
import behandling. serie.*;
Seriell myPort; PImage img; PImage img2; PImage img3; PImage img4; PImage img5; PImage img6; PImage img7; PImage img8; PImage img9; PImage img10; PImage img11; PImage img12; PImage img13; PImage img14; PImage img15; PImage img16; PImage img17; PImage img18; int temp; int pres; int fuktig; int vind; String city = ""; String country = ""; Strengevær = ""; Stringikon = ""; ugyldig oppsett () {størrelse (500, 500); myPort = new Serial (dette, "COM3", 115200); img = loadImage ("01d.png"); img2 = loadImage ("01n.png"); img3 = loadImage ("02d.png"); img4 = loadImage ("02n.png"); img5 = loadImage ("03d.png"); img6 = loadImage ("03n.png"); img7 = loadImage ("04d.png"); img8 = loadImage ("04n.png"); img9 = loadImage ("09d.png"); img10 = loadImage ("09n.png"); img11 = loadImage ("10d.png"); img12 = loadImage ("10n.png"); img13 = loadImage ("11d.png"); img14 = loadImage ("11n.png"); img15 = loadImage ("13d.png"); img16 = loadImage ("13n.png"); img17 = loadImage ("50d.png"); img18 = loadImage ("50n.png"); } void draw () {bakgrunn (72, 209, 204); textSize (22); fyll (54, 69, 79); tekst ("Temperatur:", 25, 100); tekst (temp +"° C", 200, 100); tekst ("Trykk:", 25, 150); tekst (pres + "hpa", 200, 150); tekst ("Fuktighet:", 25, 200); tekst (fuktig+" %", 200, 200); tekst ("Vind:", 25, 250); tekst (vind+"m/s", 200, 250); tekst ("Land/by:", 25, 300); tekst (land + "-" + by, 200, 300); tekst ("Vær:", 25, 350); tekst (vær, 200, 350); if (icon.contains ("01d")) {image (img, 380, 15); } annet hvis (icon.contains ("01n")) {image (img2, 380, 15); } annet hvis (ikon. inneholder ("02d")) {image (img3, 380, 15); } annet hvis (ikon. inneholder ("02n")) {image (img4, 380, 15); } annet hvis (ikon. inneholder ("03d")) {image (img5, 380, 15); } annet hvis (ikon. inneholder ("03n")) {image (img6, 380, 15); } annet hvis (icon.contains ("04d")) {image (img7, 380, 15); } annet hvis (icon.contains ("04n")) {image (img8, 380, 15); } annet hvis (ikon. inneholder ("09d")) {image (img9, 380, 15); } annet hvis (ikon. inneholder ("09n")) {image (img10, 380, 15); } annet hvis (ikon. inneholder ("10d")) {image (img11, 380, 15); } annet hvis (ikon. inneholder ("10n")) {image (img12, 380, 15); } annet hvis (icon.contains ("11d")) {image (img13, 380, 15); } annet hvis (icon.contains ("11n")) {image (img14, 380, 15); } annet hvis (ikon == "13d") {image (img15, 380, 15); } annet hvis (ikon. inneholder ("13n")) {image (img16, 380, 15); } annet hvis (ikon. inneholder ("50d")) {image (img17, 380, 15); } annet hvis (icon.contains ("50n")) {image (img18, 380, 15); }} void serialEvent (Serial myPort) {if (myPort.available ()> 0) {String data = myPort.readStringUntil ('\ n'); hvis (data! = null) {data = trim (data); Stringelementer = delt (data, '/'); if (items.length> 1) {temp = int (items [0]); pres = int (elementer [1]); fuktig = int (elementer [2]); vind = int (elementer [3]); city = items [4].replace ("\" "," "); country = items [5].replace (" / "", ""); weather = items [6].replace ("\" "," "); icon = items [7].replace (" / "", ""); }}}}
Anbefalt:
DIY -- Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: 6 trinn
DIY || Hvordan lage en edderkopprobot som kan kontrolleres ved hjelp av smarttelefon ved hjelp av Arduino Uno: Mens du lager en edderkopprobot, kan du lære så mange ting om robotikk. Som å lage roboter er både underholdende og utfordrende. I denne videoen skal vi vise deg hvordan du lager en Spider -robot, som vi kan bruke ved hjelp av smarttelefonen vår (Androi
Talegjenkjenning ved hjelp av Google Speech API og Python: 4 trinn
Talegjenkjenning ved hjelp av Google Speech API og Python: Talegenkjenning Talegjenkjenning er en del av Natural Language Processing som er et underfelt til kunstig intelligens. For å si det enkelt, er talegjenkjenning evnen til en dataprogramvare til å identifisere ord og uttrykk i talespråk
Værdata ved hjelp av Google Sheets og Google Script: 7 trinn
Værdata ved hjelp av Google Sheets og Google Script: I denne Blogtut kommer vi til å sende avlesningene til SHT25 -sensoren til Google Sheets ved hjelp av Adafruit huzzah ESP8266 som hjelper til med å sende dataene til internett. Å sende data til Google -arkcelle er mye nyttig og grunnleggende måte som lagrer dataene på
Hvordan lage en drone ved hjelp av Arduino UNO - Lag en quadcopter ved hjelp av mikrokontroller: 8 trinn (med bilder)
Hvordan lage en drone ved hjelp av Arduino UNO | Lag en Quadcopter ved hjelp av mikrokontroller: Introduksjon Besøk min Youtube -kanal En Drone er en veldig dyr gadget (produkt) å kjøpe. I dette innlegget skal jeg diskutere hvordan jeg får det billig? Og hvordan kan du lage din egen slik til en billig pris … Vel, i India er alle materialer (motorer, ESCer
Bygg et værpanel ved hjelp av Dark Sky API: 5 trinn (med bilder)
Bygg et værpanel ved hjelp av Dark Sky API: Dark Sky spesialiserer seg på værmelding og visualisering. Det kuleste aspektet ved Dark Sky er deres vær -API som vi kan bruke til å hente værdataene fra nesten hvor som helst i verden. Det er ikke bare vær eller regn, men temperatur