Indholdsfortegnelse:
- Trin 1: Hent API -nøgle og URL fra Openweather.org
- Trin 2: Tilslutningsdiagram
- Trin 3: Arduino -kode
- Trin 4: Behandler kode
Video: (IOT -projekt) Få vejrdata ved hjælp af ESP8266 og Openweather API: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
I denne instruktive vil vi bygge et simpelt IOT -projekt, hvorfra vejrdataene i vores by hentes fra openweather.com/api og vises ved hjælp af Processing -software.
Tilbehør:
- Arduino
- ESP8266 eller et andet esp -modul
- Arduino IDE
- Behandlingssoftware
- Brødbræt
- Jumperwires Mand til Mand og Mand til Kvinde
Trin 1: Hent API -nøgle og URL fra Openweather.org
- Opret konto på https://openweathermap.org (billede 1)
- Når du har logget ind, skal du gå til API -nøgler, og du får API -nøglen som vist på billedet. (Billede 2)
- Kopier API -nøglen, og gem den i en notesblokfil. (Billede 3)
- Gå til API -indstillingen (billede 4)
- Gå til API doc -indstilling som vist på billedet (billede 5)
- Kopier url'en fra og vist, og gem den i en notesblokfil (billede 6)
Trin 2: Tilslutningsdiagram
Trin 3: Arduino -kode
Inden du kopierer denne kode til Arduino, skal du sørge for at have downloadet ESP8266 board til arduino ide ved hjælp af Boards manager.
#omfatte
#include #include #include const char* ssid = "Dit SSID"; const char* password = "Dit SSID PASSWORD"; // Dit domænenavn med URL -sti eller IP -adresse med stien String openWeatherMapApiKey = "Indsæt din API -nøgle her"; // Udskift med din landekode og by String city = "Mumbai"; String countryCode = "IN"; Strengdata [16]; // STANDARDTIMEREN ER INDSTILLET TIL 10 SECONDS TESTING FORMÅL // For en endelig applikation, kontroller API -opkaldsgrænserne pr. Time/minut for at undgå at blive blokeret/udelukket uden signeret lang lastTime = 0; // Timer indstillet til 10 minutter (600000) // usigneret lang timerDelay = 600000; // Indstil timeren til 10 sekunder (10000) usigneret lang timerDelay = 10000; String jsonBuffer; ugyldig opsætning () {Serial.begin (115200); WiFi.begin (ssid, adgangskode); //Serial.println("Connecting "); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); // Serial.print ("."); } // Serial.println (""); // Serial.print ("Tilsluttet WiFi -netværk med IP -adresse:"); // Serial.println (WiFi.localIP ()); // // Serial.println ("Timer indstillet til 10 sekunder (timerDelay -variabel), det vil tage 10 sekunder, før den første læsning udgives."); } void loop () {// Send en HTTP GET -anmodning, hvis ((millis () - lastTime)> timerDelay) {// Kontroller WiFi -forbindelsesstatus, 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 bruges til at få typen var hvis (JSON.typeof (myObject) == "undefined") {//Serial.println("Indlæsning af input mislykkedes! "); Vend tilbage; } // Serial.print ("JSON -objekt ="); // Serial.println (myObject); // Serial.print ("Temperatur:"); // Serial.println (myObject ["main"] ["temp"]); // Serial.print ("Tryk:"); // Serial.println (myObject ["main"] ["press"]); // Serial.print ("Fugtighed:"); // Serial.println (myObject ["main"] ["luftfugtighed"]); // Serial.print ("Vindhastighed:"); // Serial.println (myObject ["wind"] ["speed"]); int temp = myObject ["main"] ["temp"]; long pres = myObject ["main"] ["press"]; int fugtigt = myObject ["main"] ["luftfugtighed"]; int wind = myObject ["wind"] ["speed"]; String land = JSON.stringify (myObject ["sys"] ["land"]); String city1 = JSON.stringify (myObject ["navn"]); String weather = JSON.stringify (myObject ["weather"] [0] ["description"]); Stringikon = JSON.stringify (myObject ["weather"] [0] ["icon"]); data [0] = String (temp); data [1] = "/"; data [2] = String (pres); data [3] = "/"; data [4] = String (fugtig); data [5] = "/"; data [6] = String (vind); data [7] = "/"; data [8] = land; data [9] = "/"; data [10] = by1; data [11] = "/"; data [12] = vejr; data [13] = "/"; data [14] = ikon; data [15] = "\ n"; for (int i = 0; i0) {// Serial.print ("HTTP -svarskode:"); // Serial.println (httpResponseCode); nyttelast = http.getString (); } else {Serial.print ("Fejlkode:"); Serial.println (httpResponseCode); } // Gratis ressourcer http.end (); returnere nyttelast; }
Trin 4: Behandler kode
Inden du kører denne kode, skal du downloade de givne ikonbilleder, der vil blive brugt til at vise vejret. Og gem billederne og koden i den samme mappe.
import behandling. serie.*;
Seriel 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 fugtigt; int vind; String city = ""; Stringland = ""; Strengvejr = ""; Stringikon = ""; ugyldig opsætning () {størrelse (500, 500); myPort = ny 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 () {baggrund (72, 209, 204); textSize (22); fyld (54, 69, 79); tekst ("Temperatur:", 25, 100); tekst (temp +"° C", 200, 100); tekst ("Tryk:", 25, 150); tekst (pres + "hpa", 200, 150); tekst ("Fugtighed:", 25, 200); tekst (fugtig " %", 200, 200); tekst ("Vind:", 25, 250); tekst (vind+"m/s", 200, 250); tekst ("Land/By:", 25, 300); tekst (land + "-" + by, 200, 300); tekst ("Vejr:", 25, 350); tekst (vejr, 200, 350); if (icon.contains ("01d")) {image (img, 380, 15); } ellers hvis (ikon. indeholder ("01n")) {billede (img2, 380, 15); } ellers hvis (ikon. indeholder ("02d")) {billede (img3, 380, 15); } ellers hvis (ikon. indeholder ("02n")) {billede (img4, 380, 15); } ellers hvis (ikon. indeholder ("03d")) {billede (img5, 380, 15); } ellers hvis (ikon. indeholder ("03n")) {billede (img6, 380, 15); } ellers hvis (ikon. indeholder ("04d")) {billede (img7, 380, 15); } ellers hvis (ikon. indeholder ("04n")) {billede (img8, 380, 15); } ellers hvis (ikon. indeholder ("09d")) {billede (img9, 380, 15); } ellers hvis (ikon. indeholder ("09n")) {billede (img10, 380, 15); } ellers hvis (ikon. indeholder ("10d")) {billede (img11, 380, 15); } ellers hvis (ikon. indeholder ("10n")) {billede (img12, 380, 15); } ellers hvis (ikon. indeholder ("11d")) {billede (img13, 380, 15); } ellers hvis (ikon. indeholder ("11n")) {billede (billede 14, 380, 15); } ellers hvis (ikon == "13d") {billede (img15, 380, 15); } ellers hvis (ikon. indeholder ("13n")) {billede (img16, 380, 15); } ellers hvis (ikon. indeholder ("50d")) {billede (billede 17, 380, 15); } ellers hvis (ikon. indeholder ("50n")) {billede (img18, 380, 15); }} void serialEvent (Serial myPort) {if (myPort.available ()> 0) {String data = myPort.readStringUntil ('\ n'); hvis (data! = null) {data = trim (data); Stringelementer = split (data, '/'); hvis (items.length> 1) {temp = int (items [0]); pres = int (varer [1]); fugtigt = int (varer [2]); vind = int (varer [3]); city = items [4].replace ("\" "," "); country = items [5].replace (" / "", ""); vejr = varer [6].replace ("\" "," "); ikon = varer [7].replace (" / "", ""); }}}}
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Vejrdata ved hjælp af Google Sheets og Google Script: 7 trin
Vejrdata ved hjælp af Google Sheets og Google Script: I denne Blogtut sender vi aflæsningerne af SHT25 -sensoren til Google Sheets ved hjælp af Adafruit huzzah ESP8266, som hjælper med at sende data til internettet. Det er meget nyttigt at sende data til Google Sheets -celle og en grundlæggende måde, som gemmer dataene på
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
IoT Made Easy: Optagelse af fjerntliggende vejrdata: UV og lufttemperatur og luftfugtighed: 7 trin
IoT Made Easy: Optagelse af fjerntliggende vejrdata: UV og lufttemperatur og luftfugtighed: På denne vejledning registrerer vi fjerndata som UV (ultraviolet stråling), lufttemperatur og luftfugtighed. Disse data vil være meget vigtige og vil blive brugt i en fremtidig komplet vejrstation. Blokdiagrammet viser, hvad vi får i slutningen