Mục lục:

Một trạm thời tiết Arduino khác (ESP-01 & BMP280 & DHT11 & OneWire): 4 bước
Một trạm thời tiết Arduino khác (ESP-01 & BMP280 & DHT11 & OneWire): 4 bước

Video: Một trạm thời tiết Arduino khác (ESP-01 & BMP280 & DHT11 & OneWire): 4 bước

Video: Một trạm thời tiết Arduino khác (ESP-01 & BMP280 & DHT11 & OneWire): 4 bước
Video: Demo project dự báo thời tiết dùng esp8266 nodeMCU và màn hình LCD Gphone 2024, Tháng mười một
Anonim
Thêm một trạm thời tiết Arduino (ESP-01 & BMP280 & DHT11 & OneWire)
Thêm một trạm thời tiết Arduino (ESP-01 & BMP280 & DHT11 & OneWire)

Tại đây, bạn có thể tìm thấy một lần lặp lại việc sử dụng OneWire với rất ít chân của ESP-01. Thiết bị được tạo trong tài liệu hướng dẫn này kết nối với mạng Wifi bạn chọn (bạn phải có thông tin đăng nhập…) DHT11 và gửi dữ liệu đã thu thập đến kênh ThingSpeak được cung cấp. Tôi giả định rằng bạn biết cách tải bản phác thảo lên ESP-01 của mình, vì vậy tôi sẽ không đi sâu vào các chi tiết đó. Nếu không có bộ điều chỉnh điện áp, mạch phải được cấp nguồn với tối đa 3.3V DC. Không có nhiều văn bản được thêm vào, hướng dẫn sẽ đơn giản từ thời điểm này.

Bước 1: Bước 1: BOM

Bước 1: BOM
Bước 1: BOM
Bước 1: BOM
Bước 1: BOM
Bước 1: BOM
Bước 1: BOM
Bước 1: BOM
Bước 1: BOM

Phần cứng:

1 x mô-đun Wifi: ESP-01 (tôi đang sử dụng phiên bản 1024 KB)

1 x Cảm biến áp suất và nhiệt độ: BMP280

1 x Cảm biến độ ẩm và nhiệt độ: DHT11

1 x Bộ điều chỉnh điện áp AMS1117 (tùy chọn để cấp nguồn trực tiếp hoặc bạn có thể sử dụng bất kỳ thiết bị nào khác có khả năng điều chỉnh điện áp đầu vào của bạn xuống 3,3V cố định)

Bước 2: Bước 2: Đấu dây

Bước 2: Đấu dây
Bước 2: Đấu dây

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

Bước 3: Bước 3: Mã

#include #include #include // KIỂM TRA #define BMP280_ADDRESS mỏ hoạt động với (0x76) #include #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "asd "; // WIFI SSID CỦA BẠN const char * password = "asd"; // GIẤY TỜ CỦA BẠN const char * host = "api.thingspeak.com"; const char * writeAPIKey = "asd"; // APIKEY CỦA BẠN // DHT11 thứ float nhiệt độ_buiten; nhiệt độ float_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // BMP280 Adafruit_BMP280 bmp; void setup () {// I2C thứ Wire.pins (0, 2); Wire.begin (0, 2); // DHT1 dht.begin (); // BMP280 if (! Bmp.begin ()) {// Serial.println ("Không có BMP280"); // while (1) {}} // Kết nối với mạng WiFi WiFi.begin (ssid, password); while (WiFi.status ()! = WL_CONNECTED) {delay (500); }} void loop () {// DHT11 float Moisturiser = dht.readHumidity (); float nhiệt độ = dht.readTempentic (); if (isnan (độ ẩm) || isnan (nhiệt độ)) {return; } // BMP280 String t = String (bmp.readTempe Heat ()); String p = String (bmp.readPressure ()); // Máy khách kết nối TCP WiFiClient; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } Chuỗi url = "/ update? Key ="; url + = writeAPIKey; url + = "& field1 ="; url + = String (nhiệt độ); // DHT11 CELSIUS url + = "& field2 ="; url + = String (độ ẩm); // DHT11 HUMIDITY LIÊN QUAN url + = "& field3 ="; url + = String (bmp.readTempeosystem ()); // 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 ((nhiệt độ + bmp.readTempe Heat ()) / 2); // DHT11 + BMP280 AVERAGE CELSIUS url + = "\ r / n"; // Gửi yêu cầu tới máy chủ client.print (Chuỗi ("GET") + url + "HTTP / 1.1 / r / n" + "Máy chủ:" + máy chủ + "\ r / n" + "Kết nối: close / r / n / r / n "); chậm trễ (1000); }

Đề xuất: