#include "DHT.h"
#include <WiFi.h>
#include "ThingSpeak.h"
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// ThingSpeak
unsigned long myChannelNumber = 2649189;
const char * myWriteAPIKey = "5PMJOLW7D7WZXXKZ";
WiFiClient client;
void setup() {
Serial.begin(115200);
dht.begin();
// Kết nối Wi-Fi
WiFi.begin(ssid, password);
Serial.print("Đang kết nối Wi-Fi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nWi-Fi đã kết nối!");
// Kết nối ThingSpeak
ThingSpeak.begin(client);
}
void loop() {
// Đọc nhiệt độ và độ ẩm
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Không thể đọc dữ liệu từ cảm biến DHT!");
return;
}
// In giá trị ra màn hình
Serial.print("Nhiệt độ: ");
Serial.print(temperature);
Serial.print("°C | Độ ẩm: ");
Serial.print(humidity);
Serial.println("%");
// Gửi dữ liệu lên ThingSpeak
ThingSpeak.setField(1, temperature); // Gửi nhiệt độ vào Field 1
ThingSpeak.setField(2, humidity); // Gửi độ ẩm vào Field 2
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200){
Serial.println("Dữ liệu đã gửi thành công lên ThingSpeak");
} else {
Serial.println("Lỗi khi gửi dữ liệu: " + String(x));
}
delay(20000); // Gửi dữ liệu lên ThingSpeak mỗi 20 giây
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4