กลับไปหน้ารวมไฟล์
arduino-home-assistant-4fc420.md

Arduino Home Assistant

เกริ่นนำ

เจ้า Arduino Home Assistant ตัวนี้คืออุปกรณ์ที่เอาไว้ควบคุมของหลายๆ อย่างในบ้าน เช่น ไฟโต๊ะ พัดลมเป่าคอม พัดลมใหญ่ เครื่องทำความชื้น และสเต็ปเปอร์มอเตอร์สำหรับม่าน โดยใช้เซ็นเซอร์จับค่าต่างๆ อย่าง MLX90614, LDRs, เซ็นเซอร์อินฟราเรด, เซ็นเซอร์วัดฝน, อัลตราโซนิก ฯลฯ ทำให้มันสามารถตรวจสอบสภาพแวดล้อมในห้องแล้วจัดการงานต่างๆ ได้เอง ตัวอย่างง่ายๆ เลยคือถ้าอุณหภูมิคอมพ์สูงเกินไป พัดลมเป่าคอมก็จะทำงานอัตโนมัติ กับอุปกรณ์อื่นๆ ก็ใช้หลักการเดียวกัน บางงานอาจต้องใช้ข้อมูลจากหลายเซ็นเซอร์มาประกอบกัน เราสามารถปรับโหมดการทำงานของสวิตช์เป็นแบบบังคับมือ (Manual) หรืออัตโนมัติ (Auto) ก็ได้

เซ็นเซอร์และโมดูลต่างๆ ที่ต่อกับ Arduino Mega

ศูนย์บัญชาการกลาง: Arduino Home Assistant

การพึ่งพา Google Home หรือ Amazon Alexa นั่นหมายความว่าความเป็นส่วนตัวของคุณกำลังถูกเปิดเผยหมด และถ้าอินเทอร์เน็ตหลุด ของในบ้านก็จะใช้ไม่ได้เลย โปรเจค Arduino Home Assistant นี้จะพาน้องๆ เข้าสู่โลกของเครือข่ายภายในบ้าน (LAN) แบบจัดเต็ม มันสร้าง "ฮับ" อุปกรณ์จริงๆ ที่สื่อสารกันแค่ภายในบ้านเท่านั้น รับประกันความเป็นส่วนตัว 100% และดีเลย์ต่ำมากจนวัดไม่ได้!

เซิร์ฟเวอร์ REST API ภายในบ้าน

Arduino (ที่จับคู่กับ W5100 Ethernet Shield หรือ ESP32) ทำหน้าที่เป็นเหมือนสถานีรถไฟกลาง

  1. โครงสร้าง (Architecture): อุปกรณ์อัจฉริยะทุกชิ้นในบ้าน (Node A, Node B) จะถูกโปรแกรมให้คุยกันแค่กับ IP กลางที่ 192.168.1.100 (ฮับ)
  2. ล่ามแปลภาษา JSON: ฮับรันเว็บเซิร์ฟเวอร์จิ๋วๆ ไว้ พอมีคนกดสวิตช์ไฟในครัว Node A ก็จะส่งคำขอ HTTP GET /kitchen/light/1 ไปหาฮับ
  3. ฮับก็จะแปลคำสั่งนั้น เช็คสถานะในอาร์เรย์บูลเลียนมหึมาของมัน อัพเดทสถานะ แล้วส่งข้อมูล JSON กลับมาเป็น {"status":"ON"} เพื่อยืนยันว่าทำงานสำเร็จ
  4. หน้าจอควบคุม (Interface): น้องก็แค่เปิดแอป HTML ที่โฮสต์อยู่บนฮับผ่านมือถือ ก็จะเห็นปุ่มควบคุมทุกอย่างในบ้านแบบเรียลไทม์!

อัพเกรดไปใช้ MQTT (Publish/Subscribe)

ถ้าบ้านเรามีอุปกรณ์อัจฉริยะเพิ่มเป็น 50 ชิ้น การใช้ HTTP GET requests จะช้ามากและทำให้ Arduino รวนได้

  • ต้องอัพเกรดลอจิกของฮับไปใช้ MQTT (Message Queuing Telemetry Transport) โดยใช้ไลบรารี <PubSubClient.h>
  • ฮับจะทำหน้าที่เป็น "โบรกเกอร์"
  • ไฟในครัวจะ "Subscribe" ฟังหัวข้อ (Topic) ชื่อ house/kitchen/light1
  • แอปในมือถือน้องจะ "Publish" ส่งข้อความ ON ไปที่หัวข้อนั้น ฮับก็จะรับข้อความมาแล้วส่งต่อไปให้ไฟทันที ใช้เวลาไม่ถึง 5 มิลลิวินาที!

ฮาร์ดแวร์พื้นฐานที่ต้องมี

  • Arduino Mega + W5100 Ethernet Shield (การต่อสาย LAN ให้ฮับเสถียรกว่าวายฟายเยอะ)
  • หรือจะใช้ ESP32 Dev Module ทำหน้าที่เป็นจุดกระจายสัญญาณ Wi-Fi (Access Point) ก็ได้
  • Relay Nodes (เช่น ESP-01 modules) กระจายไว้ตามจุดต่างๆ ในบ้านเพื่อสั่งงานอุปกรณ์จริง
  • ความรู้เรื่องโปรโตคอลเครือข่ายระดับเทพ (TCP/IP, HTTP, MQTT) อย่าหนี ต้องเรียน!

ฟังก์ชันการทำงาน

ต่อมา ในระบบนี้มีฟังก์ชันให้เล่นถึง 8 อย่างด้วยกัน ได้แก่ โชว์ไฟ LED, ตรวจสอบสภาพห้อง, ตรวจสอบสภาพ Arduino, ตรวจสอบสภาพแล็ปท็อป, ตรวจสอบอากาศ, ตั้งเวลา/ปลุก, เกม, โหมด WIFI และพื้นที่ส่วนตัวสำหรับบันทึกข้อมูลของน้องๆ เอง นอกจากนี้ยังมีหน้าเพื่อตรวจสอบสถานะของอุปกรณ์ทุกชิ้นอีกด้วย การควบคุมหลักจะใช้โพเทนชิออมิเตอร์และปุ่มกดสองปุ่ม ง่ายๆ เอง อย่าช็อตนะตัวนี้!

เมนูการใช้งาน

โหมด WIFI

เจ้า Home Assistant ตัวนี้มันยังพ่วงโมดูล esp-01 เข้าไปด้วยนะ งานควบคุมและตรวจสอบทั้งหมดเลยทำผ่าน Wi-Fi ได้สบายๆ ผ่านโน๊ตบุ๊คหรือมือถือเลยจ้า ใช้ Blynk เป็นแพลตฟอร์ม แล้วก็มี Google Assistant คอยสนับสนุนอีกแรง ทำให้สั่งงานได้ทุกที่ทุกเวลาเลยว่างั้น! พอเซ็นเซอร์อัลตราโซนิกกับ LDR ตรวจจับว่าไม่มีคนในห้องแล้ว มันจะสลับไปใช้โหมด WIFI อัตโนมัติเลย

หน้าจอแอป Blynk

แค่นี้แหละน้อง! ตอนนี้พี่ก็สามารถสั่งให้ Home Assistant ปิดม่านได้จากที่ไหนก็ได้ แค่พูดว่า "Ok Google, activate close curtain" ง่ายๆ สบายๆ งานนี้จัดไปวัยรุ่น!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Blynk"
  - "1x Assistant SDK"
author: "js-arduino"
category: "Home Automation"
components:
  - "1x Speaker, Mini"
  - "1x Real Time Clock (RTC)"
  - "1x DHT11 Temperature & Humidity Sensor (3 pins)"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x ESP8266 ESP-01"
  - "1x Stepper Motor, Mini Step"
  - "1x Alphanumeric LCD, 20 x 4"
  - "1x NCIR Unit Contactless Temperature Sensor Module (MLX90614)"
  - "1x Arduino Mega 2560"
description: "มาสร้างผู้ช่วยอัจฉริยะในบ้านกัน! ใช้ Arduino ควบคุมสวิตช์ไฟ ตรวจสอบอุณหภูมิ-ความชื้นในห้องและนอกบ้านแบบเรียลไทม์ แล้วยังสั่งงานผ่าน Blynk App และ Google Assistant ได้อีกด้วย งานนี้ตึงๆ วัยรุ่นต้องจัดไป!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1/Tkjy3eXM3SqNFEXEaq3sP5npe/ShsWvK+FQGKFnk5qm2pOMIc2LmPfDPHp8tarrljYkITEz9O0oCszOb7iVum8F82MQ3ENzs="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-home-assistant-4fc420_cover.jpg"
lang: "en"
likes: 3
passwordHash: "cbc27445c9de396537fb97f60f2fd3066b85bce003fc59052c24869d66bba1fd"
price: 2450
seoDescription: "Build an Arduino Home Assistant to control switches and monitor conditions using Blynk and Google Assistant."
tags:
  - "smart home"
  - "home automation"
  - "home monitoring"
  - "internet of things"
  - "google assistant"
title: "โปรเจคบ้านอัจฉริยะด้วย Arduino งานง่ายแต่หล่อ!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/DvMG6R1pNa8"
views: 4997