#include <WiFi.h>
#include <HTTPClient.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Replace with your Line Notify token (generated from the Line Notify website)
const char* LINE_TOKEN = "qkx6jOv1ht8oOAm1nOZMSyGVdrMTft9ugfJdmMNzo8j";
// Initialize DHT22 sensor
#define DHT_PIN 4
#define DHT_TYPE DHT22
DHT dht(DHT_PIN, DHT_TYPE);
void setup()
{
Serial.begin(115200);
// Connect to Wi-Fi network
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Initialize DHT22 sensor
dht.begin();
}
void loop() {
// Read temperature and humidity from DHT22 sensor
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity))
{
Serial.println("Failed to read temperature and humidity from DHT22 sensor.");
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println("%");
// Send notification to Line Notify
String message = "Temperature: " + String(temperature) + " °C, Humidity: " + String(humidity) + "%";
sendNotification(message);
delay(5000);
}
void sendNotification(String message) {
if (WiFi.status() == WL_CONNECTED) {
// Send message to Line Notify
HTTPClient https;
String url = "https://notify-api.line.me/api/notify";
https.begin(url);
https.addHeader("Authorization", "Bearer " + String(LINE_TOKEN));
https.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = https.POST("message=" + message);
if (httpCode == HTTP_CODE_OK) {
Serial.println("Notification sent!");
} else {
Serial.println("Error sending notification: " + String(httpCode));
}
https.end();
}
}