Cuprins:

O altă stație meteo Arduino (ESP-01 și BMP280 & DHT11 și OneWire): 4 pași
O altă stație meteo Arduino (ESP-01 și BMP280 & DHT11 și OneWire): 4 pași

Video: O altă stație meteo Arduino (ESP-01 și BMP280 & DHT11 și OneWire): 4 pași

Video: O altă stație meteo Arduino (ESP-01 și BMP280 & DHT11 și OneWire): 4 pași
Video: 3. Statie Meteo ( Arduino UNO + ESP8266 ) 2024, Decembrie
Anonim
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire)
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire)

Aici puteți găsi o iterație a utilizării OneWire cu foarte puțini pini ai unui ESP-01. Dispozitivul creat în acest instructable se conectează la rețeaua Wifi la alegere (trebuie să aveți acreditările …) Colectează date senzoriale de pe un BMP280 și un DHT11 și trimite datele colectate la canalul ThingSpeak furnizat. Presupun că știți cum să încărcați o schiță pe ESP-01, deci nu intru în aceste detalii. Fără un regulator de tensiune, circuitul trebuie alimentat cu maxim 3,3V DC. Nu se adaugă prea mult text, tutorialul ar trebui să fie direct din acest punct.

Pasul 1: Pasul 1: BOM

Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM
Pasul 1: BOM

Hardware:

1 x modul Wifi: ESP-01 (folosesc versiunea de 1024 KB)

1 x senzor de presiune și temperatură: BMP280

1 x senzor de umiditate și temperatură: DHT11

1 x regulator de tensiune AMS1117 (opțional pentru alimentarea directă sau puteți utiliza orice alt dispozitiv capabil să regleze tensiunea de intrare până la un 3.3V fix)

Pasul 2: Pasul 2: Cablare

Pasul 2: Cablare
Pasul 2: Cablare

ESP-01 VCC la 3.3 VESP-01 GND la GNDESP-01 TX la DHT11 DATAESP-01 GPIO0 la BMP280 SDAESP-01 GPIO2 la BMP280 SCLDHT11 VCC la 3.3VDHT11 GND la GNDBMP280 VCC la 3.3VBMP280 GND la GND

Pasul 3: Pasul 3: Cod

#include #include #include // CHECK #define BMP280_ADDRESS mine funcționează cu (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "asd "; // SSID-UL WIFI const char * parolă = "asd"; // YOUR WIFIPASS const char * host = "api.thingspeak.com"; const char * writeAPIKey = "asd"; // APIKEY YOUR // DHT11 chestii float temperature_buiten; float temperature_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; void setup () {// chestii I2C Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 if (! Bmp.begin ()) {// Serial.println („Nu BMP280”); // while (1) {}} // Conectați-vă la rețeaua WiFi WiFi.begin (ssid, parolă); while (WiFi.status ()! = WL_CONNECTED) {întârziere (500); }} void loop () {// DHT11 float umiditate = dht.readHumidity (); float temperature = dht.readTemperature (); if (isnan (umiditate) || isnan (temperatura)) {return; } // BMP280 String t = String (bmp.readTemperature ()); String p = String (bmp.readPressure ()); // TCP CONNECTION Client WiFiClient; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/ update? Key ="; url + = writeAPIKey; url + = "& câmp1 ="; url + = Șir (temperatură); // DHT11 CELSIUS url + = "& field2 ="; url + = Șir (umiditate); // DHT11 UMIDITATE RELATIVĂ url + = "& câmp3 ="; url + = String (bmp.readTemperature ()); // BMP280 CELSIUS url + = "& field4 ="; url + = String (bmp.readPressure () / 100); // BMP280 MILLIBAR url + = "& field5 ="; url + = String (bmp.readAltitude (1013.25)); // BMP280 METER url + = "& field6 ="; url + = String ((temperature + bmp.readTemperature ()) / 2); // DHT11 + BMP280 CELSIUS MEDIU url + = "\ r / n"; // Trimiteți cererea către serverul client.print (Șir ("GET") + url + "HTTP / 1.1 / r / n" + "Gazdă:" + gazdă + "\ r / n" + "Conexiune: închidere / r / n / r / n "); întârziere (1000); }

Recomandat: