eBook: บทที่ 12 เรียนรู้และใช้งานบอร์ด Smart Building IoT บน Gateway Board

UTEN BOONLIAM Avatar
บทที่ 12

🌐

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

A close-up of a circuit board AI-generated content may be incorrect.

รูปที่ 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

A diagram of a computer AI-generated content may be incorrect.

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

A close-up of a circuit board AI-generated content may be incorrect.

รูปที่ 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 ได้ทันที

ขั้นตอนใช้งานไลบรารี:

  1. ติดตั้ง Git และ VsCode (ถ้าติดตั้งแล้วให้ข้ามขั้นตอนนี้ไปได้)

A screenshot of a computer AI-generated content may be incorrect.

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

A screenshot of a computer program AI-generated content may be incorrect.

รูปที่ 12.5 ตรวจสอบเวอร์ชัน Git

  1. 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

A screenshot of a computer AI-generated content may be incorrect.

รูปที่ 12.6 Clone ไลบรารีจาก GitHub ผ่าน VsCode

  1. เปิดโปรเจกต์ใน VsCode

A screenshot of a computer AI-generated content may be incorrect.

รูปที่ 12.7 เปิดโปรเจกต์ SmartBuilding360gateway บน VsCode

  1. รันสคริปต์ auto-download ไลบรารี

  • ที่โฟลเดอร์โปรเจ็ค ให้เปิด Terminal (คลิกขวาที่โฟลเดอร์ → Open in
    Integrated Terminal)

  • รันสคริปต์ที่เตรียมไว้สำหรับดาวน์โหลดไลบรารี่อัตโนมัติ

    • Windows: clone_repo.bat

    • macOS/Linux: ./clone_repo.sh

A screenshot of a computer program AI-generated content may be incorrect.

รูปที่ 12.8 ตัวอย่างการรันสคริปต์ clone_repo.sh เพื่อดาวน์โหลดไลบรารี

  1. ตรวจสอบไลบรารีที่ดาวน์โหลดใน lib/

  2. Build และ Upload ทดสอบ

A screenshot of a computer AI-generated content may be incorrect.

รูปที่ 12.9 แสดงไฟล์ไลบรารีที่ถูกดาวน์โหลด พร้อมสำหรับใช้งานบน VsCode.

🌐12.4 ทำการทดลองเขียนโค้ด โดยใช้ library smartbuilding360gateway

Example Code 12.1

แสดงตัวอย่างการอ่านค่าจากปุ่ม SW1, SW2 และ DIP Switch (SW3) จากบอร์ด Gateway
และแสดงผลผ่าน Serial Monitor และหน้าจอ OLED

A screenshot of a computer AI-generated content may be incorrect.

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

A qr code with a few black squares AI-generated content may be incorrect.

Example Code 12.2

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

A computer screen shot of a program AI-generated content may be incorrect.

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

A qr code with a few black squares AI-generated content may be incorrect.

Example Code 12.3

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

A screenshot of a computer program AI-generated content may be incorrect.

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

A qr code with a few black squares AI-generated content may be incorrect.

Example Code 12.4

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

A screenshot of a computer program AI-generated content may be incorrect.

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

A qr code with a few black squares AI-generated content may be incorrect.

Example Code 12.5

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

ในโค้ดตัวอย่างนี้ ผู้ใช้งานต้องทำการแก้ไขค่า WIFI_SSID และ WIFI_PASSWORD
ของเครือข่าย Wi-Fi ให้ตรงกับเครือข่ายที่ใช้งานจริง
โดยสามารถแก้ไขได้ในส่วนของโค้ดที่กำหนดค่าการเชื่อมต่อ Wi-Fi

A screenshot of a computer program AI-generated content may be incorrect.

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

A qr code with a few black squares AI-generated content may be incorrect.

🌐สรุปผลการเรียนรู้

  • เข้าใจส่วนประกอบและการเชื่อมต่อของ 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

Your email address will not be published. Required fields are marked *