🌐
เรียนรู้และใช้งานบอร์ด Smart Building IoT บน Gateway Board

รูปที่ 12.1 บอร์ด Gateway สำหรับควบคุมและสื่อสารในระบบ Smart Building IoT
🌐12.1 บทนำ
ในการออกแบบระบบอาคารอัจฉริยะ (Smart Building) หรือระบบ IoT (Internet of
Things) สิ่งสำคัญไม่ใช่แค่การเก็บข้อมูลจากเซนเซอร์ แต่ยังรวมถึง การรวบรวม ประมวลผล
และส่งต่อข้อมูลไปยังผู้ใช้งานหรือระบบกลาง ได้อย่างถูกต้องและปลอดภัย
ซึ่งองค์ประกอบสำคัญที่จะทำหน้าที่นี้ก็คือ “Gateway”
Gateway Board เปรียบเสมือน “ศูนย์บัญชาการ” ของระบบ IoT
มีหน้าที่เชื่อมโยงระหว่างอุปกรณ์ภาคสนาม (เช่น เซนเซอร์) กับระบบแสดงผลหรือ Cloud
โดยทำหน้าที่:
-
รับข้อมูลจากเซนเซอร์ต่าง ๆ เช่น ผ่าน LoRa, RS485 หรือ UART
-
ประมวลผลข้อมูลเบื้องต้น เช่น ตรวจสอบค่าเกินกำหนด, แจ้งเตือน
-
แสดงผลสถานะผ่านจอ OLED หรือเสียง
-
ควบคุมอุปกรณ์ภายนอก เช่น รีเลย์, มอเตอร์ หรือไฟส่องสว่าง
-
ส่งข้อมูลไปยัง Dashboard หรือ Cloud ผ่าน Ethernet หรือ Wi-Fi
ทำไมระบบ Smart Building ต้องมี Gateway?
ในระบบขนาดใหญ่หรือที่ต้องการความแม่นยำสูง ไม่สามารถให้เซนเซอร์แต่ละตัวสื่อสารกับ
Server โดยตรง เนื่องจาก:
-
เซนเซอร์มักมีข้อจำกัดด้านพลังงานหรือความสามารถในการประมวลผล
-
จำเป็นต้องมีจุดกลางที่จัดการโปรโตคอลต่าง ๆ เช่น LoRa, RS485, MQTT
-
เพื่อรวมข้อมูลจากหลายอุปกรณ์และลดภาระของ Server
-
เพิ่มความปลอดภัยและความยืดหยุ่นในการควบคุม
ยกตัวอย่างการใช้งาน Gateway
-
บ้านอัจฉริยะ → Gateway รับค่าความสว่างจากเซนเซอร์ →
เปิด/ปิดไฟอัตโนมัติ -
ฟาร์มอัจฉริยะ → รับค่าความชื้นจากหลายแปลง →
สั่งปั๊มน้ำเฉพาะพื้นที่ที่ต้องการ -
โรงงานอุตสาหกรรม → เก็บข้อมูลพลังงานจากเพาเวอร์มิเตอร์ →
แจ้งเตือนโหลดเกินผ่าน Dashboard -
โรงเรียน/มหาวิทยาลัย → ตรวจจับคนเข้าออกผ่าน RFID →
บันทึกเวลาเข้าเรียน
🌐12.2 โครงสร้างและส่วนประกอบของบอร์ด
Gateway Board ประกอบด้วยวงจรและคอนเน็กเตอร์หลายส่วน ซึ่งเชื่อมต่อกับ ESP32
โดยตรง โดยสามารถจำแนกเป็นหมวดหมู่หลัก ๆ ดังนี้:
ระบบจ่ายไฟและควบคุมพื้นฐาน:
-
DC Power Jack / DC-IN Terminal: จ่ายไฟเลี้ยง 12VDC ให้กับบอร์ด
อุปกรณ์ Input :
-
Tactile Switch (SW1, SW2): ปุ่มกดควบคุมหรือกำหนดค่า ต่อกับ GPIO 34 และ
35 -
DIP Switch: ใช้กำหนดสถานะหรือเลือกโหมดการทำงาน ต่อกับ GPIO 36
-
RS485 Input: รับข้อมูลจากอุปกรณ์ภายนอก เช่น เพาเวอร์มิเตอร์
หรือเซนเซอร์อุตสาหกรรม -
RTC Module (DS3231): จับเวลาจริง พร้อมแบตเตอรี่สำรอง สำหรับงานที่ต้องการ
timestamp
อุปกรณ์ Output :
-
Relay 4 ช่อง (CH1–CH4): ควบคุมอุปกรณ์ไฟฟ้าแบบเปิด–ปิด ผ่านขา COM/NO (ใช้
GPIO 13, 14, 26, 27) -
Buzzer: แจ้งเตือนด้วยเสียง เมื่อเกิดเงื่อนไขต่าง ๆ เช่น เกินค่าเซนเซอร์ (GPIO
33) -
OLED Display: แสดงข้อมูล เช่น สถานะอุปกรณ์ ค่าเซนเซอร์ หรือเวลาจาก RTC
ผ่าน I²C
การสื่อสาร:
-
LoRa Module (433 MHz): รับข้อมูลจาก Sensor Board แบบไร้สาย
-
RS485 (Modbus RTU): สื่อสารกับอุปกรณ์ในระบบ เช่น เพาเวอร์มิเตอร์, PLC,
หรืออุปกรณ์อุตสาหกรรม -
Ethernet Port (W5500): เชื่อมต่อเครือข่าย LAN เพื่อสื่อสารกับ Cloud หรือ
Dashboard -
UART / I2C / RS232: สำหรับเชื่อมต่อโมดูลเพิ่มเติม เช่น RFID Reader, GPS,
หรือเซนเซอร์ชนิดพิเศษ -
Wi-Fi / ESP-NOW / Mesh: รองรับการเชื่อมต่อไร้สายเพิ่มเติมผ่าน
ESP32

รูปที่ 12.2 Block Diagram การเชื่อมต่ออุปกรณ์ต่าง ๆ เข้ากับบอร์ด Smart Building
IoT (Gateway Board).

รูปที่ 12.3: ตำแหน่งและองค์ประกอบต่าง ๆ บนบอร์ด Smart Building IoT (Gateway
Board)
| หมายเลข | รายละเอียด | เพิ่มเติม |
|---|---|---|
| 1-4 | Relay1-Relay4 | ใช้เป็นสวิตช์ควบคุมการเปิด-ปิดวงจรไฟฟ้า ต่อกับขา 32,33,25 และ12 ของ ESP32 โดยในบอร์ดจะต่อขา COM และ NO มาใช้งาน ผ่าน Terminal Connect ด้านซ้ายมือ |
| 5 | DC-IN Terminal | ขั้วเทอร์มินอล 12VDC จ่ายไฟเลี้ยงให้กับบอร์ด |
| 6 | DC Power Jack | แจ็คเสียบอะแดปเตอร์ 12VDC จ่ายไฟเลี้ยงให้กับบอร์ด (ต่อกับขั้วเทอร์มินอลหมายเลข 5 โดยตรง) |
| 7 | ESP32-DOIT-DEVKIT-V1 | ไมโครคอนโทรลเลอร์ประมวลผลหลัก |
| 8-9 | Tactile Switches | สวิตช์กดติด/ปล่อยดับ SW1, SW2 ต่อขา 34 และ 35 ของ ESP32 สำหรับเขียนโปรแกรมและทดสอบ |
| 10 | DIP Switches | สวิตช์เลื่อนขึ้น/ลง SW3 ต่อขา 36 ของ ESP32 สำหรับเขียนโปรแกรมและทดสอบ |
| 11 | Buzzer | บัซเซอร์ชนิดความถี่ 2.048kHz ต่อกับขา 13 ของ ESP32 |
| 12 | GPIO Connector | คอนเนคเตอร์เชื่อมต่อกับขา 32, 33, 25, 12 ของ ESP32 สำหรับใช้งานเป็น Digital I/O |
| 13 | UART Connector | ขั้วต่อสื่อสารแบบ UART บนขา ESP32 (GPIO 26 และ 27) (สามารถใช้เป็นขา Digital Input ได้) |
| หมายเลข | รายละเอียด | เพิ่มเติม |
| 14 | I2C Connector | ขั้วต่อ I²C ใช้เส้น SDA และ SCL สำหรับอุปกรณ์ I²C ภายนอก |
| 15 | RS485 Connector | โมดูล RS-485 สำหรับการสื่อสารระยะไกล ทนสัญญาณรบกวน ผ่าน UART ของ ESP32 |
| 16 | Battery Backup | แบตเตอรี่สำรอง 3 VDC สำหรับ DS3231 RTC เพื่อรักษาเวลาขณะไฟหลักดับ |
| 17 | OLED Display | จอ OLED ขนาด 0.91″ ความละเอียด 128×32 พิกเซล แบบ I²C สำหรับแสดงสถานะและข้อมูลเซนเซอร์ |
| 18 | I2C Connector | ขั้วต่อ I²C สำรอง รองรับการต่อโมดูลหลายตัวพร้อมกัน |
| 19 | I2C Connector | ขั้วต่อ I²C สำรอง รองรับการต่อโมดูลหลายตัวพร้อมกัน |
| 20 | LoRa Module SLX1280 | โมดูล SLX1280 ความถี่ 433 MHz แบบ SPI สำหรับสื่อสารกับบอร์ดเซนเซอร์ |
| 21 | RJ45 Ethernet Port | พอร์ต RJ45 สำหรับเชื่อมต่อ LAN/Internet ผ่านโมดูล Ethernet W5500 |
| 22 | LoRa Antenna | ขั้วต่อเสาอากาศสำหรับโมดูล LoRa เพื่อขยายช่วงการส่ง |
ตารางที่ 12.1: แสดงหมายเลขตำแหน่งใช้งานบนบอร์ด Smart Building IoT (Gateway
Board)
🌐12.3 การใช้ไลบรารี SmartBuilding360Gateway
เพื่อให้การใช้งานบอร์ด Sensor Board เป็นไปอย่างมีประสิทธิภาพ
ทีมพัฒนาได้จัดทำไลบรารีพิเศษที่รวบรวมฟังก์ชันสำหรับควบคุมอุปกรณ์ทุกส่วนของบอร์ดไว้แล้ว
ช่วยลดความซับซ้อนและเพิ่มความสะดวก เช่น:
-
อ่านเซนเซอร์แบบง่าย
-
ควบคุมรีเลย์, LED, Buzzer
-
แสดงผลบน OLED
-
สื่อสารผ่าน LoRa / MQTT ได้ทันที
ขั้นตอนใช้งานไลบรารี:
-
ติดตั้ง Git และ VsCode (ถ้าติดตั้งแล้วให้ข้ามขั้นตอนนี้ไปได้)

รูปที่ 12.4 หน้าเว็บไซต์สำหรับดาวน์โหลด Git

รูปที่ 12.5 ตรวจสอบเวอร์ชัน Git
-
Clone ไลบรารีจาก GitHub:
-
เปิด VsCode
-
ไปที่เมนู Source Control (ไอคอนรูปกิ่งไม้) หรือกด Ctrl+Shift+P พิมพ์ “Git:
Clone” -
คลิกไปที่ clone Repository
-
กรอก URL ของไลบรารี่หรือโปรเจ็ค คือ
https://github.com/tenergyinnovation/smartbuilding360gateway.git -
เลือกโฟลเดอร์ปลายทางที่ต้องการให้ดาวน์โหลดไฟล์ลงเครื่อง
https://github.com/tenergyinnovation/smartbuilding360gateway.git

รูปที่ 12.6 Clone ไลบรารีจาก GitHub ผ่าน VsCode
-
เปิดโปรเจกต์ใน VsCode
รูปที่ 12.7 เปิดโปรเจกต์ SmartBuilding360gateway บน VsCode
-
รันสคริปต์ auto-download ไลบรารี
-
ที่โฟลเดอร์โปรเจ็ค ให้เปิด Terminal (คลิกขวาที่โฟลเดอร์ → Open in
Integrated Terminal) -
รันสคริปต์ที่เตรียมไว้สำหรับดาวน์โหลดไลบรารี่อัตโนมัติ
-
Windows: clone_repo.bat
-
macOS/Linux: ./clone_repo.sh
-

รูปที่ 12.8 ตัวอย่างการรันสคริปต์ clone_repo.sh เพื่อดาวน์โหลดไลบรารี
-
ตรวจสอบไลบรารีที่ดาวน์โหลดใน lib/
-
Build และ Upload ทดสอบ

รูปที่ 12.9 แสดงไฟล์ไลบรารีที่ถูกดาวน์โหลด พร้อมสำหรับใช้งานบน VsCode.
🌐12.4 ทำการทดลองเขียนโค้ด โดยใช้ library smartbuilding360gateway
Example Code 12.1
แสดงตัวอย่างการอ่านค่าจากปุ่ม SW1, SW2 และ DIP Switch (SW3) จากบอร์ด Gateway
และแสดงผลผ่าน Serial Monitor และหน้าจอ OLED

รูปที่ 12.10 ตัวอย่างโค้ดอ่านค่าปุ่ม SW1, SW2 และ DIP Switch

Example Code 12.2
แสดงการควบคุมการทำงานของ Relay 1 ถึง Relay 4 โดยใช้คำสั่งผ่านโปรแกรม
และแสดงผลผ่าน Serial Monitor และหน้าจอ OLED

รูปที่ 12.11 โค้ดควบคุม Relay 1–4 และแสดงผลผ่าน Serial และ OLED

Example Code 12.3
อ่านค่าปัจจุบันจากโมดูล RTC (DS3231) และแสดงผลวันที่และเวลาแบบเรียลไทม์ผ่าน
Serial Monitor และ OLED

รูปที่ 12.12 ตัวอย่างโค้ดอ่านค่าวันที่และเวลาแบบเรียลไทม์จากโมดูล RTC (DS3231)

Example Code 12.4
ตั้งค่าระบบเวลาให้กับ RTC โดยใช้ปุ่ม SW1 และ SW2 เพื่อปรับชั่วโมงและนาที
จากนั้นบันทึกลง RTC และแสดงค่าที่ตั้งไว้ผ่าน OLED

รูปที่ 12.13 ตัวอย่างโค้ดตั้งค่าเวลาให้กับโมดูล RTC โดยใช้ปุ่ม SW1 และ SW2

Example Code 12.5
เชื่อมต่อ Wi-Fi เพื่อดึงข้อมูลเวลาปัจจุบันจาก Time Server (NTP) และทำการปรับเวลา
(Sync) เข้ากับโมดูล RTC (DS3231) บนบอร์ด Gateway โดยอัตโนมัติ
ในโค้ดตัวอย่างนี้ ผู้ใช้งานต้องทำการแก้ไขค่า WIFI_SSID และ WIFI_PASSWORD
ของเครือข่าย Wi-Fi ให้ตรงกับเครือข่ายที่ใช้งานจริง
โดยสามารถแก้ไขได้ในส่วนของโค้ดที่กำหนดค่าการเชื่อมต่อ Wi-Fi

รูปที่ 12.14 ตัวอย่างโค้ดเชื่อมต่อ Wi-Fi เพื่อดึงเวลาจาก Time Server (NTP)
และซิงค์เวลาเข้าสู่โมดูล RTC (DS3231) บนบอร์ด Gateway โดยอัตโนมัติ

🌐สรุปผลการเรียนรู้
-
เข้าใจส่วนประกอบและการเชื่อมต่อของ Gateway Board
-
ฝึกเขียนโปรแกรมเบื้องต้นควบคุมอุปกรณ์ต่าง ๆ บนบอร์ด
-
ใช้งานไลบรารี SmartBuilding360gateway
เพื่อประหยัดเวลาและลดข้อผิดพลาด -
เตรียมความพร้อมสำหรับการทดลองร่วมกับเซนเซอร์อื่น ๆ ในบทถัดไป
✅ คำถามท้ายใบงาน 💡
1.บอร์ด Smart Building IoT (Gateway Board)
ใช้ไมโครคอนโทรลเลอร์รุ่นใดเป็นตัวประมวลผลหลัก?
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
2.ขา GPIO ใดของ ESP32 ที่เชื่อมต่อกับปุ่มกด SW1, SW2 และ DIP Switch?
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
3.หากต้องการควบคุมรีเลย์ให้เปิด–ปิด 1 – 4 ได้ด้วยโค้ด ต้องใช้คำสั่งอะไร
และเชื่อมต่อกับขา GPIO หมายเลขใด?
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
📝 พื้นที่สรุปผลการเรียนรู้
🔹 หลังจากทำกิจกรรมและศึกษาข้อมูลจากชุดฝึกนี้ ฉันได้เรียนรู้ว่า…
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
🔹 ความเข้าใจเพิ่มเติมที่ได้รับจากใบงานนี้คือ…
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
🔹 ข้อเสนอแนะ/ข้อสงสัยเพิ่มเติม
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
“เกตเวย์ที่ดี ต้องไม่เพียงส่งข้อมูล แต่ส่งโอกาส”
“A good gateway transmits more than data—it transmits
opportunity..”





Leave a Reply