ARTICLE

Connectivity และ IoT Integration คืออะไร? จาก Sensor/ESP32 ไป Gateway, Home Assistant และระบบจริง.

ปูภาพรวมการเชื่อม Sensor, ESP32, RS485, Wi-Fi/Ethernet, Modbus, MQTT, HTTP/API, ESPHome และ Gateway ให้เป็นระบบ IoT ที่วัด ควบคุม และทำงานแบบ Local-first ได้อย่างมีขอบเขต

IoTAutomationElectricalโดย Thospaakเผยแพร่ 10 ต.ค. 2569อัปเดต 10 ต.ค. 2569

หลังจากเราเข้าใจ Sensor, Actuator และ ESP32 แล้ว ปัญหาถัดไปคือทำอย่างไรให้แต่ละอุปกรณ์คุยกันเป็นระบบ ไม่ใช่แค่ต่อ Sensor หนึ่งตัวกับบอร์ดหนึ่งตัวแล้วจบ

ระบบจริงมักมีหลายชั้น:

Physical world
    ↓
Sensor / Meter / Actuator
    ↓
Electrical interface
    ↓
ESP32 / Controller
    ↓
Field bus / Network
    ↓
Protocol
    ↓
Gateway / Home Assistant / EMS / Service
    ↓
Automation / Dashboard / Optimization

คำว่า Connectivity จึงไม่ได้หมายถึง “ต่อ Wi-Fi ได้” อย่างเดียว แต่รวมถึง physical layer, network, protocol, data contract, availability และ failure behavior ทั้งเส้น

เริ่มจากแยก Layer ให้ถูก

ตัวอย่างที่มักถูกใช้ปนกัน:

UART      = peripheral/serial interface ของ MCU
RS485     = electrical/physical serial bus
Modbus    = application protocol
Ethernet  = network/link technology
Wi-Fi     = wireless network access
MQTT      = publish/subscribe messaging protocol
HTTP      = request/response application protocol
ESPHome   = firmware/integration platform

อุปกรณ์หนึ่งตัวอาจใช้หลายคำพร้อมกัน เช่น:

Energy Meter
  ↓ Modbus RTU
RS485
  ↓
ESP32 Gateway
  ↓ Wi-Fi / Ethernet
MQTT
  ↓
Home Assistant

การแยก layer ทำให้ troubleshooting ง่ายขึ้นมาก เพราะเรารู้ว่าปัญหาเกิดที่สาย, network, protocol หรือ application

Sensor ใกล้ MCU กับ Sensor ภาคสนามไม่เหมือนกัน

Sensor บน PCB หรือสายสั้นอาจใช้:

  • GPIO
  • ADC
  • I²C
  • SPI
  • UART

ได้สะดวก

แต่เมื่อระยะไกลขึ้นและ environment มี EMI, ground difference หรือสายผ่านพื้นที่จริง การใช้ interface ที่ออกแบบสำหรับ field มากขึ้นอาจเหมาะกว่า เช่น:

  • RS485
  • Ethernet
  • 4–20 mA
  • CAN
  • protocol/gateway ที่เหมาะกับระบบ

ดังนั้นสิ่งที่ทำงานบน Breadboard ไม่ควรถูกขยายเป็นสายหลายสิบเมตรโดยอัตโนมัติ

อ่านพื้นฐาน physical bus ต่อที่ RS485 คืออะไร

RS485 กับ Modbus ไม่ใช่สิ่งเดียวกัน

หนึ่งในความสับสนที่พบบ่อยที่สุดคือเรียก RS485 กับ Modbus แทนกัน

RS485
= วิธีส่งสัญญาณไฟฟ้าบน serial bus

Modbus RTU
= protocol ที่มักวิ่งบน RS485

อุปกรณ์มี RS485 ไม่ได้แปลว่ารองรับ Modbus เสมอ และอุปกรณ์ Modbus ก็มีทั้ง Serial/RTU และ TCP/IP

อ่านต่อที่ Modbus คืออะไร

Wi-Fi กับ Ethernet เลือกจากบทบาทของ Node

Wi-Fi เหมาะมากกับอุปกรณ์ที่:

  • เพิ่มภายหลังได้ง่าย
  • เดินสาย network ยาก
  • data rate ไม่สูง
  • ตำแหน่งเปลี่ยนได้
  • battery/wireless ecosystem มีความหมาย

Ethernet เหมาะกับ infrastructure ที่ต้องการ:

  • link คงที่
  • latency/predictability ที่ดีกว่า wireless ในหลายสภาพแวดล้อม
  • ลด dependence ต่อ RF coverage
  • gateway/server/controller ที่อยู่กับที่

แต่คำตอบไม่ใช่ “Ethernet ดีกว่าเสมอ” หรือ “Wi-Fi พอทุกอย่าง”

อ่านรายละเอียดที่ Wi-Fi vs Ethernet สำหรับ IoT

MQTT กับ HTTP/API ตอบโจทย์ต่างกัน

ถ้าต้องการให้ Sensor ส่ง telemetry แล้วมีหลายระบบรับต่อ:

ESP32 → MQTT Broker → Home Assistant
                  ├→ Database
                  └→ Alert service

MQTT เหมาะกับ publish/subscribe และ decoupling

ถ้าต้องการเรียก resource หรือ operation แบบ request/response:

Client → HTTP request → API
       ← response ←

HTTP/API มักตรงกว่า

ระบบจริงสามารถใช้ทั้งสองอย่างพร้อมกันได้

อ่านพื้นฐาน MQTT ที่ MQTT คืออะไร และการเลือก architecture ที่ MQTT vs HTTP/API

Gateway มีไว้ทำมากกว่าแปลง Protocol

Gateway ที่ดีอาจทำหน้าที่:

  • รวมหลาย field device
  • อ่าน Modbus register
  • normalize unit/data type
  • timestamp ข้อมูล
  • buffer เมื่อ uplink ล่ม
  • enforce read/write permission
  • publish MQTT
  • expose API
  • แยก OT/device network ออกจาก application network

ตัวอย่าง:

Meter A ─┐
Meter B ─┼─ RS485 / Modbus ─→ Edge Gateway ─→ MQTT/API
Sensor C ┘                           ↓
                                Local logic

ทำให้ Sensor/Meter ภาคสนามไม่จำเป็นต้องรู้จัก Cloud หรือ service ทุกตัว

อ่านต่อที่ IoT Gateway / Edge Controller คืออะไร

ESPHome อยู่ตรงไหน

ESPHome ช่วยสร้าง firmware/integration สำหรับ MCU ที่รองรับโดยใช้ configuration-oriented workflow และมี component สำหรับ Sensor, GPIO, Wi-Fi/Ethernet, MQTT, Native API และ Modbus หลายรูปแบบ

จึงเหมาะกับงานที่ ecosystem รองรับและเราไม่ต้องการเขียน firmware stack ทุกส่วนเอง

แต่ ESPHome ไม่ได้ทำให้ข้อจำกัดทางไฟฟ้า/network หายไป:

ESPHome config
≠
ถูก wiring อัตโนมัติ
≠
Sensor ถูก calibration อัตโนมัติ
≠
Safety protection

อ่านต่อที่ ESPHome คืออะไร

Home Assistant ควรใช้ Native API หรือ MQTT

ถ้า ESPHome node ใช้กับ Home Assistant โดยตรง มีทั้ง Native API และ MQTT เป็นทางเลือกตาม architecture

คำถามไม่ใช่ว่า protocol ไหน “ดีกว่า” แต่คือ:

  • ต้องมี Broker หรือไม่
  • มี consumer นอกจาก Home Assistant หรือไม่
  • ต้องการ decouple data จาก Home Assistant แค่ไหน
  • node ต้องทำงาน local เมื่อระบบกลางล่มหรือไม่
  • operational complexity ที่ยอมรับได้เท่าไร

อ่านเปรียบเทียบที่ ESPHome Native API vs MQTT

Local-first ไม่ได้แปลว่าไม่มี Network

Local-first หมายถึง function สำคัญไม่ควรต้องวิ่งออก Internet ทุกครั้งก่อนทำงาน

ตัวอย่าง Smart Farm:

Soil Sensor
   ↓
Local Controller
   ↓
Valve / Pump logic

Internet / Cloud
   ↓
Remote dashboard / analytics

ถ้า Internet ล่ม ระบบรดน้ำที่จำเป็นอาจยังทำงานตาม local policy ได้

เช่นเดียวกับ Smart Home:

Presence Sensor
   ↓
Local automation
   ↓
Light

ไม่ควรต้องรอ Cloud round-trip หาก use case ต้องการ latency ต่ำและ resilience

Data Freshness ต้องเป็นส่วนหนึ่งของระบบ

การได้รับค่าหนึ่งครั้งไม่ได้แปลว่าค่านั้นยังเป็น “ค่าปัจจุบัน”

ระบบควรแยก:

value = 28.4 °C
last_update = 30 seconds ago
status = fresh

ออกจาก:

value = 28.4 °C
last_update = 8 hours ago
status = stale

ก่อนใช้ข้อมูลกับ control ต้องมี policy เช่น:

  • stale timeout
  • unavailable state
  • reconnect behavior
  • fallback
  • maximum hold-last duration ถ้ามี

Command Ownership สำคัญเมื่อมีหลาย Controller

ถ้า Pump ถูกสั่งได้จาก:

  • ESP32 local logic
  • Home Assistant
  • Cloud dashboard
  • Manual switch
  • PLC

ต้องกำหนดว่าใครเป็น owner ในแต่ละ mode

ไม่ควรปล่อยให้หลายระบบเขียน setpoint/ON-OFF พร้อมกันโดยไม่มี arbitration เพราะจะเกิด controller fighting

ตัวอย่างที่ชัดกว่า:

AUTO_LOCAL
MANUAL_LOCAL
REMOTE_CONTROL
MAINTENANCE
FAULT_LOCKOUT

แล้วกำหนดว่าแต่ละ mode ใครมีสิทธิ์สั่ง

Connectivity ≠ Control ≠ Safety

กฎสำคัญของ Thospaak ใน layer นี้คือ:

Connectivity
     ≠
Control ownership
     ≠
Safety

MQTT message, Modbus register, Home Assistant entity หรือ ESPHome automation ไม่ใช่ตัวแทนของ:

  • breaker/fuse
  • overload protection
  • RCD/RCBO
  • emergency stop/isolation
  • pressure relief
  • motor protection
  • equipment-native interlock

เมื่อ software/network ล้ม protection ที่จำเป็นต้องยังทำงานตาม design ของระบบ

Learning path ที่เหมาะ

ถ้าจะต่อจาก PR24/PR25 ให้เรียนตามลำดับนี้:

ESP32 / UART
    ↓
RS485
    ↓
Modbus
    ↓
Wi-Fi / Ethernet
    ↓
MQTT / HTTP / Native API
    ↓
ESPHome / Gateway
    ↓
Home Assistant / EMS
    ↓
Smart Home / Smart Farm

เป้าหมายไม่ใช่จำ protocol ให้เยอะ แต่คือ รู้ว่าแต่ละ layer แก้ปัญหาอะไร และระบบควรทำอย่างไรเมื่อ layer ใด layer หนึ่งล้ม