INHOUDSOPGAWE:
- Stap 1: Verkry API -sleutel en URL van Openweather.org
- Stap 2: Verbindingsdiagram
- Stap 3: Arduino -kode
- Stap 4: Verwerkingskode
Video: (IOT -projek) Kry weerdata met behulp van ESP8266 en Openweather API: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
In hierdie instruksies gaan ons 'n eenvoudige IOT -projek bou waarin die weerdata van ons stad op openweather.com/api gehaal word en dit met behulp van verwerkingsprogrammatuur kan vertoon.
Benodighede:
- Arduino
- ESP8266 of enige ander esp -module
- Arduino IDE
- Sagteware verwerk
- Broodbord
- Jumperwires Man tot man en man tot vrou
Stap 1: Verkry API -sleutel en URL van Openweather.org
- Skep 'n rekening op https://openweathermap.org (prent 1)
- Nadat u aangemeld het, gaan na API -sleutels en u kry die API -sleutel soos in die prentjie getoon. (Prent 2)
- Kopieer die API -sleutel en stoor dit in 'n notaboek -lêer. (Prent 3)
- Gaan na die API -opsie (prent 4)
- Gaan na die API -dokumentopsie soos in die prentjie getoon (prent 5)
- Kopieer die url van die en vertoon en stoor dit in 'n notaboekie (prent 6)
Stap 2: Verbindingsdiagram
Stap 3: Arduino -kode
Voordat u hierdie kode na Arduino kopieer, moet u seker maak dat u die bord ESP8266 in die arduino -ide afgelaai het met behulp van Boards manager.
#insluit
#include #include #include const char* ssid = "Jou SSID"; const char* password = "Your SSID PASSWORD"; // U domeinnaam met URL -pad of IP -adres met pad String openWeatherMapApiKey = "Plak u API -sleutel hier"; // Vervang deur u landkode en stad String city = "Mumbai"; String countryCode = "IN"; Stringdata [16]; // Die standaard tydsduur is op 10 sekondes gestel vir die toets van doeleindes // Timer ingestel op 10 minute (600000) // ongetekende lang timerDelay = 600000; // Stel timer op 10 sekondes (10000) ongetekende lang timerDelay = 10000; String jsonBuffer; ongeldige opstelling () {Serial.begin (115200); WiFi.begin (ssid, wagwoord); //Serial.println("Koppel "); terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); // Serial.print ("."); } // Serial.println (""); // Serial.print ("Gekoppel aan WiFi -netwerk met IP -adres:"); // Serial.println (WiFi.localIP ()); // // Serial.println ("Timer ingestel op 10 sekondes (timerDelay veranderlike), dit sal 10 sekondes neem voordat die eerste lesing gepubliseer word."); } leemte -lus () {// Stuur 'n HTTP GET -versoek indien ((millis () - lastTime)> timerDelay) {// Gaan die WiFi -verbindingstatus na as (WiFi.status () == WL_CONNECTED) {String serverPath = "https://api.openweathermap.org/data/2.5/weather?q= " + stad +", " + countryCode +" & APPID = " +" d5b56fd07988143ae141503ed9d81742 " +" & units = metrieke "; jsonBuffer = httpGETRequest (serverPath.c_str ()); //Serial.println(jsonBuffer); JSONVar myObject = JSON.parse (jsonBuffer); // JSON.typeof (jsonVar) kan gebruik word om die tipe var te kry as (JSON.typeof (myObject) == "ongedefinieerd") {//Serial.println("Parsing -invoer misluk! "); terugkeer; } // Serial.print ("JSON object ="); // Serial.println (myObject); // Serial.print ("Temperatuur:"); // Serial.println (myObject ["main"] ["temp"]); // Serial.print ("Druk:"); // Serial.println (myObject ["main"] ["pressure"]); // Serial.print ("Humiditeit:"); // Serial.println (myObject ["main"] ["humiditeit"]); // Serial.print ("Windsnelheid:"); // Serial.println (myObject ["wind"] ["spoed"]); int temp = myObject ["main"] ["temp"]; long pres = myObject ["main"] ["pressure"]; int humid = myObject ["main"] ["humiditeit"]; int wind = myObject ["wind"] ["spoed"]; String country = JSON.stringify (myObject ["sys"] ["country"]); String city1 = JSON.stringify (myObject ["naam"]); String weer = JSON.stringify (myObject ["weer"] [0] ["beskrywing"]); String -ikoon = JSON.stringify (myObject ["weer"] [0] ["ikoon"]); data [0] = String (temp); data [1] = "/"; data [2] = String (pres); data [3] = "/"; data [4] = String (vogtig); data [5] = "/"; data [6] = String (wind); data [7] = "/"; data [8] = land; data [9] = "/"; data [10] = stad1; data [11] = "/"; data [12] = weer; data [13] = "/"; data [14] = ikoon; data [15] = "\ n"; vir (int i = 0; i0) {// Serial.print ("HTTP -antwoordkode:"); // Serial.println (httpResponseCode); loonvrag = http.getString (); } anders {Serial.print ("Foutkode:"); Serial.println (httpResponseCode); } // Gratis hulpbronne http.end (); laai vrag terug; }
Stap 4: Verwerkingskode
Laai die gegewe ikoonbeelde af voordat u hierdie kode gebruik om weer te wys. En hou die beelde en kode in dieselfde gids.
invoerverwerking.reeks.*;
Seriële myPort; Beeld img; Beeld img2; Beeld img3; PImage img4; Beeld img5; Beeld img6; Beeld img7; Beeld img8; Beeld img9; Beeld img10; Beeld img11; Beeld img12; PImage img13; Beeld img14; PImage img15; Beeld img16; PImage img17; Beeld img18; int temp; int pres; int vogtig; int wind; String stad = ""; String country = ""; Stringweer = ""; String -ikoon = ""; ongeldige opstelling () {grootte (500, 500); myPort = new Serial (hierdie, "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"); } leegte trek () {agtergrond (72, 209, 204); textSize (22); fill (54, 69, 79); teks ("Temperatuur:", 25, 100); teks (temp +"° C", 200, 100); teks ("Druk:", 25, 150); teks (pres + "hpa", 200, 150); teks ("Humiditeit:", 25, 200); teks (humid+" %", 200, 200); teks ("Wind:", 25, 250); teks (wind+"m/s", 200, 250); teks ("Land/Stad:", 25, 300); teks (land + "-" + stad, 200, 300); teks ("Weer:", 25, 350); teks (weer, 200, 350); if (icon.contains ("01d")) {image (afb, 380, 15); } anders as (icon.contains ("01n")) {image (img2, 380, 15); } anders as (icon.contains ("02d")) {image (img3, 380, 15); } anders as (icon.contains ("02n")) {image (img4, 380, 15); } anders as (icon.contains ("03d")) {image (img5, 380, 15); } anders as (icon.contains ("03n")) {image (img6, 380, 15); } anders as (icon.contains ("04d")) {image (img7, 380, 15); } anders as (icon.contains ("04n")) {image (img8, 380, 15); } anders as (icon.contains ("09d")) {image (img9, 380, 15); } anders as (icon.contains ("09n")) {image (img10, 380, 15); } anders as (icon.contains ("10d")) {image (img11, 380, 15); } anders as (icon.contains ("10n")) {image (img12, 380, 15); } anders as (icon.contains ("11d")) {image (img13, 380, 15); } anders as (icon.contains ("11n")) {image (img14, 380, 15); } anders if (icon == "13d") {image (img15, 380, 15); } anders as (icon.contains ("13n")) {image (img16, 380, 15); } anders as (icon.contains ("50d")) {image (img17, 380, 15); } anders as (icon.contains ("50n")) {image (img18, 380, 15); }} ongeldig serialEvent (Serial myPort) {if (myPort.available ()> 0) {String data = myPort.readStringUntil ('\ n'); as (data! = null) {data = trim (data); Stringitems = split (data, '/'); as (items.length> 1) {temp = int (items [0]); pres = int (items [1]); humid = int (items [2]); wind = int (items [3]); stad = items [4].replace ("\" "," "); country = items [5].replace (" / "", ""); weer = items [6].replace ("\" "," "); ikoon = items [7].replace (" / "", ""); }}}}
Aanbeveel:
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
ESP8266 Nodemcu temperatuurmonitering met behulp van DHT11 op 'n plaaslike webbediener - Kry kamertemperatuur en humiditeit in u blaaier: 6 stappe
ESP8266 Nodemcu temperatuurmonitering met behulp van DHT11 op 'n plaaslike webbediener | Kry kamertemperatuur en humiditeit in u blaaier: Hallo ouens, ons maak 'n humiditeit en amp; temperatuurmoniteringstelsel met behulp van ESP 8266 NODEMCU & DHT11 temperatuur sensor. Temperatuur en humiditeit sal verkry word van DHT11 Sensor & dit kan in 'n blaaier gesien word watter webbladsy bestuur sal word
Kry tyd vanaf die internet met behulp van ESP8266 - NTP -klokprojek met ESP8266 Nodemcu: 5 stappe
Kry tyd vanaf die internet met behulp van ESP8266 | NTP -klokprojek met ESP8266 Nodemcu: In hierdie tutoriaal sal ons sien hoe u tyd kry met die ESP8266/nodemcu met Arduino IDE. Om tyd te kry, is veral handig in data -aanmelding om u lesings te tydstempel. As u ESP8266 -projek toegang tot die internet het, kan u tyd kry met Netwerk T
IoT maklik gemaak: vaslegging van afgeleë weerdata: UV en lugtemperatuur en humiditeit: 7 stappe
IoT maklik gemaak: die opsporing van afgeleë weerdata: UV en lugtemperatuur en humiditeit: in hierdie tutoriaal neem ons data op afstand vas as UV (ultravioletstraling), lugtemperatuur en humiditeit. Die data sal baie belangrik wees en sal gebruik word in 'n toekomstige volledige weerstasie. Die blokdiagram toon wat ons aan die einde sal kry
Hoe om musiek te kry van byna enige (Haha) webwerf (solank u dit kan hoor, kan u dit kry Ok, as dit in Flash is ingebed, kan u dit nie redigeer nie) !!!!! Bygevoeg inligting: 4 stappe
Hoe om musiek te kry van byna enige (Haha) webwerf (solank u dit kan hoor, kan u dit kry … Ok, as dit in Flash is ingebed, kan u dit nie redigeer nie) !!!!! Bygevoeg inligting: as u ooit na 'n webwerf gaan en 'n liedjie speel waarvan u hou en dit wil hê, is dit die instruksie dat u nie my skuld het as u iets deurmekaar maak nie (die enigste manier waarop dit kan gebeur, is as u sonder rede begin om dinge uit te vee) ) Ek kon musiek kry vir