Tabla de contenido:

Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): 4 pasos
Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): 4 pasos

Video: Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): 4 pasos

Video: Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): 4 pasos
Video: Proyecto IoT: Monitoreo Temperatura - ThingSpeak - OpenWeather API - ESP32 2024, Noviembre
Anonim
Una estación meteorológica más Arduino (ESP-01 y BMP280 y DHT11 y OneWire)
Una estación meteorológica más Arduino (ESP-01 y BMP280 y DHT11 y OneWire)

Aquí puede encontrar una iteración del uso de OneWire con los pocos pines de un ESP-01. El dispositivo creado en este instructable se conecta a la red Wifi de su elección (debe tener las credenciales …) Recopila datos sensoriales de un BMP280 y un DHT11, y envía los datos recopilados al canal ThingSpeak provisto. Supongo que sabe cómo cargar un boceto en su ESP-01, por lo que no voy a entrar en esos detalles. Sin un regulador de voltaje, el circuito tiene que estar alimentado con un máximo de 3.3V DC No se agrega mucho texto, el tutorial debería ser sencillo desde este punto.

Paso 1: Paso 1: BOM

Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales
Paso 1: lista de materiales

Hardware:

1 x módulo Wifi: ESP-01 (estoy usando la versión de 1024 KB)

1 x sensor de presión y temperatura: BMP280

1 x sensor de humedad y temperatura: DHT11

1 x regulador de voltaje AMS1117 (opcional para alimentación directa, o puede usar cualquier otro capaz de regular su voltaje de entrada a 3.3V fijo)

Paso 2: Paso 2: Cableado

Paso 2: cableado
Paso 2: cableado

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

Paso 3: Paso 3: Código

#include #include #include // CHECK #define BMP280_ADDRESS el mío funciona con (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = " "; // SU WIFI SSID const char * contraseña = "asd"; // SU WIFIPASS const char * host = "api.thingspeak.com"; const char * writeAPIKey = "asd"; // SU APIKEY // DHT11 cosas float temperature_buiten; flotar temperature_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; void setup () {// I2C stuff Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 if (! Bmp.begin ()) {// Serial.println ("No BMP280"); // while (1) {}} // Conectarse a la red WiFi WiFi.begin (ssid, contraseña); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); }} bucle vacío () {// DHT11 humedad flotante = dht.readHumidity (); temperatura de flotación = dht.readTemperature (); if (isnan (humedad) || isnan (temperatura)) {retorno; } // BMP280 String t = String (bmp.readTemperature ()); Cadena p = Cadena (bmp.readPressure ()); // CONEXIÓN TCP Cliente WiFiClient; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/ update? Key ="; url + = writeAPIKey; url + = "& campo1 ="; url + = String (temperatura); // DHT11 CELSIUS url + = "& field2 ="; url + = String (humedad); // DHT11 HUMEDAD RELATIVA url + = "& field3 ="; url + = String (bmp.readTemperature ()); // BMP280 CELSIUS url + = "& field4 ="; url + = Cadena (bmp.readPressure () / 100); // BMP280 MILLIBAR url + = "& field5 ="; url + = String (bmp.readAltitude (1013.25)); // BMP280 METER url + = "& field6 ="; url + = String ((temperatura + bmp.readTemperature ()) / 2); // DHT11 + BMP280 PROMEDIO CELSIUS url + = "\ r / n"; // Enviar solicitud al servidor client.print (String ("GET") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Conexión: close / r / n / r / n "); retraso (1000); }

Recomendado: