INHOUDSOPGAWE:

Nog een Arduino-weerstasie (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappe
Nog een Arduino-weerstasie (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappe

Video: Nog een Arduino-weerstasie (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappe

Video: Nog een Arduino-weerstasie (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappe
Video: Массимо Банци: Как Arduino пробуждает воображение 2024, Julie
Anonim
Nog een Arduino weerstasie (ESP-01 & BMP280 & DHT11 & OneWire)
Nog een Arduino weerstasie (ESP-01 & BMP280 & DHT11 & OneWire)

Hier vind u een herhaling van die gebruik van OneWire met die baie paar penne van 'n ESP-01. Die toestel wat in hierdie instruksies geskep is, maak verbinding met die Wifi-netwerk van u keuse (u moet die geloofsbriewe hê …) Versamel sensoriese data van 'n BMP280 en 'n DHT11, en stuur die versamelde data na die verskafde ThingSpeak-kanaal. Ek neem aan dat u weet hoe u 'n skets na u ESP-01 kan oplaai, dus ek gaan nie in op die besonderhede nie. met maksimum 3.3V DC. Daar word nie veel teks bygevoeg nie, die tutoriaal moet vanaf hierdie punt eenvoudig wees.

Stap 1: Stap 1: BOM

Stap 1: BOM
Stap 1: BOM
Stap 1: BOM
Stap 1: BOM
Stap 1: BOM
Stap 1: BOM
Stap 1: BOM
Stap 1: BOM

Hardeware:

1 x Wifi-module: ESP-01 (ek gebruik die 1024 KB weergawe)

1 x Druk- en temperatuursensor: BMP280

1 x Humiditeits- en temperatuursensor: DHT11

1 x Spanningsreguleerder AMS1117 (opsioneel vir direkte krag, of u kan enige ander instrument gebruik wat u ingangsspanning kan reguleer tot 'n vaste 3.3V)

Stap 2: Stap 2: Bedrading

Stap 2: Bedrading
Stap 2: Bedrading

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

Stap 3: Stap 3: Kode

#include #include #include // CHECK #define BMP280_ADDRESS myne werk met (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char* ssid = "asd "; // U WIFI SSID const char* wagwoord = "asd"; // U WIFIPASS const char* host = "api.thingspeak.com"; const char* writeAPIKey = "asd"; // JOU APIKEY // DHT11 stuff float temperature_buiten; vlot temperatuur_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; ongeldige opstelling () {// I2C stuff Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 as (! Bmp.begin ()) {// Serial.println ("Geen BMP280"); // terwyl (1) {}} // Koppel aan WiFi -netwerk WiFi.begin (ssid, wagwoord); terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); }} leemte lus () {// DHT11 float humiditeit = dht.readHumidity (); vlottemperatuur = dht.readTemperature (); as (isnan (humiditeit) || isnan (temperatuur)) {terugkeer; } // BMP280 String t = String (bmp.readTemperature ()); String p = String (bmp.readPressure ()); // TCP -VERBINDING WiFiClient -kliënt; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/update? Key ="; url += writeAPIKey; url += "& field1 ="; url += String (temperatuur); // DHT11 CELSIUS url += "& field2 ="; url += String (humiditeit); // DHT11 RELATIEWE HUMIDITY 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 ((temperatuur +bmp.readTemperature ())/2); // DHT11 + BMP280 GEMIDDELDE CELSIUS url + = "\ r / n"; // Stuur versoek na die bediener client.print (String ("GET") + url + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); vertraging (1000); }

Aanbeveel: