Isi kandungan:

Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 Langkah
Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 Langkah

Video: Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 Langkah

Video: Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 Langkah
Video: IoT Based Weather Station using Blynk Apps and Nodemcu | Temperature & Humidity | ESP8266 2024, Disember
Anonim
Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire)
Satu Lagi Stesen Cuaca Arduino (ESP-01 & BMP280 & DHT11 & OneWire)

Di sini anda dapat menjumpai satu lelaran menggunakan OneWire dengan pin ESP-01 yang sangat sedikit. Peranti yang dibuat dalam arahan ini menghubungkan ke rangkaian Wifi pilihan anda (anda mesti mempunyai kelayakan…) Mengumpulkan data deria dari BMP280 dan DHT11, dan menghantar data yang dikumpulkan ke saluran ThingSpeak yang disediakan. Saya mengandaikan bahawa anda tahu bagaimana memuat naik lakaran ke ESP-01 anda, jadi saya tidak akan memperincikannya. Tanpa pengatur voltan, litar mesti dihidupkan dengan maksimum 3.3V DC. Tidak banyak teks ditambahkan, tutorial harus langsung dari sudut ini.

Langkah 1: Langkah 1: BOM

Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM
Langkah 1: BOM

Perkakasan:

1 x modul Wifi: ESP-01 (saya menggunakan versi 1024 KB)

1 x Sensor tekanan dan suhu: BMP280

1 x Sensor kelembapan dan suhu: DHT11

1 x Voltage Regulator AMS1117 (pilihan untuk pengaktifan langsung, atau anda boleh menggunakan alat lain yang mampu mengatur voltan input anda hingga 3.3V tetap)

Langkah 2: Langkah 2: Pendawaian

Langkah 2: Pendawaian
Langkah 2: Pendawaian

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

Langkah 3: Langkah 3: Kod

#include #include #include // CHECK #define BMP280_ADDRESS berfungsi dengan (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "asd "; // SSID WIFI ANDA const char * password = "asd"; // WIFIPASS ANDA const char * host = "api.thingspeak.com"; const char * writeAPIKey = "asd"; // APIKEY ANDA // Bahan DHT11 mengapung suhu_buiten; suhu apungan_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; batal persediaan () {// I2C barang Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 jika (! Bmp.begin ()) {// Serial.println ("No BMP280"); // while (1) {}} // Sambungkan ke rangkaian WiFi WiFi.begin (ssid, kata laluan); sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); }} gelung kekosongan () {// Kelembapan apungan DHT11 = dht.readHumidity (); suhu apungan = dht.readTemperature (); jika (isnan (kelembapan) || isnan (suhu)) {kembali; } // String BMP280 t = Rentetan (bmp.readTemperature ()); Rentetan p = Rentetan (bmp.readPressure ()); // Pelanggan TCP CONNECTION WiFiClient; const int httpPort = 80; jika (! client.connect (host, httpPort)) {return; } String url = "/ kemas kini? Key ="; url + = tulisAPIKey; url + = "& bidang1 ="; url + = Rentetan (suhu); // DHT11 CELSIUS url + = "& field2 ="; url + = Rentetan (kelembapan); // DHT11 RUMUSAN HUMIDITY url + = "& field3 ="; url + = Rentetan (bmp.readTemperature ()); // BMP280 CELSIUS url + = "& field4 ="; url + = Rentetan (bmp.readPressure () / 100); // BMP280 MILLIBAR url + = "& field5 ="; url + = Rentetan (bmp.readAltitude (1013.25)); // BMP280 METER url + = "& field6 ="; url + = String ((suhu + bmp.readTemperature ()) / 2); // DHT11 + BMP280 RATA-RATA CELSIUS url + = "\ r / n"; // Kirim permintaan ke klien pelayan.print (String ("GET") + url + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Sambungan: tutup / r / n / r / n "); kelewatan (1000); }

Disyorkan: