eBook: บทที่ 3 เรียนรู้และทำความเข้าใจกับบอร์ด Smart Building IoT บน Sensor Board

UTEN BOONLIAM Avatar
บทที่ 3

📟

เรียนรู้และทำความเข้าใจกับบอร์ด Smart Building IoT บน Sensor Board

เรียนรู้และทำความเข้าใจกับบอร์ด Smart Building IoT (Sensor Board)

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

รูปที่ 3.1: บอร์ด Sensor พร้อม ESP32 และ LoRa
สำหรับเชื่อมต่อเซนเซอร์และส่งข้อมูลไร้สาย

📟3.1 บทนำ

บอร์ด Smart Building IoT (Sensor Board)
เป็นหัวใจสำคัญของระบบฝึกปฏิบัติด้านอาคารอัจฉริยะ
ที่ทำหน้าที่เชื่อมต่อและรับข้อมูลจากเซนเซอร์ประเภทต่าง ๆ เช่น อุณหภูมิ ความชื้น แสง เสียง
การสั่น และการเคลื่อนไหว จากนั้นจึงประมวลผลและส่งข้อมูลผ่านเครือข่าย LoRa ไปยัง
Gateway เพื่อจัดเก็บและแสดงผลบน Dashboard

Sensor Board ออกแบบมาให้เหมาะกับการเรียนรู้ในระดับมัธยมศึกษา อาชีวศึกษา
ไปจนถึงมหาวิทยาลัย โดยใช้ไมโครคอนโทรลเลอร์ ESP32 เป็นตัวประมวลผลหลัก
พร้อมวงจรเสริมที่ช่วยให้ผู้เรียนสามารถฝึกฝนการเขียนโค้ดเพื่อควบคุมอุปกรณ์ Input/Output
ได้อย่างครบถ้วนสามารถเขียนโปรแกรม, อัปโหลดโค้ด, และดีบักได้อย่างสะดวก PlatformIO
รองรับการทำงานกับบอร์ดและแพลตฟอร์มต่างๆ มากมาย เช่น Arduino, ESP32, Raspberry
Pi, และ STM32

📟3.2 โครงสร้างและส่วนประกอบของบอร์ด

Sensor Board ประกอบด้วยวงจรและคอนเน็กเตอร์หลายส่วน ซึ่งเชื่อมต่อกับ ESP32
โดยตรง โดยสามารถจำแนกเป็นหมวดหมู่หลัก ๆ ดังนี้:

ระบบจ่ายไฟและควบคุมพื้นฐาน:

  • DC Power Jack / DC-IN Terminal: จ่ายไฟเลี้ยง 12VDC ให้กับบอร์ด

  • Battery Connector / Charging Module: รองรับแบตเตอรี่ 3.7V
    สำหรับระบบสำรองไฟ(Optional)

อุปกรณ์อินพุต:

  • Tactile Switch (SW1, SW2): ปุ่มกดต่อกับ GPIO 34 และ 35

  • DIP Switch (SW3): ใช้เลื่อนขึ้นลงเพื่อควบคุมสถานะ ต่อกับ GPIO 36

  • Motion Sensor / Water Leak / ADC IN: ขาอินพุตสำหรับเซนเซอร์ต่าง
    ๆ

  • Potentiometer: ปรับค่าแรงดันไฟฟ้าเพื่อจำลองเซนเซอร์แบบอนาล็อก

อุปกรณ์เอาต์พุต:

  • Relay (COM/NO): ควบคุมการเปิด–ปิดอุปกรณ์ไฟฟ้า GPIO 25

  • Buzzer: สร้างเสียงเตือนผ่าน GPIO 13

  • OLED Display: แสดงข้อความและค่าต่าง ๆ ผ่าน I²C

  • Blue/Red LED: สำหรับทดสอบสถานะ GPIO

การสื่อสาร:

  • I2C / UART Connectors: เชื่อมต่อโมดูลและเซนเซอร์เสริม

  • LoRa Module (SLX1280): ส่งข้อมูลแบบไร้สายไปยัง Gateway

  • RS485 Connector: สำหรับสื่อสารกับอุปกรณ์ภายนอกระยะไกล

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

รูปที่ 3.2: Block Diagram การเชื่อมต่ออุปกรณ์ต่าง ๆ เข้ากับบอร์ด Smart Building
IoT (Sensor Board).A close-up of a circuit board AI-generated content may be incorrect.

รูปที่ 3.3: ตำแหน่งและองค์ประกอบต่าง ๆ บนบอร์ด Smart Building IoT (Sensor
Board)

หมายเลข รายละเอียด เพิ่มเติม
1 DC Power Jack แจ็คเสียบอะแดปเตอร์ 12VDC จ่ายไฟเลี้ยงให้กับบอร์ด (ต่อกับขั้วเทอร์มินอลหมายเลข 5
โดยตรง)
2 DC-IN Terminal ขั้วเทอร์มินอล 12VDC จ่ายไฟเลี้ยงให้กับบอร์ด
3 Battery Terminal Connector ขั้วเชื่อมต่อแบตเตอรี่ลิเธียม 3.7V (Optional)
4, 6 Tactile Switches สวิตช์กดติด/ปล่อยดับ SW1 และ SW2 ต่อขา 34 และ 35 ของ ESP32
สำหรับเขียนโปรแกรมและทดสอบ
5 DIP Switches สวิตช์เลื่อนขึ้น/ลง SW3 ต่อขา 36 ของ ESP32 สำหรับเขียนโปรแกรมและทดสอบ
7-8 I2C Connector คอนเนคเตอร์ I2C ใช้สาย SDA และ SCL สองเส้น เชื่อมต่ออุปกรณ์ I2C ต่างๆ
9 UART Connector คอนเนคเตอร์ UART ต่อขา 26 และ 27 ของ ESP32 (สามารถใช้เป็น Digital Input
ได้)
10 ADC0 Connector อนาล็อกอินพุต 0-5V เชื่อมต่อกับ ADS1115 พอร์ต AIN0
11 ADC1 Connector อนาล็อกอินพุต 0-5V เชื่อมต่อกับ ADS1115 พอร์ต AIN1
12 Motion Connector ดิจิทัลอินพุตสำหรับโมชันเซ็นเซอร์ ต่อขา 32 ของ ESP32
13 Water Leak Connector ดิจิทัลอินพุตสำหรับเซ็นเซอร์น้ำรั่ว ต่อขา 33 ของ ESP32
14 Potentiometers ตัวต้านทานปรับค่าได้ เชื่อมต่อกับ IC ADS1115 ที่พอร์ต AIN2
หมายเลข รายละเอียด เพิ่มเติม
15 Buzzer บัซเซอร์ชนิดความถี่ 2.048kHz ต่อกับขา 13 ของ ESP32
16 RS485 Connector โมดูล RS485 สำหรับการสื่อสารระยะไกล ทนต่อสัญญาณรบกวน เชื่อมต่อผ่าน UART
ESP32
17 Relay สวิตช์ควบคุมวงจรไฟฟ้า ต่อขา 25 ของ ESP32 ผ่าน COM/NO Terminal Connect
18 OLED Display จอ OLED 0.91″ 128×32 pixel I2C สำหรับแสดงสถานะและค่าจากเซนเซอร์
19 LoRa Module SLX1280 โมดูล LoRa SLX1280 433MHz SPI สำหรับรับส่งข้อมูลกับ Gateway
20 Red LED LED สีน้ำแดง ต่อขา 4 ของ ESP32
21 Blue LED LED สีน้ำเงิน ต่อขา 12 ของ ESP32
22 LoRa Antenna ขั้วต่อสายอากาศสำหรับ LoRa Module เพื่อเพิ่มระยะส่งสัญญาณ
23 ESP32-DOIT-DEVKIT-V1 ไมโครคอนโทรลเลอร์หลักของบอร์ด
24 5VDC-Out Connector ขั้วต่อสำหรับจ่ายไฟ 5 VDC ออกไปยังอุปกรณ์ภายนอก

ตารางที่ 3.1 หมายเลขตำแหน่งใช้งานที่สำคัญบนบอร์ด Smart Building IoT (Sensor
Board)

เพิ่มเติม:

ADS1115 เป็นชิปแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC) แบบ 16 บิต ที่สื่อสารผ่าน I2C
รองรับอินพุตได้ 4 ช่อง (หรือ 2 ช่องแบบ differential) พร้อมตัวขยายสัญญาณในตัว
(Programmable Gain Amplifier – PGA) เหมาะสำหรับใช้งานกับเซนเซอร์แรงดัน แสง
หรืออุณหภูมิที่ต้องการความแม่นยำสูง
และช่วยลดภาระการประมวลผลของไมโครคอนโทรลเลอร์

📟3.3 การเขียนโปรแกรมเบื้องต้น

โปรแกรมบน ESP32 ใช้ภาษา C++ ผ่าน Arduino Framework บน PlatformIO
โดยมีโครงสร้างพื้นฐาน 3 ส่วนหลัก ได้แก่:

Header:

  • ใช้ #include สำหรับเรียกใช้งานไลบรารี

  • ประกาศค่าคงที่ ตัวแปรต่าง ๆ

รูปที่ 3.4: ตัวอย่างโค้ดส่วน Header
สำหรับเรียกไลบรารีและกำหนดค่าขาใช้งานเบื้องต้น.

setup():

  • ทำงานเพียงครั้งเดียวเมื่อตัวบอร์ดเริ่มทำงาน

  • ใช้ตั้งค่า Pin Mode, Serial.begin, การเชื่อมต่อหน้าจอ ฯลฯ

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

รูปที่ 3.5: ตัวอย่างโค้ดในฟังก์ชัน setup() สำหรับตั้งค่า Pin Mode และเริ่มต้น Serial
Monitor.

loop():

  • ทำงานซ้ำตลอดเวลา

  • ใช้ตรวจสอบสถานะเซนเซอร์ แสดงผล หรือควบคุมอุปกรณ์

A close-up of text AI-generated content may be incorrect.

รูปที่ 3.6: ตัวอย่างโค้ดในฟังก์ชัน loop() สำหรับสั่งให้ไฟกระพริบทุก 1 วินาที.

โครงสร้างนี้ช่วยให้การพัฒนาโปรแกรมบน Arduino PlatformIO
เป็นไปอย่างมีระบบและเข้าใจง่าย

📟3.4 ตัวอย่างกิจกรรมพื้นฐาน

1. Example Code: Hello World บน Serial Monitor

  • สร้างโปรเจกต์ใหม่ใน PlatformIO

  • เขียนโค้ดให้แสดง “Hello World” ทุก 1 วินาที

  • เปิด Serial Monitor เพื่อตรวจสอบ

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

รูปที่ 3.7: ตัวอย่างโค้ดแสดงข้อความ “Hello World” บน Serial Monitor ทุก 1
วินาที.

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

2. Example Code: อ่านค่าสวิตช์ (SW1, SW2, SW3)

วัตถุประสงค์: เรียนรู้การอ่านค่าสวิตช์กดและเลื่อน (SW1, SW2, SW3) บนบอร์ด Sensor
Board เพื่อใช้เป็นตัวควบคุมเงื่อนไขในโค้ด

  • ใช้ digitalRead() อ่านสถานะ GPIO 34, 35, 36

  • ใช้ INPUT_PULLUP เพื่อความเสถียรของสัญญาณ

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

รูปที่ 3.8: ตัวอย่างโค้ดประกาศขา GPIO สำหรับปุ่มกด SW1, SW2 และ SW3.

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

3. Example Code: ควบคุมรีเลย์ (Relay)

วัตถุประสงค์: ควบคุมการเปิด–ปิดรีเลย์บนบอร์ด (Relay COM/NO)
เพื่อสวิตช์วงจรภายนอก

  • ใช้ digitalWrite(GPIO25, HIGH) เพื่อเปิดรีเลย์

  • ใช้ LOW เพื่อปิด และ HIGH เพื่อเปิด

A close-up of a computer code AI-generated content may be incorrect.

รูปที่ 3.9: ตัวอย่างโค้ดควบคุมรีเลย์โดยใช้คำสั่ง digitalWrite() บนขา GPIO25.

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

4. Example Code: แสดงข้อความบน OLED

วัตถุประสงค์: แสดงข้อความและตัวเลขบนจอ OLED I2C เพื่อใช้แสดงสถานะหรือค่าต่างๆ
แบบ Real Time

  1. ติดตั้งไลบรารี Adafruit_SSD1306, Adafruit_GFX

  1. เปิด PlatformIO Home (ไอคอน “หน้าบ้าน” บนแถบด้านซ้าย)

  2. เลือกเมนู Libraries

  3. พิมพ์ค้นหา Adafruit GFX → คลิกที่ผลลัพธ์ “Adafruit GFX Library” → ปุ่ม Add
    to Project

  4. เลือกโฟลเดอร์โปรเจกต์ของคุณ แล้วกด Add

  5. ทำซ้ำขั้นตอนเดียวกันกับ Adafruit SSD1306

  6. รอจน UI แจ้ง “has been installed!”

  7. ไลบรารีทั้งสองจะถูกเพิ่มลงในโฟลเดอร์ .pio/libdeps/<env>
    พร้อมอัปเดตไฟล์ lib_deps ใน platformio.ini ให้อัตโนมัติ

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

รูปที่ 3.10 หน้าต่างการค้นหาไลบรารี Adafruit_SSD1306 บน PlatformIO
เพื่อใช้งานจอ OLED.

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

รูปที่ 3.11 ตัวอย่างไฟล์ platformio.ini ที่กำหนดค่าไลบรารีจอ OLED และ GFX

  1. เขียนโค้ดแล้วดูการทำงานของบอร์ด

A computer code with text AI-generated content may be incorrect.

รูปที่ 3.12 ตัวอย่างโค้ดแสดงข้อความบนจอ OLED และแสดงสถานะของปุ่ม SW1.

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

5. Example Code: อ่านค่า Potentiometer ผ่าน ADS1115

วัตถุประสงค์: อ่านค่าแรงดันจาก Potentiometer ผ่าน ADC 16 bit ไอซี ADS1115
เพื่อความละเอียดสูง

  • ไลบรารีที่ต้องติดตั้ง: Adafruit_ADS1X15 ให้หาคำว่า “Adafruit
    ADS1X15”

  • อ่านค่าแรงดันไฟและแสดงผ่าน Serial

  • ทดลองปรับ Potentiometer แล้วดูค่าการเปลี่ยนแปลง

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

รูปที่ 3.13 ตัวอย่างโค้ดอ่านค่าแรงดันจาก Potentiometer ผ่านโมดูล ADC ADS1115

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

6. Example Code ควบคุม Buzzer

วัตถุประสงค์: เรียนรู้การควบคุมอุปกรณ์เอาต์พุตแบบเสียง (Buzzer) ด้วย Sensor
Board

  • ใช้ tone(GPIO13, 2000) เพื่อให้ส่งเสียง

  • ใช้ noTone() เพื่อหยุดเสียง

A computer code with numbers and symbols AI-generated content may be incorrect.

รูปที่ 3.14 ตัวอย่างโค้ดควบคุมเสียง Buzzer โดยใช้ tone() เพื่อส่งเสียง และ
noTone() เพื่อหยุดเสียง

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

📟3.5 การใช้ไลบรารี SmartBuilding360Hub

เพื่อให้การใช้งานบอร์ด Sensor Board เป็นไปอย่างมีประสิทธิภาพ
ทีมพัฒนาได้จัดทำไลบรารีพิเศษที่รวบรวมฟังก์ชันสำหรับควบคุมอุปกรณ์ทุกส่วนของบอร์ดไว้แล้ว
ช่วยลดความซับซ้อนและเพิ่มความสะดวก เช่น:

  • อ่านเซนเซอร์แบบง่าย

  • ควบคุมรีเลย์, LED, Buzzer

  • แสดงผลบน OLED

  • สื่อสารผ่าน LoRa / MQTT ได้ทันที

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

  1. ติดตั้ง Git และ VsCode

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

รูปที่ 3.15 หน้าเว็บไซต์สำหรับดาวน์โหลด Git เพื่อใช้งานร่วมกับ vSCode

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

รูปที่ 3.16 ตรวจสอบเวอร์ชัน Git ที่ติดตั้งแล้วผ่านคำสั่ง git –version บน Command
Prompt

  1. Clone ไลบรารีจาก GitHub:

  • เปิด vSCode

  • ไปที่เมนู Source Control (ไอคอนรูปกิ่งไม้) หรือกด Ctrl+Shift+P พิมพ์ “Git:
    Clone”

  • คลิกไปที่ clone Repository

  • กรอก URL ของไลบรารี่หรือโปรเจ็ค คือ
    https://github.com/tenergyinnovation/smartbuilding360hub.git

  • เลือกโฟลเดอร์ปลายทางที่ต้องการให้ดาวน์โหลดไฟล์ลงเครื่อง

https://github.com/tenergyinnovation/smartbuilding360hub.git

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

รูปที่ 3.17 ขั้นตอนการ Clone ไลบรารีจาก GitHub ผ่าน VsCode โดยกรอก URL
โปรเจกต์

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

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

รูปที่ 3.18 เปิดโปรเจกต์ SmartBuilding360Hub บน VsCode หลังจาก Clone
เสร็จแล้ว

  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.

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

  1. ตรวจสอบไลบรารีที่อยู่ใน lib/

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

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

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

📟3.6 ทำการทดลองเขียนโค้ดรับค่าสวิตช์ โดยใช้ library smartbuilding360hub

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

รูปที่ 3.21 ตัวอย่างโค้ดทดสอบการทำงานของปุ่มและรีเลย์ โดยใช้ไลบรารี
smartbuilding360hub

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

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

  • เข้าใจส่วนประกอบและการเชื่อมต่อของ Sensor Board

  • ฝึกเขียนโปรแกรมเบื้องต้นควบคุมอุปกรณ์ต่าง ๆ บนบอร์ด

  • ใช้งานไลบรารี SmartBuilding360Hub
    เพื่อประหยัดเวลาและลดข้อผิดพลาด

  • เตรียมความพร้อมสำหรับการทดลองร่วมกับเซนเซอร์อื่น ๆ ในบทถัดไป

✅ คำถามท้ายใบงาน 💡

1.บอร์ด Smart Building IoT (Sensor Board)
ใช้ไมโครคอนโทรลเลอร์รุ่นใดเป็นตัวประมวลผลหลัก?

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

2.ขา GPIO ใดของ ESP32 ที่เชื่อมต่อกับปุ่มกด SW1, SW2 และ DIP Switch?

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

3.ถ้าเราต้องการให้รีเลย์ทำงานเมื่อปุ่ม SW1 ถูกกด ควรเขียนคำสั่งอย่างไร?

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

📝 พื้นที่สรุปผลการเรียนรู้

🔹 หลังจากทำกิจกรรมและศึกษาข้อมูลจากชุดฝึกนี้ ฉันได้เรียนรู้ว่า

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

🔹 ความเข้าใจเพิ่มเติมที่ได้รับจากใบงานนี้คือ

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

🔹 ข้อเสนอแนะ/ข้อสงสัยเพิ่มเติม

…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………

“ทุกข้อมูลเริ่มต้นจากความรู้สึกของเซนเซอร์”

“Every insight begins with what the sensor
senses”

Leave a Reply

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