#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// ข้อมูลของ WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// ข้อมูลของ Line Notify
const char* lineNotifyToken = "ojnO6E8YmHSYVy4KazQ1FHik3t80d6dx8uy5imXbgFp";
// กำหนดขาของเซนเซอร์ DS18B20
const int oneWireBus = 2; // ขาของเซนเซอร์ DS18B20
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
void setup() {
// เชื่อมต่อ WiFi
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// เริ่มต้นเซนเซอร์ DS18B20
sensors.begin();
}
void loop() {
// อ่านค่าอุณหภูมิ
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
if (temperatureC != DEVICE_DISCONNECTED_C) {
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" °C");
// ส่งข้อมูลไปยัง Line Notify
sendLineNotify(String(temperatureC) + " °C");
} else {
Serial.println("Error: Could not read temperature data");
}
delay(60000); // รอ 1 นาที
}
void sendLineNotify(String message) {
WiFiClient client;
if (client.connect("notify-api.line.me", 443)) {
String req = "POST /api/notify HTTP/1.1\n";
req += "Host: notify-api.line.me\n";
req += "Authorization: Bearer " + String(lineNotifyToken) + "\n";
req += "Cache-Control: no-cache\n";
req += "Content-Type: application/x-www-form-urlencoded\n";
req += "Content-Length: " + String(String("message=" + message).length()) + "\n\n";
req += "message=" + message + "\n";
client.print(req);
} else {
Serial.println("Error: Failed to connect to Line Notify server");
}
}