Innholdsfortegnelse:

One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 trinn
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 trinn

Video: One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 trinn

Video: One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 trinn
Video: Датчик давления, температуры и влажности BME280. Подключение к Arduino по I2C. 2024, November
Anonim
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire)
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire)

Her kan du finne en gjentakelse av å bruke OneWire med de få pinnene på en ESP-01. Enheten som er opprettet i denne instruksjonsmaskinen, kobles til det valgte Wifi-nettverket (du må ha legitimasjon …) Samler sansedata fra en BMP280 og en DHT11, og sender de innsamlede dataene til den oppgitte ThingSpeak-kanalen. Jeg antar at du vet hvordan du laster opp en skisse til ESP-01, så jeg går ikke inn på disse detaljene. Uten en spenningsregulator må kretsen drives med maks 3.3V DC. Ikke mye tekst er lagt til, opplæringen bør være grei fra dette punktet.

Trinn 1: Trinn 1: BOM

Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM
Trinn 1: BOM

Maskinvare:

1 x Wifi-modul: ESP-01 (jeg bruker 1024 KB-versjonen)

1 x Trykk- og temperatursensor: BMP280

1 x Fuktighets- og temperatursensor: DHT11

1 x spenningsregulator AMS1117 (valgfritt for direkte strømforsyning, eller du kan bruke hvilken som helst annen som kan regulere inngangsspenningen til en fast 3,3V)

Trinn 2: Trinn 2: Kabling

Trinn 2: Kabling
Trinn 2: Kabling

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

Trinn 3: Trinn 3: Kode

#include #include #include // CHECK #define BMP280_ADDRESS min fungerer med (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char* ssid = "asd "; // DITT WIFI SSID const char* passord = "asd"; // DIN WIFIPASS const char* host = "api.thingspeak.com"; const char* writeAPIKey = "asd"; // DIN APIKEY // DHT11 ting flyte temperatur_buiten; flyte temperatur_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 ("Ingen BMP280"); // mens (1) {}} // Koble til WiFi -nettverket WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); }} void loop () {// DHT11 float fuktighet = dht.readHumidity (); flyte temperatur = dht.readTemperature (); if (isnan (fuktighet) || isnan (temperatur)) {retur; } // BMP280 String t = String (bmp.readTemperature ()); String p = String (bmp.readPressure ()); // TCP -TILKOBLING WiFiClient -klient; 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 (fuktighet); // DHT11 RELATIV 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 ((temperatur +bmp.readTemperature ())/2); // DHT11 + BMP280 GJENNOMSNITTIG CELSIUS url + = "\ r / n"; // Send forespørsel til serveren client.print (String ("GET") + url + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); forsinkelse (1000); }

Anbefalt: