Sommario:

Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire): 4 passaggi
Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire): 4 passaggi

Video: Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire): 4 passaggi

Video: Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire): 4 passaggi
Video: Arduino Uno + ESP8266 Weekly Chrono Thermostat (part 1) IT 2024, Novembre
Anonim
Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire)
Un'altra stazione meteo Arduino (ESP-01 e BMP280 e DHT11 e OneWire)

Qui puoi trovare un'iterazione dell'utilizzo di OneWire con i pochissimi pin di un ESP-01. Il dispositivo creato in questa istruzione si connette alla rete Wifi di tua scelta (devi avere le credenziali …) Raccoglie i dati sensoriali da un BMP280 e un DHT11 e invia i dati raccolti al canale ThingSpeak fornito. Presumo che tu sappia come caricare uno schizzo sul tuo ESP-01, quindi non entrerò in quei dettagli. Senza un regolatore di tensione, il circuito deve essere alimentato con max 3,3 V CC. Non viene aggiunto molto testo, il tutorial dovrebbe essere semplice da questo punto.

Passaggio 1: Passaggio 1: Distinta materiali

Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM
Passaggio 1: BOM

Hardware:

1 x modulo Wifi: ESP-01 (sto usando la versione da 1024 KB)

1 x sensore di pressione e temperatura: BMP280

1 x sensore di umidità e temperatura: DHT11

1 x regolatore di tensione AMS1117 (opzionale per l'alimentazione diretta, oppure è possibile utilizzare qualsiasi altro in grado di regolare la tensione di ingresso fino a 3,3 V fissi)

Passaggio 2: Passaggio 2: Cablaggio

Passaggio 2: cablaggio
Passaggio 2: cablaggio

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

Passaggio 3: Passaggio 3: Codice

#include #include #include //CHECK #define BMP280_ADDRESS il mio funziona con (0x76) #include #define DHTPIN 1 //GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3=Rx const char* ssid = "asd "; //IL TUO SSID WIFI const char* password = "asd"; //IL TUO WIFIPASS const char* host = "api.thingspeak.com"; const char* writeAPIKey = "asd"; //LA TUA APIKEY //DHT11 stuff float temperature_buiten; float temperature_buiten2; DHT dht(DHTPIN, DHTTYPE, 15); //BMP280 Adafruit_BMP280 bmp; void setup() { //cose I2C Wire.pins(0, 2); Wire.begin(0, 2); //DHT1 dht.begin(); //BMP280 if (!bmp.begin()) { // Serial.println("No BMP280"); // while (1) {} } //Connettiti alla rete WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { ritardo(500); } } void loop() { //DHT11 float umidità = dht.readHumidity(); float temperatura = dht.readTemperature(); if (isnan(umidità) || isnan(temperatura)) { return; } //BMP280 Stringa t = String(bmp.readTemperature()); Stringa p = Stringa(bmp.readPressure()); //Client WiFiClient CONNESSIONE TCP; const int httpPort = 80; if (!client.connect(host, httpPort)) { return; } String url = "/update?key="; url += writeAPIKey; url += "&field1="; url += Stringa (temperatura); //DHT11 CELSIUS url += "&field2="; url += Stringa (umidità); //DHT11 UMIDITÀ RELATIVA url +="&field3="; url +=String(bmp.readTemperature()); //URL BMP280 CELSIUS +="&field4="; url +=String(bmp.readPressure()/100); //URL BMP280 MILLIBAR +="&field5="; url +=String(bmp.readAltitude(1013.25)); //URL BMP280 METER +="&field6="; url +=String((temperature+bmp.readTemperature())/2); //DHT11 + BMP280 CELSIUS MEDIO url += "\r\n"; // Invia la richiesta al server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r \n\r\n"); ritardo(1000); }

Consigliato: