Inhaltsverzeichnis:

Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire) - Gunook
Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire) - Gunook

Video: Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire) - Gunook

Video: Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire) - Gunook
Video: Der einfache Einstieg in Arduino & Co. 21: Temperatur und Luftfeuchtigkeit 2024, November
Anonim
Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire)
Eine weitere Arduino Wetterstation (ESP-01 & BMP280 & DHT11 & OneWire)

Hier finden Sie eine Iteration der Verwendung von OneWire mit den sehr wenigen Pins eines ESP-01. Das in dieser Anleitung erstellte Gerät verbindet sich mit dem Wifi-Netzwerk Ihrer Wahl (Sie müssen die Anmeldeinformationen haben …) Sammelt sensorische Daten von einem BMP280 und a DHT11 und sendet die gesammelten Daten an den bereitgestellten ThingSpeak-Kanal. Ich gehe davon aus, dass Sie wissen, wie Sie eine Skizze auf Ihr ESP-01 hochladen, daher gehe ich nicht auf diese Details ein. Ohne Spannungsregler muss die Schaltung mit Strom versorgt werden mit max 3,3 V DC. Es wird nicht viel Text hinzugefügt, das Tutorial sollte von diesem Punkt an einfach sein.

Schritt 1: Schritt 1: Stückliste

Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste
Schritt 1: Stückliste

Hardware:

1 x Wifi Modul: ESP-01 (ich verwende die 1024 KB Version)

1 x Druck- und Temperatursensor: BMP280

1 x Feuchtigkeits- und Temperatursensor: DHT11

1 x Spannungsregler AMS1117 (optional für direkte Stromversorgung, oder Sie können einen anderen verwenden, der Ihre Eingangsspannung auf feste 3,3 V herunterregeln kann)

Schritt 2: Schritt 2: Verdrahtung

Schritt 2: Verkabelung
Schritt 2: Verkabelung

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

Schritt 3: Schritt 3: Code

#include #include #include //CHECK #define BMP280_ADDRESS meins funktioniert mit (0x76) #include #define DHTPIN 1 //GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3=Rx const char* ssid = "asd "; // IHRE WIFI-SSID const char* password = "asd"; //IHR WIFIPASS const char* host = "api.thingspeak.com"; const char* writeAPIKey = "asd"; //IHR APIKEY //DHT11 Zeug float temperature_buiten; float temperature_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); //BMP280 Adafruit_BMP280 bmp; Void setup () {//I2C Zeug Wire.pins (0, 2); Draht. Begin(0, 2); //DHT1 dht.begin(); // BMP280 wenn (! bmp.begin ()) {//Serial.println ("Kein BMP280"); // Während (1) {} } // Mit dem WiFi-Netzwerk verbinden WiFi.begin (ssid, password); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); aufrechtzuerhalten. aufrechtzuerhalten. Void Schleife () {//DHT11 Float Feuchtigkeit = dht.readHumidity (); Float-Temperatur = dht.readTemperature(); if (isnan(Luftfeuchtigkeit) || isnan(temperatur)) { zurück; } // BMP280 String t = String (bmp.readTemperature()); String p = String(bmp.readPressure()); // TCP-VERBINDUNG WiFiClient-Client; const int httpPort = 80; if (!client.connect(host, httpPort)) { return; } String-URL = "/update?key="; URL += writeAPIKey; URL += "&field1="; URL += String (Temperatur); //DHT11 CELSIUS-URL += "&field2="; url += String(Luftfeuchtigkeit); //DHT11 RELATIVE LUFTFEUCHTE URL +="&field3="; 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 DURCHSCHNITTLICHE CELSIUS-URL += "\r\n"; // Anfrage an den Server senden client.print(String("GET") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r \n\r\n"); Verzögerung (1000); }

Empfohlen: