Talaan ng mga Nilalaman:

Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 na Hakbang
Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 na Hakbang

Video: Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 na Hakbang

Video: Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): 4 na Hakbang
Video: IoT Weather Cube with ESP01 Weather Clock Oled Display 2024, Nobyembre
Anonim
Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 at OneWire)
Isa Pa Arduino Weather Station (ESP-01 & BMP280 & DHT11 at OneWire)

Mahahanap mo rito ang isang pag-ulit ng paggamit ng OneWire gamit ang napakakaunting mga pin ng isang ESP-01. Ang aparato na nilikha sa itinuturo na ito ay kumokonekta sa Wifi network na iyong pinili (dapat kang magkaroon ng mga kredensyal …) Kinokolekta ang sensory data mula sa isang BMP280 at isang Ang DHT11, at ipinapadala ang nakolektang data sa ThingSpeak channel na ibinigay. Ipinapalagay ko na alam mo kung paano mag-upload ng isang sketch sa iyong ESP-01, kaya hindi ako pupunta sa mga detalyeng iyon. Kung walang isang regulator ng boltahe, ang circuit ay dapat na pinapatakbo na may max 3.3V DC. Hindi naidagdag ang maraming teksto, ang tutorial ay dapat na prangka mula sa puntong ito.

Hakbang 1: Hakbang 1: BOM

Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM
Hakbang 1: BOM

Hardware:

1 x Wifi module: ESP-01 (ginagamit ko ang bersyon ng 1024 KB)

1 x Sensor ng Presyon at Temperatura: BMP280

1 x Humidity at Temperatura sensor: DHT11

1 x Voltage Regulator AMS1117 (opsyonal para sa direktang pag-powering, o maaari mong gamitin ang anumang iba pang may kakayahang pangalagaan ang iyong boltahe ng pag-input pababa sa isang nakapirming 3.3V)

Hakbang 2: Hakbang 2: Mga kable

Hakbang 2: Mga kable
Hakbang 2: Mga kable

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

Hakbang 3: Hakbang 3: Code

#include #include #include // CHECK #define BMP280_ADDRESS mine works with (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "asd "; // IYONG WIFI SSID const char * password = "asd"; // IYONG WIFIPASS const char * host = "api.thingspeak.com"; const char * writeAPIKey = "asd"; // IYONG APIKEY // DHT11 bagay na lumulutang temperatura_buiten; float temperatura_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; void setup () {// I2C bagay na Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 if (! Bmp.begin ()) {// Serial.println ("No BMP280"); // habang (1) {}} // Kumonekta sa WiFi network WiFi.begin (ssid, password); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); }} void loop () {// DHT11 float halumigmig = dht.readHumidity (); temperatura ng float = dht.readTemperature (); kung (isnan (halumigmig) || isnan (temperatura)) {bumalik; } // BMP280 String t = String (bmp.readTemperature ()); String p = String (bmp.readPressure ()); // TCP CONNECTION WiFiClient client; const int httpPort = 80; kung (! client.connect (host, httpPort)) {return; } String url = "/ update? Key ="; url + = writeAPIKey; url + = "& field1 ="; url + = String (temperatura); // DHT11 CELSIUS url + = "& field2 ="; url + = String (halumigmig); // DHT11 RELATIVE 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 ((temperatura + bmp.readTemperature ()) / 2); // DHT11 + BMP280 AVERAGE CELSIUS url + = "\ r / n"; // Send request to the server client.print (String ("GET") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); pagkaantala (1000); }

Inirerekumendang: