วิธีการทำงานโดยรวม
ESP32 ตรวจจับสถานะประตู
- ใช้เซ็นเซอร์แม่เหล็ก (Reed Switch) หรือเซ็นเซอร์ Hall Effect เพื่อตรวจจับว่าเปิดหรือปิด
- ใช้ ESP32 อ่านค่าสถานะจาก GPIO
ESP32 ส่งข้อมูลไปยัง Google Sheets
- ESP32 ใช้ HTTP POST/GET เพื่อส่งข้อมูลไปยัง Google Apps Script
- Google Apps Script จะจัดการบันทึกข้อมูลลง Google Sheets
ขั้นตอนการตั้งค่า Google Sheets และ Apps Script
สร้าง Google Sheets
- สร้างไฟล์ใหม่ ตั้งชื่อ เช่น
DoorLog
- ตั้งชื่อคอลัมน์ เช่น
Timestamp
,Status
- สร้างไฟล์ใหม่ ตั้งชื่อ เช่น
สร้าง Google Apps Script
- เปิด
Extensions
>Apps Script
- วางโค้ดนี้ลงไป
function doGet(e) {
return doPost(e);
}
function doPost(e) {
var sheet = SpreadsheetApp.openById("YOUR_SHEET_ID").getActiveSheet();
var status = e.parameter.status;
var timestamp = new Date();
sheet.appendRow([timestamp, status]);
return ContentService.createTextOutput("Success");
}
- เปลี่ยน
"YOUR_SHEET_ID"
เป็น ID ของ Google Sheets - กด
Deploy
>New Deployment
>Web app
- กำหนดให้
Anyone
สามารถเข้าถึงได้ - คัดลอก URL ที่ได้มา
โค้ด ESP32 (Arduino)
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
const char* scriptURL = "YOUR_SCRIPT_URL";
const int doorSensor = 4; // ขา GPIO ที่เชื่อมกับเซ็นเซอร์
int lastState = HIGH;
void setup() {
Serial.begin(115200);
pinMode(doorSensor, INPUT_PULLUP);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi!");
}
void loop() {
int currentState = digitalRead(doorSensor);
if (currentState != lastState) {
lastState = currentState;
String status = (currentState == HIGH) ? "Closed" : "Opened";
HTTPClient http;
http.begin(scriptURL + "?status=" + status);
int httpResponseCode = http.GET();
http.end();
Serial.println("Door Status: " + status);
}
delay(1000);
}
- ESP32 ตรวจจับสถานะประตู
- ส่งข้อมูลไปยัง Google Apps Script
- Apps Script บันทึกข้อมูลลง Google Sheets
หากต้องการปรับปรุงระบบ เช่น เพิ่มการแจ้งเตือนผ่าน Line Notify หรือ Telegram แจ้งให้ฉันทราบได้!
อุปกรณ์ที่ใช้
การต่อวงจร
- Reed Switch มี 2 ขา
- ขาหนึ่งต่อกับ GND
- อีกขาหนึ่งต่อกับ GPIO 4 ของ ESP32 (สามารถใช้ขาอื่นได้)
- ใช้ตัวต้านทาน 10kΩ ต่อระหว่าง GPIO 4 และ 3.3V เพื่อทำ Pull-up
หลักการทำงาน
- เมื่อประตูปิด → วงจรสมบูรณ์ → GPIO 4 อ่านค่า LOW
- เมื่อประตูเปิด → วงจรขาด → GPIO 4 อ่านค่า HIGH