Professional Documents
Culture Documents
คู่มือการสอนอินเทอร์เน็ตในทุกสรรพสิ่งขั้นสูง
คู่มือการสอนอินเทอร์เน็ตในทุกสรรพสิ่งขั้นสูง
คูมือ
Advanced IoT
อินเตอรเน็ตในทุกสรรพสิ่งขั้นสูง
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
สารบัญ
หนวยการเรียนรูที่ 1 ระบบปฏิบัติการและการใชงานคอมพิวเตอรบอรดเดี่ยว 1
ใบงานที่ 1.1 ติดตั้งและใชงานระบบปฏิบัติการบน Raspberry Pi 3
ใบงานที่ 1.2 การเปดใชงาน VNC Viewer และการตั้งคา IP สําหรับ Raspberry Pi 13
คําถามทายหนวยการเรียนรูที่ 1 34
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 1
หนวยการเรียนรูที่ 1
ระบบปฏิบัติการและการใชงานคอมพิวเตอรบอรดเดี่ยว
จุดประสงค
1. เรียนรู้หลักการทํางานของระบบปฏิบัติการบนคอมพิวเตอร์
2. เรียนรู้การติดตั้งระบบปฏิบัติการของคอมพิวเตอร์บนคอมพิวเตอร์บอร์ดเดี่ยว
ตัวชี้วัด
1. สามารอธิบายการทํางานของระบบปฏิบัติการบนคอมพิวเตอร์ได้
2. สามารถติดตั้งระบบปฏิบัติการของคอมพิวเตอร์บนคอมพิวเตอร์บอร์ดเดี่ยวได้
3. สามารถใช้คาํ สั่งพื้นฐานของระบบปฏิบัติการบนคอมพิวเตอร์ได้
สาระการเรียนรู
เนื้อหา
ศึกษาและปฏิบัติเกี่ยวกับ Raspberry Pi ที่เปนคอมพิวเตอรขนาดเล็ก หรือ คอมพิวเตอรบอรดเดี่ยว
(Single Board Computer) ที่จะนํามาประยุกตเปน IoT Gateway และ IoT Server โดยศึกษาเกี่ยวกับ
ขอมูลเบื้องตนเกี่ยวกับ Raspberry Pi พรอมทั้งการติดตั้งระบบปฏิบัติการของคอมพิวเตอรใหกับ Raspberry
Pi เพื่อให Raspberry Pi สามารถทํางานได ศึกษาเกี่ยวกับทําการเขาใชงาน Raspberry Pi ผานการ Remote
ในรูปแบบตางๆ คือ SSH หรือ VNC และศึกษาการตั้งคา Raspberry Pi เบื้องตน เพื่อเตรียมความพรอมสูการ
ประยุกตใช Raspberry Pi ในงานดาน IoT ในเนื้อหาบทตอไป
ความรูเดิมที่ตองมี
1. การใช้งานคอมพิวเตอร์พื้นฐาน
2. หลักการทํางานของ IoT Gateway และ IoT Server
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 2
แนวทางการจัดการเรียนรู
การจัดเตรียม
1. ใบงานตามจํานวนนักศึกษา
2. เครื่องคอมพิวเตอร์
3. Raspberry Pi พร้อม Adapter
4. SD Card 32 GB
5. สาย Ethernet
6. Card Reader
ขั้นตอนการดําเนินการ
กอนเริ่มตนการเรียนการสอน ใหผูสอนและผูเรียนดาวนโหลดสื่อการสอนและโปรแกรมพื้นฐานสําหรับ
การเรียนไดที่ https://bit.ly/guide_AdvIoT เพื่อความพรอมในการเรียนการสอน หลังจากนั้นใหเริ่ม
ดําเนินการสอนตามบทเรียน โดย
1. ใบงานที่ 1.1 การติดตั้ง OS บน SD Card
(1) อธิบายเกี่ยวกับบอร์ด Raspberry Pi และตัวอย่างการใช้งาน
(2) อธิบายข้อแตกต่างระหว่าง Raspberry Pi และบอร์ดไมโครคอนโทรลเลอร์ ESP32 ESP8266
(3) อธิบายเกี่ยวกับโปรแกรมพื้นฐานที่จะนํามาใช้งานร่วมกับ Raspberry Pi
(4) สอนการติดตั้งและการใช้งานระบบปฏิบัติการ Raspberry Pi พร้อมทําการทดลองที่ 1 ควบคู่ไป
ด้วย
2. ใบงานที่ 1.2 การเปิดใช้งาน VNC Viewer และการตั้งค่า IP สําหรับ Raspberry Pi
(1) อธิบายเกี่ยวกับโปรแกรม VNC Viewer
(2) สอนวิธีการแชร์อินเตอร์เน็ตให้กับ Raspberry Pi และการเปิดใช้งาน VNC Viewer พร้อมทําการ
ทดลองที่ 1 ควบคู่ไปด้วย
(3) อธิบายเกี่ยวกับการตั้งค่า IP ให้กับ Raspberry Pi แล้วทําการทดลองที่ 2
ซึ่งแตละใบงานนั้นสามารถเสริมสรางความรูของผูเรียนไดจากคําถามทายหนวยการเรียนรู อีกทั้งยัง
เปนตัวชี้วัดผลการเรียนจากผูเรียนได และการสอนในแตละใบงานสามารถใชเวลาในการสอนในตารางเวลาที่ใช
สอนของใบงาน
ตารางเวลาที่ใชสอนของใบงาน
ใบงานที่ เรื่อง เวลา (นาที)
1.1 ติดตั้งและใช้งานระบบปฏิบัติการบน Raspberry Pi 30
1.2 การเปิดใช้งาน VNC Viewer และการตั้งค่า IP สําหรับ Raspberry Pi 120
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 3
จุดประสงค
1. เรียนรูร้ ะบบปฏิบัติการ Raspberry Pi
2. เรียนรูก้ ารดาวน์โหลดและการติดตั้ง OS (Operating Systems)
3. เรียนรูก้ ารเปิดใช้งาน SSH
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
Raspberry Pi คืออะไร
Raspberry Pi คือ คอมพิวเตอรขนาดเล็ก หรือ คอมพิวเตอรบอรดเดี่ยว (Single Board Computer)
ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation เพื่อใหผูใชงานสามารถเขาใจการทํางานและการพัฒนา
โปรแกรมคอมพิวเตอร เนื่องจาก Raspberry Pi เปนคอมพิวเตอรที่มีประสิทธิภาพสูง ราคาถูก จึงทําใหเขาถึง
ไดงายกวาคอมพิวเตอรเดสกท็อป ทั่วไป อีกทั้งมีชุมชนออนไลนที่แข็งแกรง มีแหลงขอมูลตางๆมากมาย ใหได
ศึกษาโดยไมเสียคาใชจาย เชน บทความ หรือแมกระทั่งตัวอยางโปรเจคตางๆ
โดย Raspberry Pi มี ค วามสามารถในการเชื ่ อ มต่ อ เครื อ ข่ า ยแบบมี ส ายหรื อ ไร้ ส ายก็ ไ ด้ ทํ า ให้
Raspberry Pi ถูกนํามาพัฒนาใช้กับงานด้าน Internet of Things ได้ โดยสามารถนําไปทําเป็นตัว End Node
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 4
ระบบปฏิบัติการและการติดตั้งระบบปฏิบัติการบน Raspberry Pi
คอมพิ ว เตอร โ ดยทั ่ ว ไปที ่ เราใช ง านกั น ทั ่ ว ไปนั ้ น สามารถทํ า งานได ต ามที ่ เราเห็ น เนื ่ อ งจากมี
ระบบปฏิบัติการ (OS) ที่เปนซอฟตแวรที่ทําหนาที่จัดการอุปกรณคอมพิวเตอรและแหลงซอฟตแวรและบริการ
โปรแกรมคอมพิวเตอร เพื่อใหอุปกรณทํางานตามที่ไดออกแบบไว โดยหากไมมีระบบปฏิบัติการแลวนั้น
คอมพิวเตอรจะไมสามารถทํางานไดเลย
Raspberry Pi ก็เชนเดียวกัน เนื่องจาก Raspberry Pi เปนคอมพิวเตอรขนาดเล็ก จึงจําเปนตองมี
ระบบปฏิบัติการในการทํางาน ซึ่งระบบปฏิบัติการทั่วไปที่ใชนั้น คือ Raspbian ที่เปนระบบปฏิบัติการ
ลี น ุ ก ซ (Linux) เป น ฐานถู ก ปรั บ แต ง มาใช ก ั บ Raspberry Pi โดยเฉพาะ สามารถดาวน โ หลดได ที่
https://www.raspberrypi.com/software/operating-systems/ โดยระบบปฏิบัติการจะถูกติดตั้งลงใน
Micro SD Card ทําให Raspberry Pi ทํางานได้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 5
โปรแกรมพื้นฐานในการติดตั้งและใชงาน Raspberry Pi
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 6
ขั้นตอนการทดลอง
การทดลองที่ 1 การดาวนโหลดและติดตั้งระบบปฏิบัติการ Raspberry Pi OS 64 bit
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 7
4. นํา SD Card เสียบเข้ากับ Card Reader แล้วต่อเข้าคอมพิวเตอร์ หลังจากนั้นให้ Format SD Card ด้วย
โปรแกรม SD Card Formatter โดยตรวจสอบให้ถูกต้องว่าเลือก Drive ของ SD Card แล้ว กด Format
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 8
7. เลือก Storage ที่จะติดตั้ง OS ลงไป คือ Drive ของ SD Card โดยกด CHOOSE STORAGE และเลือก
พอร์ตที่ต่อ SD Card Reader อยู่
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 9
9. เปิด Set hostname, Enable SSH, Set username and password และ Set locale settings โดยตั้ง
ค่าต่างๆดังนี้
9.1. Set hostname เป็นค่าตั้งต้น คือ raspberrypi
9.2. Set username เป็น pi และ password เป็น raspberry
9.3. Set locale Time zone เป็น Asia/Bangkok และ Keyboard layout เป็น us
เมื่อตั้งค่าตามข้อ (1) – (3) สําเร็จให้กดแถบ SERVICES แล้ว Enable SSH เพื่อ Enable SSH ใช้ Use
password authentication และดําเนินการ SAVE ทันที
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 10
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 11
12. เมื่อติดตั้ง OS สําเร็จ จะมีการแจ้งเตือน ให้กด CONTINUE แล้วสามารถถอด Card Reader และนํา SD
Card ออกมาได้เลย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 12
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง OS ผ่านโปรแกรม Raspberry Pi Imager ได้หรือไม่
สามารถตั้งค่าก่อนทําการติดตั้ง OS ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 13
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
การเขาใชงาน Raspberry Pi
หลังจากการติดตั้งระบบปฏิบัติการ หรือ OS ใหกับ Raspberry Pi แลว Raspberry Pi ของเราจะ
พรอมใชงาน เหมือนคอมพิวเตอรจริงๆ เครื่องหนึ่งไดเลย โดยวิธีการเขาใชงาน Raspberry Pi มีดวยกันหลักๆ
อยู 2 วิธี คือ
1. การเข้าใช้งาน Raspberry Pi ผ่านจอมอนิเตอร์ เมาส์ และคีย์บอร์ด
การเข้าใช้งานผ่านจอมอนิเตอร์ เมาส์ และคีย์บอร์ด เป็นการใช้งาน Raspberry Pi โดยตรง
ด้วยการต่อจอมอนิเตอร์เข้ากับพอร์ท HDMI ส่วนเมาส์และคีย์บอร์ดต่อเข้ากับพอร์ท USB บนตัว
Raspberry Pi โดยหลังจากต่ออุปกรณ์ต่างๆ เสร็จเรียบร้อย ให้ทําการจ่ายไฟให้กับ Raspberry Pi ก็
จะสามารถใช้ Raspberry Pi ผ่านหน้าจอมอนิเตอร์ได้ไม่ต่างจากคอมพิวเตอร์โดยทั่วไปเลย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 14
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 15
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 16
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 17
ขั้นตอนการทดลอง
การทดลองที่ 1 การเปดการใชงาน VNC Server ดวยการ Remote ผาน SSH ดวยโปรแกรม Putty
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 18
5. IP Address ของ Ethernet Port ของคอมพิ ว เตอร์ จ ะถู ก Set ไว้ ท ี ่ 192.168.137.1 โดยสามารถ
ตรวจสอบความถูกต้องได้โดย
(1) คลิกขวาที่ Ethernet Port ที่เราแชร์อินเทอร์เน็ตไป
(2) เลือก Properties
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 19
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 20
11. เปิดโปรแกรม Putty และกรอก IP Address ของ Raspberry Pi ที่ช่อง Host Name แล้วกด Open
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 21
14. เข้าไปที่หน้า Setting ของ Raspberry Pi ผ่านคําสั่ง: sudo raspi-config แล้วกดปุ่ม Enter
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 22
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 23
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเปิดแชร์ WiFi ไปที่ Ethernet Port ได้หรือไม่
สามารถใช้ Advanced IP Scanner หา IP ของ Raspberry Pi ได้หรือไม่
สามารถเข้าใช้งาน Putty ได้หรือไม่
สามารถเปิดการใช้งาน VNC Server ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 24
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 25
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 26
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 27
10. จะแสดงผลหน้าต่างดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 28
11. ดําเนินการตั้งค่าดังนี้
(1) Method ให้เปลี่ยนจาก Automatic (DHCP) เป็น Manual
(2) เลือก Add และดําเนินการกรอกค่า ได้แก่
Address เป็น 192.168.200.1
Netmask เป็น 24
(3) ดําเนินการเลือก Save
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 29
13. เราจะไม่ ส ามารถใช้ IP Address เดิ ม ในการ Remote ได้ เนื ่ อ งจาก IP Address ได้ ถ ู ก ตั ้ ง เป็ น
192.168.200.1 เรียบร้อยแล้ว
14. ต้องทําการตั้งค่า IP Address ของคอมพิวเตอร์ให้กลับไปอยู่ในวงเดียวกันกับ Raspberry Pi ที่เป็น
192.168.200.1 เพื่อให้สื่อสารกันได้ โดยให้เราไปที่หน้าต่าง Network Connection เช่นเดิม เพื่อปิด
Internet Sharing ก่ อ น โดยคลิ ก ขวาที ่ Wi-Fi เลื อ ก Properties แล้ ว ไปที ่ Sharing แล้ ว ปิ ด การแชร์
อินเทอร์เน็ต แล้วกด OK
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 30
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 31
17. กลับไปที่ VNC Viewer แล้ว เลือก Remote เข้าไปที่ 192.168.200.1 ที่เป็น IP Address ของ Raspberry
Pi ที่เราได้ตั้งค่าเอาไว้
18. เนื่องจาก Computer เราตั้งค่า IP Address เป็น 192.168.200.10 และ IP Address ของ Raspberry Pi
เป็น 192.168.200.1 ซึ่งทั้งคู่ อยู่ในวง Network เดียวกัน จึงเจอกับ Raspberry Pi ดังภาพ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 32
19. กด Continue และกรอก Username และ Password เช่นเดิม คือ pi และ raspberry ตามลําดับ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 33
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถใช้งาน Raspberry Pi ผ่าน VNC Viewer ได้หรือไม่
สามารถตั้งค่า WiFi ของ Raspberry Pi ได้หรือไม่
สามารถตั้ง Ethernet IP Address ของ Raspberry Pi ได้หรือไม่
สามารถใช้งาน Raspberry Pi ผ่าน IP Address 192.168.200.1 ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 34
คําถามทายหนวยการเรียนรูที่ 1
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 35
หนวยการเรียนรูที่ 2
การใชงาน Node-RED
จุดประสงค
1. เรียนรู้หลักการทํางานของระบบจัดการข้อมูล (Data Collector) บน IoT Gateway
2. เรียนรู้การติดตั้งและใช้งาน Node-RED
3. เรียนรู้การติดตั้งและใช้งานโหนดพื้นฐาน และโหนดที่ใช้จัดการข้อมูลในระบบ IoT
4. เรียนรู้การติดตั้งและใช้งานโหนด Dashboard บน Node-RED
ตัวชี้วัด
1. สามารถอธิบายหลักการทํางานของระบบจัดการข้อมูล (Data Collector) บน IoT Gateway ได้
2. สามารถติดตั้งและใช้งาน Node-RED ได้
3. สามารถใช้งานโหนดพื้นฐาน และโหนดที่ใช้จัดการข้อมูลในระบบ IoT ได้
4. สามารถติดตั้งและใช้งานโหนด Dashboard บน Node-RED ได้
เนื้อหา
ศึ กษาเกี ่ ยวกั บการจั ดการข อมู ล (Data Corrector) ว ามี หลั กการทํ างานอย างไร และบน IoT
Gateway ในระบบ Internet of Things (IoT) นั้นจะสามารถจัดการขอมูลผานโปรแกรมหรือเครื่องมือใดได
บาง ซึ่งในหนวยการเรียนรูนี้เราจะใชซอฟตแวรที่ชื่อวา Node-RED ในการจัดการขอมูลบน IoT Gateway โดย
จะเริ่มจากการศึกษาเกี่ยวกับ Node-RED วาเปนซอฟตแวรที่มีหลักการทํางานอยางไรสามารถทําอะไรไดบาง
พรอมทั้งติดตั้งและใชงาน เพื่อใหผูเรียนสามารถใชงานโหนดแตละโหนดของ Node-RED ได ทั้งซอฟตแวร
Node-RED ยังสามารถสราง Dashboard ได ทางผูเรียนจะไดนําขอมูลที่ไดจัดการไปเบื้องตนมาสรางเปน
Dashboard เพื่อควบคุมการทํางานและแสดงผล
ความรูเดิมที่ตองมี
1. การใช้งานคอมพิวเตอร์พื้นฐาน
2. หลักการทํางานของระบบปฏิบัติการบนคอมพิวเตอร์
3. การใช้งานคําสั่งพื้นฐานของระบบปฏิบัติการบนคอมพิวเตอร์
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 36
แนวทางการจัดการเรียนรู
การจัดเตรียม
1. ใบงานตามจํานวนนักศึกษา
2. เครื่องคอมพิวเตอร์
3. Raspberry Pi ที่ติดตั้ง OS แล้ว
4. สาย Ethernet
5. Traffic Light และสายไฟ
ขั้นตอนการดําเนินการ
กอนเริ่มตนการเรียนการสอน ใหผูสอนและผูเรียนดาวนโหลดสื่อการสอนและโปรแกรมพื้นฐานสําหรับ
การเรียนไดที่ https://bit.ly/AdvIoT_Training_Doc เพื่อความพรอมในการเรียนการสอน หลังจากนั้นใหเริ่ม
ดําเนินการสอนตามบทเรียน โดย
1. ใบงานที่ 2.1 หลักการทํางานและการติดตั้ง Node-RED
(1) อธิบายเกี่ยวกับ Node-RED และหลักการทํางาน
(2) สอนการติดตั้งและเปิดใช้งานพร้อมทําการทดลองที่ 1 ควบคู่ไปด้วย
2. ใบงานที่ 2.2 องค์ประกอบพื้นฐานของ Node-RED และ Node พื้นฐาน
(1) อธิบายเกี่ยวกับการเริ่มต้นใช้งาน และองค์ประกอบบนหน้าต่างของ Node-RED
(2) สอนเกี่ยวกับ Node ต่างๆ โดยทําการทดลองที่ 1 และกาสรทดลองที่ 2 ควบคู่ไปด้วย
3. ใบงานที่ 2.3 การจัดการ Node และ Flow บน Node-RED
(1) สอนการติดตั้ง Node อื่นๆเพิ่มเติมพร้อมทําการทดลองที่ 1 ควบคู่ไปด้วย
(2) สอนการ Export และ Import Flow ที่สร้างขึ้น พร้อมทําการทดลองที่ 2 ควบคู่ไปด้วย
4. ใบงานที่ 2.4 การใช้งาน Node-RED Dashboard
(1) อธิบายเกี่ยวการทํางานและวิธีใช้ Node-RED Dashboard
(2) สอนใช้งานเครื่องมือต่างๆ สําหรับสร้าง Node-RED Dashboard พร้อมทําการทดลองที่ 1 ควบคู่
ไปด้วย
5. ใบงานที่ 2.5 การจัดการข้อมูลบน Node-RED ผ่าน Node ต่างๆ
(1) อธิบายเกี่ยวกับโครองสร้างและรูปแบบการจัดการข้อมูลบน Node-RED
(2) สอนการใช้ Node ที่เกี่ยวกับการจัดการข้อมูลพร้อมทําการทดลองที่ 1 ควบคู่ไปด้วย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 37
ซึ่งแตละใบงานนั้นสามารถเสริมสรางความรูของผูเรียนไดจากคําถามทายหนวยการเรียนรู อีกทั้งยัง
เปนตัวชี้วัดผลการเรียนจากผูเรียนได และการสอนในแตละใบงานสามารถใชเวลาในการสอนในตารางเวลาที่ใช
สอนของใบงาน
ตารางเวลาที่ใชสอนของใบงาน
ใบงานที่ เรื่อง เวลา (นาที)
2.1 หลักการทํางานและการติดตั้ง Node-RED 30
2.2 องค์ประกอบพื้นฐานของ Node-RED และ Node พื้นฐาน 120
2.3 การจัดการ Node และ Flow บน Node-RED 30
2.4 การใช้งาน Node-RED Dashboard 90
2.5 การจัดการข้อมูลบน Node-RED ผ่าน Node ต่างๆ 180
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 38
จุดประสงค
1. เรียนรูห้ ลักการทํางานทํางานของ Node-RED
2. เรียนรู้วิธีการติดตั้ง Node-RED บน Raspberry Pi
3. เรียนรูว้ ิธีการเปิดใช้งาน Node-RED บน Raspberry Pi
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
Node-RED คืออะไร
Node-RED เปนเครื่องมือสําหรับนักพัฒนาโปรแกรมในการเชื่อมตออุปกรณฮารดแวรตางๆ เขากับ
APIs (Application Programming Interface) รวมไปถึง Online Service ตางๆ ซึ่งเปนการพัฒนาโปรแกรม
แบบ Flow-Based Programming ที่มีหนา UI สําหรับนักพัฒนาใหใชงานผาน Web Browser ในการจัดการ
ขอมูลที่ผานเขามา จึงเหมาะกับงานดาน Internet of Things ที่ตองทํางานควบคูกันระหวางฮารดแวรและ
แอปพลิเคชันตางๆ โดย Node-RED ทํางานบน Node.js ทําใหเหมาะสําหรับการใชงานกับ Raspberry Pi
เนื่องจากใชทรัพยากรนอย ขนาดไฟลไมใหญและ Node.js ยังทําหนาที่เปนตัวกลางให Raspberry Pi สามารถ
ติดตอกับ Web Browser และอุปกรณอื่นๆ ได
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 39
พื้นฐานการทํางานของ Node-RED
การทํางานของ Node-RED เปนการทํางานระหวาง Node ตางๆ ที่ถูกนํามาวางบนพื้นที่ทํางาน
(flow) และมีสายโยงระหวาง Node เพื่อให Node ทํางานรวมกัน โดยทํางานในลักษณะที่เปนเสนทางเดียว
คือ ขอมูลที่สงออกผานสายโยงจะวิ่งไปทางขวาไดทางเดียวเทานั้น โดยในการทํางานของ Node-RED นั้น
ประกอบไปดวยองคประกอบตางๆ คือ
1. Flow คือ พื้นที่การทํางาน คือพื้นที่ที่ Node-RED จะประมวลผลการทํางาน
2. Node คือ กล่องการทํางาน เป็นกล่องที่ทํางานแทนการเขียนโปรแกรม
3. Debug คือ พื้นที่ที่ใช้ในการ Debug ของ Node ที่อยู่บน Flow
4. Deploy คือ ปุ่มที่ใช้สําหรับการอัพเดท Flow
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 40
ขั้นตอนการทดลอง
การทดลองที่ 1 การติดตั้ง Node-RED ผาน Command Line
1. เปิด VNC แล้ว Remote เข้าไปที่ Raspberry Pi ที่ตั้งค่า IP Address เป็น 192.168.200.1 แล้วกรอก
Username และ Password
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 41
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 42
5. พิมพ์ y แล้วกด Enter เพื่อยืนยันการติดตั้ง Node-RED และ พิมพ์ y แล้วกด Enter อีกครั้งเพื่อยืนยัน
การติดตั้ง Pi - specific nodes
6. รอสําหรับการติดตั้ง Node-RED
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 43
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 44
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 45
11. ใช้ ค ํ า สั ่ ง sudo systemctl enable nodered.service แล้ ว กด Enter เพื ่ อ สั ่ ง ให้ Raspberry Pi รั น
Node-RED ทุกครั้งที่เปิดเครื่อง ทําให้ไม่จําเป็นต้องเข้ามาสั่ง node-red-start อีกต่อไป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 46
13. เมื่อ Raspberry Pi รีบูทกลับมา ให้เปิด Node-RED ผ่าน Web Browser ตัวเองที่ 192.168.200.1:1880
จะพบว่าสามารถใช้งาน Node-RED ได้ทันที โดยที่ไม่ต้องสั่ง node-red-start เป็นอันสําเร็จในการติดตั้ง
และใช้งาน Node-RED
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง Node-RED ผ่าน Command Line ได้หรือไม่
สามารถสั่งให้ Raspberry Pi รัน Node-RED โดยอัตโนมัติ ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 47
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 48
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 49
2. Debug คือ Node สําหรับการแสดง msg Object ที่เข้ามาใน Node นี้ โดยสามารถตั้ง Properties
ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 50
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 51
4. Trigger คือ Node สําหรับการ Action เมื่อมีข้อมูลใดๆ ส่งมาผ่าน Trigger นี้ ขึ้นอยู่กับการตั้งค่า
Properties โดยสามารถตั้ง Properties ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 52
ขั้นตอนการทดลอง
การทดลองที่ 1 ใช Inject, Debug, Delay และ Trigger
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 53
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 54
7. ทดลองตั้งค่า Inject เป็นประเภท Number ใส่ msg.payload เป็น 100 แล้วกด Done
8. กด Deploy เพื่ออัพเดทระบบ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 55
10. ต่อมา ทดลองนํา Delay node มาใช้งาน โดย Delay อยู่ในหัวข้อ Function ให้นํามาวาง
ใน Flow โดยจะเห็นว่าค่าตั้งต้นของ Delay คือจะหน่วงเวลาข้อมูลที่เข้ามายัง Delay ไป 5 วินาที
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 56
11. นํ า Inject ที ่ ส่ ง ข้ อมู ลประเภท String ว่ า Hello เข้ ากั บ Delay และส่ ง ข้ อ มู ล ออกจาก Delay ไปยั ง
Debug และกด Deploy
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 57
13. ทดลองนํา Trigger node มาใช้ โดย Trigger อยู่ในหัวข้อ Function ให้นํามาวางใน
Flow โดยจะเห็นว่าค่าตั้งต้นของ Trigger คือ จะส่ง “1” ที่เป็น String ออกไปทันที แล้วหน่วงเวลา 250
มิลลิวินาที แล้วส่ง “0” ที่เป็น String เช่นเดียวกัน ตามไป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 58
14. นํา Inject ที่ส่งข้อมูลประเภท timestamp เข้ากับ Trigger และส่งข้อมูลออกจาก Trigger ไปยัง Debug
และกด Deploy
15. ทดลองส่ง timestamp จาก Inject แล้วสังเกตผลลัพธ์ ที่เกิดจากการนํา Trigger มาวาง จะพบว่า ข้อมูล
จาก timestamp กลายเป็น “1” แล้วเมื่อเวลาผ่านไป 250 มิลลิวินาที “0” ถูกส่งออกมาจาก Trigger อีก
ที
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 59
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถใช้งาน Inject Node ได้หรือไม่
สามารถใช้งาน Debug Node ได้หรือไม่
สามารถใช้งาน Delay Node ได้หรือไม่
สามารถใช้งาน Trigger Node ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 60
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 61
3. การสั่งงาน rpi-gpio out ทําได้โดยการส่งค่า 1 (High) และ 0 (Low) ซึ่งการจะส่ง 1 หรือ 0 นั้น ต้องส่ง
จาก Inject node ดังนั้นให้นํา Inject มาวาง แล้วตั้งค่าให้ส่ง 1 และ 0 ดังรูป แล้วทําการ Deploy
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 62
4. จะสามารถควบคุม Traffic Light ผ่านการส่งค่า 1, 0 ของ Inject ไปยัง rpi-gpio out ของ LED แต่ละสี
ได้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 63
7. ต่อสายเข้าหากัน โดย Inject ต่อเข้ากับ Trigger และ Trigger ส่งข้อมูลออกไปยัง rpi-gpio out ของ LED
ทั้ง 3 ดวง แล้ว Deploy
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 64
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 65
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถใช้งาน Pi-GPIOs Node เพื่อสั่งการ Traffic Light ได้หรือไม่
สามารถทําไฟกระพริบ ด้วย Pi-GPIOs Node ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 66
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
การจัดการบน Node-RED
การจัดการสิ่งตาง ๆ บน Node-RED นั้นจะแบงเปน 2 สวนหลักๆ คือ การจัดการกับ Node และการ
จัดการกับ Flow โดย
1. การจัดการกับ Node คือ การต้องการเพิ่มหรือลบ Node บน Node-RED โดย Node บน Node-RED
นั้นมีอยู่เยอะมาก ที่ถูกสร้างโดย Node-RED เอง, บริษัทภายนอก หรือแม้แต่นักพัฒนาทั่วไป ซึ่งตอน
ติดตั้ง Node-RED นั้น จะมี Node พื้นฐานในการใช้งานทั่วไปติดตั้งมาด้วย แต่ถ้าหากต้องการติดตั้ง
Node อื่น ๆเพิ่มเติม สามารถทําด้วยการไปที่ Manage Palette และค้นหาที่แถบ Install
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 67
(3) Export Flow คือ การดาวน์โหลด Flow เก็บเป็นไฟล์สกุล .json เพื่อนําไปเพิ่มให้กับ Node-
RED ที่ติดตั้งบนอุปกรณ์อื่น หรือ เก็บเอาไว้เพื่อ Backup ได้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 68
(4) Import Flow คือ การนํา Flow ที่อยู่ในไฟล์สกุล .json ไปเพิ่ม บน Node-RED ที่ติดตั้งบน
อุปกรณ์อื่นได้ ผ่านคําสั่ง Import
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 69
ขั้นตอนการทดลอง
การทดลองที่ 1 การติดตั้ง Node อื่นๆ (Dashboard, Influx, Modbus, S7 และ Line Notify)
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 70
3. Search หา Keyword ของ Node ที่จะติดตั้ง เช่น dashboard โดยจะเห็นว่า มีหลาย Node ที่เกี่ยวกับ
Dashboard ซึ่งถ้าหากอยากดูข้อมูลของ Node นั้น ๆ ให้กดไปที่ปุ่มด้านข้างชื่อ จะได้ข้อมูลเบื้องต้น
ของ Node นั้น ๆ โดยเราจะเลือกติดตั้ง node-red-dashboard นี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 71
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 72
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 73
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมคําตอบในชองผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง node-red-dashboard ได้หรือไม่
สามารถติดตั้ง node-red-contrib-ui-led ได้หรือไม่
สามารถติดตั้ง node-red-contrib-influxdb ได้หรือไม่
สามารถติดตั้ง node-red-contrib-s7 ได้หรือไม่
สามารถติดตั้ง node-red-contrib-modbus ได้หรือไม่
สามารถติดตั้ง node-red-contrib-line-notify ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 74
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 75
4. Flow2 ที่สร้างขึ้นมาจะโดนลบออกไป
6. เลือก Current flow เนื่องจากต้องการ Export แค่ Flow ที่เปิดอยู่นี้ จะแสดงให้เห็นว่ามี Nodes ใดอยู่
ภายใน Flow นี้บ้าง และสามารถกด Download ได้เลย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 76
8. ขั ้ น ตอนต่ อ ไปเป็ น การ Import Flow ที ่ เ รา Export ออกไป กลั บ เข้ า มาใน Node-RED โดยกดไปที่
สัญลักษณ์ 3 แถบ ด้านมุมบนขวาของ Node-RED แล้วเลือก Import
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 77
9. กดไปที่ปุ่ม Select a file to import เลือก File สกุล .json ที่ต้องการจะ Import แล้วกด Import
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 78
10. หาก Import Flow ที่มีอยู่แล้วใน Node-RED จะมีการแจ้งเตือน ให้เลือก Import Copy
11. เลือกไปที่ Flow ที่ Import เข้ามา จะได้ผลลัพธ์เป็น Flow ที่ชื่อเดียวกับตอนที่ Export และมี Node
ต่างๆที่ทํางานเช่นเดียวกันกับ Flow ที่ Export ออกไป ดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 79
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมคําตอบในชองผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถ Add Flow ได้หรือไม่
สามารถ Delete Flow ได้หรือไม่
สามารถ Export Flow ได้หรือไม่
สามารถ Import Flow ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 80
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
Node-RED Dashboard
จุดเดนของ Node-RED ที่นอกจากจะสามารถจัดการขอมูลตางๆไดอยางงายดาย โดยไมจําเปนตอง
เขียนโปรแกรมแลวนั้น ก็คือการนําขอมูลที่วิ่งผาน Node ตางๆ บน Flow มามาวิเคราะห์ประมวลผลแล้ว
นําเสนอออกมาในรูปแบบที่มองเห็นและทําความเข้าใจได้ด้วยตา ด้วยแผนภูมิรูปแบบต่างๆ หรือกราฟ บน
Node-RED Dashboard
Node-RED Dashboard เป็ น หน้ า ต่ า ง Dashboard ที ่ ท ํ า งานบน Node-RED ใช้ ส ํ า หรั บ การ
มอนิ เ ตอร์ ข้ อ มู ล ต่ า งๆที่ ถู ก ส่ ง เข้ า มาจั ด การบน Node-RED รวมไปถึ ง การส่ ง ข้ อ มู ล ออกไปเพื่ อ นํา ไป
ประยุกต์ในการควบคุมอุปกรณ์ IoT ได้ โดย Dashboard Nodes จะต้องไปติดตั้งเพิ่มเติมขึ้นมา เนื่องจาก
Node-RED ไม่ได้ติดตั้งให้ตั้งแต่แรก
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 81
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 82
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 83
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 84
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 85
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 86
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 87
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 88
ขั้นตอนการทดลอง
การทดลองที่ 1 การใชงาน Node-RED Dashboard
2. การใช้งาน Node-RED Dashboard ต้องเริ่มจากการสร้าง Tab และ Group ก่อน โดยไปที่ ปุ่มด้าน
ขวามือ แล้วกด Dashboard จะได้หน้าต่าง Dashboard มาที่ด้านขวา
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 89
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 90
5. หลังจากสร้าง Tab และ Group ขึ้นมาแล้ว ให้นํา Text node มาวางบน Flow แล้ว
เข้าไปแก้ไข Properties โดย
(1) เลือก Group ที่จะให้ไปอยู่ คือ [Tab1] Group1
(2) ตั้ง Label เป็น Status
(3) เลือก Layout แบบที่ 2
6. สร้าง Inject ที่ตั้งค่าให้ส่ง Boolean True และ False อย่างละตัว เชื่อมเข้ากับ Text และกด Deploy
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 91
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 92
11. เมื่อตั้งค่า Button เสร็จ ให้เชื่อมสาย Button เข้ากับ Text ตัวเดิม แล้วกด Deploy
12. กลับไปที่หน้า Dashboard จะพบว่ามี Button เพิ่มขึ้นมา 2 ปุ่ม คือ Turn On และ Turn Off และเมื่อ
กดปุ่มแต่ละปุ่ม จะทําให้ Status เปลี่ยนเป็น On, Off ตามปุ่มที่กด
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 93
15. ที่หน้า Dashboard จะปรากฏ Group 2 ขึ้นมา โดยมี Slider อยู่ในนั้น ที่สามารถเลื่อนแถบสไลด์ได้ แต่
ยังไม่มีผลลัพธ์ใด ๆ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 94
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 95
18. ต่อมาให้นํา Chart node มาวางบน Flow เชื่อมเข้ากับ Slider เช่นเดียวกับ Gauge
และตั้งค่าดังรูป แล้ว Deploy
(1) ให้อยู่ใน [Tab1] Group 2
(2) Label ให้เป็น Speed
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 96
20. สุดท้ายคือการนํา LED node มาวางใน Flow โดยชื่อมเข้ากับ Button node ทั้ง 2
ตั้งค่าต่างๆดังรูป แล้ว Deploy
(1) ให้อยู่ใน [Tab1] Group 1
(2) Label ให้เป็น Status
(3) ให้ msg.payload เป็น string ตั้งค่าสีโดยค่า Off เป็น red และค่า On เป็น green
21. เมื่อไปยัง Dashboard จะพบว่า มี LED status ที่เป็นสีเขียวเมื่อกด Turn On และสีแดงเมื่อ Turn Off
ตามที่ได้ตั้งค่าเอาไว้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 97
22. กลั บ ไปที ่ แ ถบ Dashboard ด้ า นซ้ า ยมื อ แล้ ว กดที ่ Group 1 และ Group 2 ให้ แ สดง Node ภายใน
ทั้งหมด
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 98
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมคําตอบในชองผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเพิ่ม Tab ได้หรือไม่
สามารถเพิ่ม Group ได้หรือไม่
สามารถเปิดหน้าต่าง Dashboard ได้หรือไม่
สามารถใช้งาน Text Node ได้หรือไม่
สามารถใช้งาน Button Node ได้หรือไม่
สามารถใช้งาน Slider Node ได้หรือไม่
สามารถใช้งาน Gauge Node ได้หรือไม่
สามารถใช้งาน Chart Node ได้หรือไม่
สามารถใช้งาน LED Indicator Node ได้หรือไม่
สามารถจัด Layout ของ Node ใน Group ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 99
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
การทํางานร่วมกับ Messages บน Node-RED
อย่างที่ทราบกันดี ว่าการทํางานของ Node-RED คือการส่งข้อความระหว่าง Node ผ่านสายที่
เชื่อมแต่ละ Node เข้าหากัน โดยข้อความที่ Node-RED ใช้ คือ JavaScript Object ที่เปนประเภทขอมูล
ที่เก็บขอมูลในรูปแบบของ Key และ Value ( โดยคูของ Key และ Value ถูกเรียกรวมกันวา Property) โดย
ที่ Key นั้นจะเปน String สวน Value สามารถเปนขอมูลประเภทใดๆ ในภาษา JavaScript ดังนี้
1. Boolean: true, false
2. Number: 0, 1234
3. String: “hello”
4. Array: [1,2,3,4]
5. Object: {“a”: 1, “b”: 2}
6. Null
Node-RED จึงนําข้อดีของ Object ที่สามารถเก็บข้อมูลในตัวเองได้หลาย Properties ทําให้การ
ส่งข้อมูลเพียงครั้งเดียว สามารถนําไปจัดการต่อเป็นข้อมูลหลายอย่างได้ตามต้องการ และเรียก Object ที่
ส่งผ่าน Node ต่างๆ ว่า Message Object หรือ msg
msg เป็น Object ที่สําคัญมากใน Node-RED เพราะทุกข้อมูลที่วิ่งผ่านสายที่โยงกันนั้นคือ msg
object ซึ่ง msg นั้นมี Properties ที่เปลี่ยนไปเมื่อผ่านแต่ละ Node ที่เข้าไปจัดการ Properties นั้นๆ
โดยตัวอย่างของ msg object เช่น
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 100
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 101
1. Function คือ Node สําหรับการเขียนคําสั่งเอง โดยใช้ JavaScript เพื่อจัดการ msg Object ที่ผ่าน
เข้ามายัง Function และส่งออกไป โดยสามารถตั้ง Properties ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 102
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 103
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 104
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 105
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 106
ขั้นตอนการทดลอง
การทดลองที่ 1 การใชงาน function, switch, change, split, join
2. นํา Function node มาวางใน Flow โดยใช้ Inject ที่ส่งตัวเลขใดๆ มาที่ Function แล้ว
ออกไปยัง Debug
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 107
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 108
7. ตั ้ งค่ า Inject1 ให้ ส่ งเลข 25 กั บ Topic เป็ น temperature และ Inject2 ส่ งเลข 60 กั บ Topic เป็ น
humidity
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 109
10. เมื่อกด Done จะเห็นว่า Switch นี้ มี Output เพิ่มขึ้นมาเป็น 2 ทาง โดยถ้านําเมาส์ไปชี้
จะเห็นว่า Output แรกคือ temperature และอีก Output คือ humidity
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 110
12. ทดลองส่งข้อมูลทั้ง 2 ค่า จะพบว่า ข้อมูล temperature จะถูกส่งไป Output ด้านบนที่ Debug 3 และ
ข้อมูล humidity จะส่งไปที่ Output ด้านล่างที่ Dubug4 เสมอ แสดงให้เห็นว่า ข้อมูลที่เข้ามาที่เดียวถูก
จัดการเส้นทางให้เป็น 2 เส้นออกไปจัดการต่อ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 111
14. ต้องการที่จะเปลี่ยนค่าจาก 1, 0 ให้กลายเป็น on, off โดยตั้งค่า Change ดังรูป แล้ว Deploy
(1) เปลี่ยนจาก Set เป็น Change แล้ว Search for 1 Replace with “on”
(2) กด +add ที่ด้านล่าง เพื่อเพิ่มเงื่อนไข
(3) เปลี่ยนจาก Set เป็น Change แล้ว Search for 0 Replace with “off”
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 112
16. ต่อไป ให้นํา Join Node มาวางใน Flow แล้วทดลองนํา Inject มา 2 อันที่ตั้งค่าข้อมูล
เป็นประเภท Number 25 และ 60 ส่งข้อมูลไปยัง Join แล้วออกที่ Debug โดย
(1) ตั้งค่า Join เป็น Manual ที่รวม msg.payload
(2) สร้างเป็น String คั่นด้วยจุลภาค ( , )
(3) จํานวนข้อมูลเป็น 2 ค่า
17. เมื่อลองกดส่งค่าจาก Inject ครบ 2 ครั้ง จะพบว่า ข้อมูลที่ส่งไปถูกรวม กลายเป็น String ที่มีข้อมูล 2 ค่า
คั่นกันด้วยจุลภาค ( , )
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 113
18. ทําการสร้าง Node ชุดเดิมขึ้นมาใหม่ แล้วเปลี่ยนการตั้งค่าใน Join ใหม่ให้ to create เป็น an Array
แล้วลองดูผลลัพธ์ที่ได้
19. หลังจากกด Inject 2 ครั้ง จะได้ผลลัพธ์ที่เป็น Array ที่มีข้อมูล 2 ค่า ตามลําดับการกด ดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 114
21. หลังจากส่ง Inject ไป จะพบว่าข้อมูลที่ออกมาจาก Join เป็ นข้อมู ล Object ที่มีสมาชิก 2 ค่ า เช่ น
{"temperature":25,"humidity":60} โดยจะสังเกตเห็นได้ว่าข้อมูลจะไม่สามารถซํ้ากันได้เหมือนการ Join
ที่เป็น String และ Array
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 115
22. ต่อมาให้นํา Split node มาวางใน Flow โดยตัง้ ค่า Split ในส่วนของ String/Buffer
ให้เป็นจุลภาค ( , ) และต่อกับ Inject ที่เป็น String 25,60 แล้วออกไปที่ Debug
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 116
24. นํา Switch มาช่วยในการแยกข้อมูล โดยตั้งค่า Switch เป็น msg.payload == “25” และ “60” แล้ว
ออกไปต่อเข้ากับ Debug 2 ตัว
25. เมื่อส่งข้อมูล จะเห็นว่าข้อมูลที่ถูก Split ถูกจัดการเส้นทางผ่าน Switch ทําให้ “25” แสดงที่ Debug 1
และ “60” แสดงที่ Debug 2
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 117
27. เมื่อส่งข้อมูลจาก Inject จะพบว่าข้อมูลใน Array ถูกแบ่งอกด้วย Split คือ 25 และ 60 ที่ถูกจัดการ
เส้นทางต่อผ่าน Switch โดยใช้ msg.parts.index ที่เป็นตัวกํากับลําดับของข้อมูล ทําให้ ข้อมูลลําดับที่ 0
ไปแสดงผลที่ Debug3 และ ข้อมูลลําดับที่ 1 ไปแสดงผลที่ Debug 4
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 118
29. เมื่อทดลองส่ง Inject ออกไป จะพบว่าข้อมูลใน Object ถูกแยกออกเป็น Value นั้นๆ เมื่อผ่าน Split
โดยข้ อมู ล 25 และ 60 ที ่ ออกมา ถู กจั ดการเส้ นทางผ่ า น msg.parts.key ทํ า ให้ ข้ อมู ลที ่ มี Key เป็ น
temperature ไปแสดงผลที่ Debug 5 และข้อมูลที่มี Key เป็น humidity ไปแสดงผลที่ Debug 6
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 119
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมคําตอบในชองผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถใช้งาน Function Node ได้หรือไม่
สามารถใช้งาน Switch Node ได้หรือไม่
สามารถใช้งาน Change Node ได้หรือไม่
สามารถใช้งาน Join Node ได้หรือไม่
สามารถใช้งาน Split Node ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 120
คําถามทายหนวยการเรียนรูที่ 2
6. สําหรับ GPIOs node สามารถเลือก GPIO หรือ Pin ไหนได้บ้างที่สามารถสั่งการ Traffic Light
7. การสั่งงาน rpi-gpio out ทําได้โดยการส่งค่า High และ Low นั้นต้องใช้ Node ใด และส่งขอมูลใน
รูปแบบใด
8. ในการ Export Flow ไฟล์ที่ได้ออกมานั้นจะเป็นไฟล์สกุลใด
9. เมื่อสามารถติดตั้ง Node เพิ่มเติมเองได้ มีหลักการอย่างไรในการเลือก Node เพื่อนําใช้งาน
10. สั่งงาน Traffic Light ให้ไฟกระพริบแต่ละสีเรียงกันไป โดยใช้ rpi-gpio และ node อื่น ๆ
11. สั่งใช้งาน Traffic Light โดยทําปุ่มสําหรับควบคุมเปิดปิดไฟแต่ละสี และทําการแสดงผลสถานะชอง
Traffic Light ด้วย Node-RED Dashboard
12. จงสร้าง slider จํานวน 1 node เพื่อควบคุมการเปิดปิด LED ทั้ง 3 ดวง และ Indicator แสดงสถานะของ
LED ดังรูป โดยค่าของ slide อยู่ในช่วง 0 – 3 ซึ่งแต่ละค่ามีผลกับ LED ดังนี้
(1) ค่า slider = 0 ความหมายคือ LED1, LED2, LED3 ดับทุกดวง
(2) ค่า slider = 1 ความหมายคือ LED1 ติด, LED2 และ LED3 ดับ
(3) ค่า slider = 2 ความหมายคือ LED2 ติด, LED1 และ LED3 ดับ
(1) ค่า slider = 3 ความหมายคือ LED3 ติด, LED1 และ LED2 ดับ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 121
15. จงอธิบายผลลัพธ์ของ Debug1, Debug2 และ Debug3 หาก ส่ง Inject temperature และ humidity
ออกไป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 122
หนวยการเรียนรูที่ 3
การสื่อสารในระบบ IoT และ MQTT Protocol
จุดประสงค
1. เรียนรู้หลักการทํางานของรูปแบบการสื่อสารระหว่างอุปกรณ์และ Server (Protocol)
2. เรียนรู้หลักการทํางานของ MQTT Protocol และ HTTP Protocol
3. เรียนรู้การติดตั้งและใช้งาน Mosquitto MQTT
4. เรียนรู้การใช้งาน MQTT Node บน Node-RED
ตัวชี้วัด
1. สามรถอธิบายหลักการทํางานของรูปแบบการสื่อสารระหว่างอุปกรณ์และ Server (Protocol) ได้
2. สามารถอธิบายหลักการทํางานของ MQTT Protocol และ HTTP Protocol ได้
3. สามารถติดตั้งและใช้งาน Mosquitto MQTT ได้
4. สามารถใช้งานโหนด MQTT บน Node-RED ได้
เนื้อหา
ศึกษาและปฏิบัติเกี่ยวกับหลักการทํางานของรูปแบบการสื่อสารระหวางอุปกรณและ Server ในงาน
ดาน IoT (IoT Protocol) วามีแบบใดบาง มีขอแตกตางกันอยางไร และการเลือกใชงาน Protocol ใหเหมาะ
กับงาน โดยจะศึกษาในเชิงลึกเกี่ยวกับ MQTT Protocol ที่เปนที่นิยมกันมากในงานดาน IoT เรียนรูหลักการ
การทํางาน ไปจนถึงวิธีการติดตั้งและใชงาน MQTT Broker ดวย Mosquitto MQTT และการใชงาน MQTT
กับ Node-RED
ความรูเดิมที่ตองมี
1. หลักการทํางานของ IoT Gateway และ IoT Server
2. การใช้งานคําสั่งพื้นฐานของระบบปฏิบัติการบนคอมพิวเตอร์
3. การใช้งานโหนดพื้นฐาน และโหนดที่ใช้จัดการข้อมูลในระบบบน Node-RED
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 123
แนวทางการจัดการเรียนรู
การจัดเตรียม
1. ใบงานตามจํานวนนักศึกษา
2. เครื่องคอมพิวเตอร์
3. Raspberry Pi ที่ติดตั้ง OS แล้ว
4. สาย Ethernet
5. I-Kit 2
6. ESP32
7. เซ็นเซอร์ LDR และ DHT22
ขั้นตอนการดําเนินการ
กอนเริ่มตนการเรียนการสอน ใหผูสอนและผูเรียนดาวนโหลดสื่อการสอนและโปรแกรมพื้นฐานสําหรับ
การเรียนไดที่ https://bit.ly/AdvIoT_Training_Doc เพื่อความพรอมในการเรียนการสอน หลังจากนั้นใหเริ่ม
ดําเนินการสอนตามบทเรียน โดย
1. ใบงานที่ 3.1 Protocol ที่ใช้ในระบบ IoT และ MQTT Protocol
(1) อธิบายเกี่ยวกับการสื่อสารระหว่างอุปกรณ์ที่ใช้ในระบบ IoT (Internet of Things)
(2) อธิบายเกี่ยวกับการทํางานและการใช้งานของ MQTT Protocol
(3) สอนติดตั้งและใช้งาน MQTT Broker พร้อมทําการทดลองที่ 1
2. ใบงานที่ 3.2 การใช้งาน MQTT Protocol บน Node-RED
(1) อธิบายเกี่ยวกับการทํางานและการใช้งานของ MQTT Node
(2) สอนติดตั้งและใช้งาน MQTT Node พร้อมทําการทดลองที่ 1 และการทดลองที่ 2
(3) อธิบายเกี่ยวกับการเชื่อมต่ออุปกรณ์อื่นร่วมกับ MQTT Server แล้วทําการทดลองที่ 3
ซึ่งแตละใบงานนั้นสามารถเสริมสรางความรูของผูเรียนไดจากคําถามทายหนวยการเรียนรู อีกทั้งยัง
เปนตัวชี้วัดผลการเรียนจากผูเรียนได และการสอนในแตละใบงานสามารถใชเวลาในการสอนในตารางเวลาที่ใช
สอนของใบงาน
ตารางเวลาที่ใชสอนของใบงาน
ใบงานที่ เรื่อง เวลา (นาที)
3.1 Protocol ที่ใช-ในระบบ IoT และ MQTT Protocol 30
3.2 การใช-งาน MQTT Protocol บน Node-RED 210
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 124
จุดประสงค
1. เรียนรู้รูปแบบการสื่อสารระหว่างอุปกรณ์ในระบบ IoT
2. เรียนรู้ MQTT Protocol
3. เรียนรูก้ ารติดตั้ง MQTT Broker บน Raspberry Pi
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 125
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 126
1. Humidity Sensor เป็น Client ที่ทําหน้าที่ Publish ค่าความชื้น ไปที่ Broker โดยมี Topic ชื่อ
humidity
2. Broker ที่หลังจากได้รับข้อความที่มี Topic เป็น humidity จะทําการส่งต่อข้อความนั้น ให้กับทุก
Client ที่ Subscribe
3. On-Premise Analytics และ Cloud Analytics ต่างเป็น Client ที่ไป Subscribe ที่ Broker ที่
Topic ชื่อ humidity ทําให้ Broker ส่งข้อมูลมาให้ที่ Client 2 ตัวนี้ทันที
Mosquitto MQTT
Mosquitto คือ MQTT Message Broker แบบโอเพนซอรสที่พรอมใชงานและสามารถติดตั้งไดบน
หลายแพลตฟอรม เชน Windows, Linux, BSD และ macOS รองรับ MQTT Protocol ใน versions 5.0,
3.1.1 and 3.1 ซึ่งติดตั้งและใช้งานได้ง่าย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 127
ขั้นตอนการทดลอง
การทดลองที่ 1 การติดตั้ง Mosquitto Broker บน Raspberry Pi
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 128
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 129
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 130
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 131
9. เสร็ จ สิ ้ น การติ ด ตั ้ ง Mosquitto Broker และทํ า การตรวจสอบว่ า Broker ใช้ ไ ด้ แ ล้ ว หรื อ ไม่ โดยเปิ ด
Terminal ขึ้นมาอีกหน้า แล้วใช้คําสั่ง mosquitto_sub -d -t mqtt/test เพื่อ Subscribe topic ชื่อ
“mqtt/test”
10. ในอี ก Terminal ให้ ใ ช้ คํ า สั ่ ง mosquitto_pub -h localhost -p 1883 -t mqtt/test -m "test" เพื่ อ
Publish ข้อความ “test” ไปยัง Topic ที่ชื่อ “mqtt/test” จะเห็นว่า ข้อความที่ส่งไป แสดงผลที่หน้า
Terminal ฝั่ง Subscribe แสดงถึงการที่ติดตั้ง Mosquitto Broker เรียบร้อยแล้ว
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 132
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง Mosquitto Broker ได้หรือไม่
สามารถทดสอบ Subscribe และ Publish ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 133
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
การใชงาน MQTT Node
MQTT Node เปน Node ที่ติดตั้งมาพรอมกับ Node-RED ตั้งแตแรกในสวนของ Network โดยจะมี
อยู 2 Node คือ mqtt in ที่ใชในการ Subscribe ที่รับขอมูลเขามา และ mqtt out ที่ใชในการ Publish ใน
การสงขอมูลออกไป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 134
5. MQTT in คื อ Node สํ าหรั บการ Subscribe เพื ่ อรั บข้ อมู ลจากภายนอกเข้ ามา โดยสามารถตั้ ง
Properties ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 135
6. MQTT out คือ Node สําหรับการ Publish ข้อมูลไปยัง Broker โดยสามารถตั้ง Properties ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 136
ขั้นตอนการทดลอง
การทดลองที่ 1 ใช Node-RED กับ MQTT Broker
3. MQTT Server นั้นถูกติดตั้งบน Raspberry Pi เช่นเดียวกับ Node-RED จึงใช้ localhost ในช่อง Server
แล้วกด Add
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 137
4. ให้ Action เป็น Subscribe to single topic แล้วตั้ง Topic เป็น mqtt/test, QoS เป็น 2 และ Output
เป็น auto-detect (parsed JSON object, string or buff)
5. นํา MQTT out ออกมามาวางบน Flow แล้วตั้งค่า Properties ต่างๆ โดย Broker ใช้
Broker อันเดียวกับที่ตั้งค่าเอาไว้, Topic ตั้งเป็น Topic เดียวกับที่ Subscribe ที่ MQTT in และ QoS
เป็น 2
6. นํา Debug มาเชื่อมกับ MQTT in และ นํา Inject มาเชื่อมกับ MQTT out โดยตั้งค่า Inject เป็น String
“test” แล้วกด Deploy จะพบว่าที่ MQTT node ขึ้นว่า connected
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 138
7. ทําลองส่งค่าจาก Inject จะพบว่า ข้อความ “test” ถูก Publish หัวข้อ mqtt/test ผ่าน MQTT out ไป
ที่ Mosquitto Broker หลังจากนั้น Broker ส่งข้อมูลต่อให้กับ Subscriber ซึ่งคือ MQTT in จึงได้รับ
ข้อมูลผ่านไปยัง Debug
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถตั้งค่า Server localhost ได้หรือไม่
สามารถใช้งาน MQTT in node ได้หรือไม่
สามารถใช้งาน MQTT out node ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 139
1. กลับไปที่หน้า Terminal ของ Raspberry Pi ให้เข้าไปแก้ไข config file ของ mosquitto ผ่านคําสั่ง
sudo nano /etc/mosquitto/mosquitto.conf จะเข้าสู่หน้าต่างดังรูป
2. ใช้แป้นพิมพ์เลื่อนลงไปบรรทัดล่างสุด แล้วเพิ่มข้อความต่อไปนี้ไว้ตรงท้าย
# default listener
port 1883
# additional listener for websockets
listener 9001
protocol websockets
allow_anonymous false
password_file /etc/mosquitto/passwd
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 140
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 141
6. ทํ า การ Reboot Mosquitto Broker เพื ่ อ ให้ Username และ Password ทํ า งาน ด้ ว ยคํ า สั ่ ง sudo
service mosquitto restart
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 142
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 143
9. เข้าไปที่ MQTT in หรือ MQTT out ก็ได้ แล้วกดปุ่มดินสอที่ Server เพื่อตั้งค่า Server ที่เคยใช้อยู่ใหม่
10. กดไปที ่ แ ถบ Security เพื ่ อ กรอก Username และ Password ที ่ เ ราตั ้ ง เมื ่ อ สั ก ครู่ คื อ Username:
mqtt_test และ Password: mqtt_test แล้วกด Update แล้ว Deploy ระบบ
11. MQTT Node ทั้ง 2 จะกลับมา Connected อีกครั้ง หมายถึงว่า Node สามารถกลับไปเชื่อมต่อกับ
Broker ได้อีกครั้งเรียบร้อย
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 144
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถตั้งค่า Username และ Password ให้กับ Broker ได้หรือไม่
สามารถตั้งค่า Security ของ Server เดิม ให้กลับมาใช้งานได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 145
2. พิมพ์คําสั่ง ifconfig เพื่อเช็ค WLAN IP Address ของ Raspberry Pi ที่ถูกแจกโดย Router แล้วจดบันทึก
IP Address นั้นไว้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 146
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection…");
if (client.connect(mqtt_Client, mqtt_username, mqtt_password)) {
Serial.println("connected");
client.subscribe("ikit2/led1/control");
}
else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println("try again in 5 seconds");
delay(5000);
}
}
}
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 147
if (String(topic) == "ikit2/led1/control") {
if (message == "on") {
digitalWrite(LED1, 0);
client.publish("ikit2/led1/status", "on");
Serial.println("LED ON");
}
else if (message == "off") {
digitalWrite(LED1, 1);
client.publish("ikit2/led1/status", "off");
Serial.println("LED OFF");
}
}
}
void setup() {
Serial.begin(9600);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
dht.begin();
pinMode(LED1, OUTPUT);
digitalWrite(LED1, 1);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > 5000) {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
lastMsg = now;
String data = String(temperature) + "," + String(humidity);
data.toCharArray(msg, (data.length() + 1));
Serial.println("Publish message: " + String(data));
client.publish("ikit2/dht/data", msg);
}
delay(1);
}
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 148
5. เมื ่ อ แก้ ไ ขข้ อ มู ล แล้ ว อั พ โหลดโปรแกรมให้ ก ั บ I-Kit2 จะได้ ผ ลลั พ ธ์ ว ่ า I-Kit2 ส่ ง ข้ อ มู ล DHT ไปยั ง
Mosquitto Broker ที่ Topic: “ikit2/dht/data”
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 149
8. ต่อไปเป็นการสั่งควบคุม LED1 บน I-Kit2 โดยใช้ Inject ส่งข้อมูลไปที่ MQTT out เพื่อ ส่งข้อความไปยัง
Topic ที่ควบคุม LED คือ ikit2/led1/control ที่ต้องใช้ข้อความ on ในการสั่งเปิด และ off ในการสั่งปิด
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 150
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเรียก WLAN IP Address ของ Raspberry Pi ได้หรือไม่
สามารถตั้งค่าและอัพโหลดโปรแกรมของ I-Kit2 ให้ I-Kit2 ส่งข้อมูลได้หรือไม่
สามารถใช้ Node-RED รับข้อมูล DHT ที่ส่งผ่าน MQTT Protocol ได้หรือไม่
สามารถใช้ Node-RED สั่งการ LED1 ผ่าน MQTT Protocol ได้หรือไม่
สามารถใช้ Node-RED รับข้อมูลสถานะ LED1 ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 151
คําถามทายหนวยการเรียนรูที่ 3
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 152
หนวยการเรียนรูที่ 4
ฐานขอมูลในระบบ IoT
จุดประสงค
1. เรียนรู้หลักการทํางานของระบบฐานข้อมูล (Database) บน IoT Gateway
2. เรียนรู้การติดตั้งและใช้งาน InfluxDB บน IoT Gateway
3. เรียนรูก้ ารติดตั้งและใช้งานโหนด Influx บน Node-RED
ตัวชี้วัด
1. สามารถอธิบายหลักการทํางานของระบบฐานข้อมูล (Database) บน IoT Gateway ได้
2. สามารถติดตั้งและใช้งาน InfluxDB บน IoT Gateway ได้
3. สามารถติดตัง้ และใช้งานโหนด Influx บน Node-RED ได้
เนื้อหา
ศึกษาและปฏิบัติเกี่ยวกับโครงสรางหรือองคประกอบของระบบฐานขอมูล (Database) ที่เกี่ยวของกับ
งานดาน Internet of Things ที่ตองทํางานเกี่ยวกับขอมูลอยูตลอดเวลา โดยฐานขอมูลนั้นมีอยูหลากหลาย
ประเภท รูปแบบขอมูลที่เก็บก็มีอยูหลากหลายประเภท จึงตองเลือกฐานขอมูลใหเหมาะสมกับการใชงาน โดย
จะไดศึกษาเกี่ยวกับฐานขอมูลประเภท Time series database และการใชงานฐานขอมูลบน Raspberry Pi
ความรูเดิมที่ตองมี
1. หลักการทํางานของ IoT Gateway และ IoT Server
2. การใช้งานคําสั่งพื้นฐานของระบบปฏิบัติการบนคอมพิวเตอร์
3. การใช้งานโหนดพื้นฐาน และโหนดที่ใช้จัดการข้อมูลในระบบบน Node-RED
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 153
แนวทางการจัดการเรียนรู
การจัดเตรียม
1. ใบงานตามจํานวนนักศึกษา
2. เครื่องคอมพิวเตอร์
3. Raspberry Pi ที่ติดตั้ง OS แล้ว
4. สาย Ethernet
5. I-Kit 2
6. ESP32
7. เซ็นเซอร์ LDR และ DHT22
ขั้นตอนการดําเนินการ
กอนเริ่มตนการเรียนการสอน ใหผูสอนและผูเรียนดาวนโหลดสื่อการสอนและโปรแกรมพื้นฐานสําหรับ
การเรียนไดที่ https://bit.ly/AdvIoT_Training_Doc เพื่อความพรอมในการเรียนการสอน หลังจากนั้นใหเริ่ม
ดําเนินการสอนตามบทเรียน โดย
1. ใบงานที่ 4.1 ฐานข้อมูลในงาน IoT และ การใช้งาน InfluxDB เบื้องต้น
(1) อธิบายเกี่ยวกับการทํางานและการใช้งานฐานข้อมูลในระบบ IoT (Internet of Things)
(2) อธิบายเกี่ยวกับการทํางานและการใช้งานของ InfluxDB
(3) สอนติดตั้งและใช้งาน InfluxDB พร้อมทําการทดลองที่ 1 และการทดลองที่ 2
2. ใบงานที่ 4.2 การใช้งาน InfluxDB บน Node-RED
(1) สอนติดตั้งและใช้งาน Influx Node บน Node-RED พร้อมทําการทดลองที่ 1 ควบคู่ไปด้วย
(2) อธิบายเกี่ยวกับการทํางานของอุปกรณ์อื่นร่วมกับ MQTT Server แล้วทําการทดลองที่ 2 โดยใช้
I-Kit2 ในการส่งข้อมูลแล้วจัดการเก็บข้อมูลเข้า InfluxDB บน Node-RED
ซึ่งแตละใบงานนั้นสามารถเสริมสรางความรูของผูเรียนไดจากคําถามทายหนวยการเรียนรู อีกทั้งยัง
เปนตัวชี้วัดผลการเรียนจากผูเรียนได และการสอนในแตละใบงานสามารถใชเวลาในการสอนในตารางเวลาที่ใช
สอนของใบงาน
ตารางเวลาที่ใชสอนของใบงาน
ใบงานที่ เรื่อง เวลา (นาที)
4.1 ฐานข-อมูลในงาน IoT และ การใช-งาน InfluxDB เบื้องต-น 30
4.2 การใช-งาน InfluxDB บน Node-RED 210
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 154
จุดประสงค
1. เรียนรู้หลักการทํางานของระบบฐานข้อมูล (Database) บน IoT Gateway
2. เรียนรู้การติดตั้งและใช้งาน InfluxDB บน IoT Gateway
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
InfluxDB คืออะไร
InfluxDB เปนหนึ่งใน Time series database (TSDB) ที่พัฒนาขึ้นโดย InfluxData ออกแบบมา
สําหรับจัดการขอมูลประเภท Time series data จํานวนมากอยางรวดเร็วและการวิเคราะหขอมูลแบบ Real-
time ซึ่งสามารถใชเปนที่เก็บขอมูลสําหรับกรณีการใชงานใด ๆ ที่เกี่ยวของกับขอมูลที่มีการ timestamp เปน
จํานวนมาก โดย InfluxDB นั้นรองรับการทํางานรวมกับ APIs บน Platform ตาง ๆ และสามารถติดตั้ง
InfluxDB ไดทั้งใน Laptop ของตัวเอง, Server ของบริษัท แมกระทั้งติดตั้งบน Cloud Server ที่เปน
มาตรฐานสากล เชน AWS, Google Cloud, Microsoft Azure เปนตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 155
คําสั่งทั่วไปในการจัดการ InfluxDB
ในการจัดการ InfluxDB Instance นั้น สามารถจัดการไดใน Terminal ที่ติดตั้ง InfluxDB เอาไว เชน
การติดตั้ง InfluxDB บน Raspberry Pi สามารถจัดการสิ่งตาง ๆ ไดบน Terminal ของ Raspberry Pi ผาน
คําสั่งตางๆ ดังนี้
1. influxd คือ คําสั่งในการเช็ค Version และข้อมูลเบื้องต้นของ InfluxDB ที่ติดตั้งเอาไว้
2. influx คือ คําสั่งในการเข้าจัดการ InfluxDB Instance
3. show databases คือ คําสั่งในการแสดง Databases ที่อยู่ภายใน InfluxDB Instance ทั้งหมด
4. create database "name" คือ คําสั่งในการสร้าง Database ใน InfluxDB Instance โดยตั้งชื่อ
ที่ต้องการแทนคําว่า name
5. drop database "name" คื อ คํ า สั ่ ง ในการลบ Database ใน InfluxDB Instance ตามชื ่ อ ที่
ต้องการ
6. use "name" คือ คําสั่งในการใช้งาน Database ใน InfluxDB Instance ตามชื่อที่ต้องการ
7. show measurements คือ คําสั่งในการแสดง Measurements ที่อยู่ภายใน Database ที่ใช้
งานอยู่ทั้งหมด
8. drop measurement "name" คือ คําสั่งในการลบ Measurement ใน Database ที่ใช้งานอยู่
ตามชื่อที่ต้องการ
นอกจากนี้ ยังมีคําสั่งในการจัดการ หรือตั้งคาสิ่งตางๆ บน InfluxDB เพิ่มเติม โดยศึกษาไดที่
https://docs.influxdata.com/influxdb/v1.8/tools/shell/
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 156
ขั้นตอนการทดลอง
การทดลองที่ 1 การติดตั้ง InfluxDB 1.8 บน Raspberry Pi
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 157
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 158
7. ใช้ ค ํ า สั ่ ง sudo systemctl unmask influxdb.service และตามด้ ว ยคํ า สั ่ ง sudo systemctl start
influxdb เพื่อให้ Raspberry Pi รัน InfluxDB
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 159
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง InfluxDB บน Raspberry Pi ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 160
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 161
4. ใช้ ค ํ า สั ่ ง create database "esp32" เพื ่ อ สร้ า ง Database ขึ ้ น มาใหม่ ท ี ่ ช ื ่ อ ว่ า esp32 และ create
database "esp8266" เพื่อสร้าง Database ขึ้นมาใหม่ที่ชื่อว่า esp8266
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 162
5. ใช้คําสั่ง show databases อีกครั้ง จะพบว่ามี Database ชื่อ esp32 และ esp8266 เพิ่มขึ้นมา
6. ลบ Database ชื่อ esp8266 ออก โดยใช้คําสั่ง drop database "esp8266" และสั่ง show databases
อีกครั้ง จะพบว่า Database esp8266 ได้ถูกลบออกไปแล้ว
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 163
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเข้าใช้งาน InfluxDB ได้หรือไม่
สามารถสร้าง Database ชื่อ esp32 ได้หรือไม่
สามารถสร้าง Database ชื่อ esp8266 ได้หรือไม่
สามารถแสดง Databases ทั้งหมดได้หรือไม่
สามารถลบ Database ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 164
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 165
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 166
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 167
2. influxdb out คื อ Node สํ า หรั บ การจั ด เก็ บ ข้ อ มู ล เข้ า ไปใน Database และ Measurement ที่
ต้องการทีละ 1 measurement โดยสามารถตั้งค่า Properties ได้ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 168
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 169
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 170
ขั้นตอนการทดลอง
การทดลองที่ 1 การใชงาน InfluxDB Node จากการสุม Data บน Node-RED
3. นํา Influx out เข้ามาวางใน Flow และนํา Inject ที่ตั้งค่า Interval ทุก ๆ 10 วินาที
พร้อมกับ Random Node มาวางบน Flow
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 171
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 172
7. ต่อ Inject กับ Random และต่อ Random กับ Influx out ดังรูป แล้ว Deploy
8. สร้าง Random มาใหม่ โดยตั้งค่า 50-60 และ influx out ที่เปลี่ยน Measurement เป็น humidity แล้ว
ต่อเข้ากับ Inject เดิม ดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 173
9. กลับไปที่ VNC ให้เปิด Terminal แล้ว ใช้คําสั่ง influx เพื่อใช้งาน InfluxDB และใช้คําสั่ง use "esp8266"
เพื่อเข้าใช้งาน Database ชื่อ esp8266
10. ใช้ ค ํ า สั ่ ง show measurements เพื ่ อ แสดง Measurements ทั ้ ง หมดใน Database นี้ จะพบกั บ
Measurement ชื่อ temperature และ humidity ที่เก็บค่าที่ถูกสุ่มมาจาก Flow บน Node-RED
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 174
12. หากต้องการข้อมูล temperature ในช่วง 1 นาที ให้ใช้คําสั่ง SELECT * FROM "temperature" where
time > now() - 1m จะพบกับข้อมูล 6 ค่า เนื่องจากข้อมูลถูกส่งมา 6 ครั้ง ใน 1 นาที
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 175
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 176
(1) (2)
16. ทําการต่อ Inject ที่ตั้ง Interval ไว้ 10 วินาที เข้ากับ influx in ทั้งสอง และต่อออกไปยัง Debug จะ
พบว่า ข้อมูลถูกเรียกจาก InfluxDB ออกมาแสดงผลบนหน้าต่าง Debug ของ Node-RED ในรูปแบบของ
Array ที่มี Object อยู่ภายในที่มี Key เป็น time และ value อยู่
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 177
17. หากต้องการแยกข้อมูลเพียง value ออกมา จะต้องทําการ Split 2 ครั้ง และ Switch ที่ตั้งค่าดังรูป จะได้
ผลลัพธ์สุดท้ายเป็นข้อมูลเพียงอย่างเดียว
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถตั้งค่า Database และ Server สําหรับ Influx node ได้หรือไม่
สามารถใช้ influx out เก็บข้อมูลเข้า Database ตาม Measurement
ที่ต้องการได้หรือไม่
สามารถใช้คําสั่ง Query ต่าง ๆ บน Terminal ได้หรือไม่
สามารถใช้ influx in ในการ Query ข้อมูลบน Node-RED ได้หรือไม่
สามารถแยกข้อมูล value ออกมาแสดงเพียงค่าเดียว ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 178
การทดลองที่ 2 เก็บขอมูลจาก DHT22 และสถานะ LED บน I-Kit2 เขา InfluxDB และแสดงผลบน Node-
RED Dashboard
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 179
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 180
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 181
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 182
8. เก็บเข้า InfluxDB โดยลาก influx out มาวาง แล้วตั้งค่าโดย ให้เลือก Add new influxdb แล้วกดปุ่ม
ดินสอ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 183
11. ตั้งค Measurement เป็น temperature และ humidity จะได้ Flow ดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 184
13. ถัดมา ใช้ influx in ในการ Query ข้อมูลล่าสุด จาก esp32 ออกมา โดยใช้คําสั่งดังรูป
(1) SELECT * FROM “temperature” GROUP BY * ORDER BY DESC LIMIT 1
(2) SELECT * FROM “humidity” GROUP BY * ORDER BY DESC LIMIT 1
15. เปลี่ยนจากการ Debug เป็นการแสดงผลบน Node-RED Dashboard โดย สร้าง Tab ชื่อ I-Kit2 ขึ้นมา
และ Group ชื่อ esp32 ดังรูป
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 185
18. ถัดไปเป็นการเก็บข้อมูล LED เข้า Database โดยสถานะของ LED ถูกส่งมาใน Topic: ikit2/led/status
และมีค่าเป็น on/off
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 186
19. การจะเก็บข้อมูลเข้า InfluxDB นิยมทําเป็น Number จึงทําการเปลี่ยนข้อมูลจาก on/off เป็น 1/0 ผ่าน
Change ดังนี้ และตรวจสอบผ่าน Debug
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 187
22. ทําการ Query ข้อมูลจาก led_status มาแสดงผลโดย Dashboard โดยใช้ Inject ที่ตั้งค่า interval 10
วินาที แล้วใช้คําสั่ง Query ดังรูป
23. ใช้ Split และ Switch ดังตัวอย่างเดิม และต่อเข้ากับ led node ที่ตั้งค่าดังรูป คือถ้าข้อมูลเป็น 0 จะ
แสดงไฟสีแดง และ 1 จะแสดงไฟสีเขียว
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 188
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเก็บข้อมูลจาก DHT22 บน I-Kit2 เข้า Database ชื่อ esp32 ได้หรือไม่
สามารถ Query และจัดการข้อมูลล่าสุดของ DHT22 จาก Database ได้หรือไม่
สามารถใช้ Node-RED Dashboard ในการแสดงผลข้อมูลที่เก็บอยู่ใน Database
ได้หรือไม่
สามารถเก็บข้อมูลสถานะ LED1 บน I-Kit2 เข้า Database ชื่อ esp32 ได้หรือไม่
สามารถ Query และจัดการสถานะของ LED จาก Database ได้หรือไม่
สามารถใช้ Node-RED Dashboard ในการแสดงผลสถานะ LED ที ่ เ ก็ บ อยู ่ ใ น
Database ได้หรือไม่
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 189
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 190
คําถามทายหนวยการเรียนรูที่ 4
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 191
หนวยการเรียนรูที่ 5
การแสดงผลขอมูลและการแจงเตือน
จุดประสงค
1. เรียนรู้หลักการทํางานของแอปพลิเคชันบนระบบ IoT
2. เรียนรู้การติดตั้งและหลักการทํางานของ Grafana
3. เรียนรู้การใช้งานเครื่องมือต่างๆบน Grafana Dashboard
4. เรียนรู้หลักการทํางานและใช้งาน Line Notification
ตัวชี้วัด
1. สามารถอธิบายหลักการทํางานของแอปพลิเคชันบนระบบ IoT ได้
2. สามารถติดตั้งและอธิบายหลักการทํางานของ Grafana ได้
3. สามารถใช้งานเครื่องมือต่างๆบน Grafana Dashboard ได้
4. สามารถอธิบายหลักการทํางานและใช้งาน Line Notification ได้
เนื้อหา
ศึกษาและปฏิบัติเกี่ยวกับโครงสรางหรือองคประกอบของ Grafana ที่เปน Open source software
สําหรับการแสดงผลขอมูลที่นิยมใชงานกันทั่วโลก เนื่องจาก Grafana มีโครงสรางและองคประกอบที่ออกแบบ
มาใหสามารถจัดการไดหลากหลายและคลบคลุม ทั้งการจัดการองคกร การจัดการผูใชงาน และการจัดการ
เกี่ยวกับขอมูลที่นํามาทําหนาตางแสดงผลขอมูล หรือ Dashboard โดย Grafana มีเครื่องมือมากมายใหใช
ครอบคลุมงานดาน IoT สามารถเรียกขอมูลจาก InfluxDB ไดอยางงายดาย โดยจะศึกษาตั้งแตการติดตั้ง
Grafana โครงสรางพื้นฐาน ระบบการจัดการ การสราง Dashboard และการใช Panel ตางๆ รวมไปถึงการ
ทําการแจงเตือนผาน Line Notify ดวย Node-RED
ความรูเดิมที่ตองมี
1. หลักการทํางานของ IoT Gateway และ IoT Server
2. การใช้งานคําสั่งพื้นฐานของระบบปฏิบัติการบนคอมพิวเตอร์
3. การใช้งานโหนดพื้นฐาน และโหนดที่ใช้จัดการข้อมูลในระบบบน Node-RED
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 192
แนวทางการจัดการเรียนรู
การจัดเตรียม
1. ใบงานตามจํานวนนักศึกษา
2. เครื่องคอมพิวเตอร์
3. Raspberry Pi พร้อม Adapter
4. SD card 32 GB ที่ติดตั้ง OS แล้ว
5. สาย Ethernet
6. I – Kit V.2
ขั้นตอนการดําเนินการ
กอนเริ่มตนการเรียนการสอน ใหผูสอนและผูเรียนดาวนโหลดสื่อการสอนและโปรแกรมพื้นฐานสําหรับ
การเรียนไดที่ https://bit.ly/AdvIoT_Training_Doc เพื่อความพรอมในการเรียนการสอน หลังจากนั้นใหเริ่ม
ดําเนินการสอนตามบทเรียน โดย
1. ใบงานที่ 5.1 การติดตั้งและใช้งาน Grafana เบื้องต้น
(1) อธิบายเกี่ยวกับหลักการทํางานและการใช้งานซอฟต์แวร์ Grafana
(2) สอนติดตั้งและเปิดใช้งาน Grafana บน Raspberry Pi พร้อมทําการทดลองที่ 1
(3) สอนการจัดการและใช้งาน Grafana เบื้องต้นพร้อมทําการทดลองที่ 2 และการทดลองที่ 3
2. ใบงานที่ 5.2 การสร้าง Grafana Dashboard และการเลือกใช้ Panel
(1) อธิบายเกี่ยวกับหลักการทํางานและการใช้งาน Grafana Dashboard
(2) สอนการจัดการข้อมูลและแสดงผลในรนูปแบบต่างๆ สําหรับ Grafana Dashboard พร้อมทํา
การทดลองที่ 1, การทดลองที่ 2 และการทดลองที่ 3
3. ใบงานที่ 5.3 การทําการแจ้งเตือนผ่าน Line Notify ด้วย Node-RED
(1) อธิบายเกี่ยวกับหลักการทํางานและการใช้งาน Line Notify ด้วย Node-RED
(2) สอนการใช้งาน Line Notify Node แล้วทําการทดลองที่ 1
ซึ่งแตละใบงานนั้นสามารถเสริมสรางความรูของผูเรียนไดจากคําถามทายหนวยการเรียนรู อีกทั้งยัง
เปนตัวชี้วัดผลการเรียนจากผูเรียนได และการสอนในแตละใบงานสามารถใชเวลาในการสอนในตารางเวลาที่ใช
สอนของใบงาน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 193
ตารางเวลาที่ใชสอนของใบงาน
ใบงานที่ เรื่อง เวลา (นาที)
5.1 การติดตั้งและใช-งาน Grafana เบื้องต-น 60
5.2 การสร-าง Grafana Dashboard และการเลือกใช- Panel 180
5.3 การทำการแจ-งเตือนผbาน Line Notify ด-วย Node-RED 120
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 194
จุดประสงค
1. เรียนรู้วิธีการแสดงผลข้อมูลในรูปแบบแผนผังโดย Grafana
2. เรียนรู้การติดตั้งและใช้งาน Grafana เบื้องต้น
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
Grafana คืออะไร
Grafana เป น Open Source Software ที ่ น ิ ย มใช ใ นงานด า น Visualization หรื อ การทํ า
Dashboard โดย Grafana สามารถทํางานรวมกับ Time series database ไดอยางงายดาย ผานเครื่องมือ
ตาง ๆ ที่ Grafana เตรียมไวใหสามารถคนขอมูล ทําการแสดงผล รวมไปถึงการแจงเตือนไดแบบเรียลไทม์
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 195
โครงสร้างของ Grafana
Grafana นั้น ออกแบบโครงสร้างของตัวเองให้ผู้ใช้งานสามารถจัดการระบบต่าง ๆ ได้ตามที่ต้องการดัง
รูปประกอบด้านล่าง โดยมีองค์ประกอบที่สําคัญดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 196
3. User คือ ผู้ใช้งานใน Organization นั้น ๆ โดย User จะมีหลายหน้าที่ (Role) เช่น Admin, Editor,
Viewer ที่เป็นตัวกําหนดสิทธิ์การทํางาน โดย
(1) Admin สามารถจัดการกับ User คนอื่นได้ทุกคน และสามารถจัดการ Data source, Folder
และ Dashboard ได้
(2) Editor สามารถจัดการกับ Data source, Folder และ Dashboard ได้
(3) Viewer สามารถทําได้แค่ดู Dashboard แต่ไม่สามารถแก้ไขสิ่งต่าง ๆ ได้
4. Folder คือ แฟ้มที่เอาไว้จัดเก็บ Dashboard โดยใน Folder นั้น สามารถมีหลาย Dashboard ได้
5. Dashboard คื อ หน้ าแสดงผลข้ อมู ล โดย Dashboard จะดึ งข้ อมู ลจาก Data source ที ่ ม ี อยู ่ ใ น
Organization นั้น ๆ
6. Alert คือ การแจ้งเตือนผ่าน Third party อื่น ๆ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 197
ขั้นตอนการทดลอง
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 198
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 199
6. เริ ่ มใช้ งาน Grafana ผ่ านคํ าสั ่ ง sudo /bin/systemctl enable grafana-server แล้ วตามด้ วย sudo
/bin/systemctl start grafana-server
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 200
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 201
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถติดตั้ง Grafana ได้หรือไม่
สามารถ Log in เข้าใช้งาน Grafana ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 202
1. เข้ า มาที ่ ห น้ า แรกของ Grafana ที ่ 192.168.200.1:3000 และใช้ Username และ Password เป็ น
admin
3. กดเข้าไปที่ Data source เพื่อตั้งค่า Data source ให้กับ Main Org โดยกด Add data source
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 203
4. เลือก InfluxDB
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 204
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถเข้าใช้งาน InfluxDB ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 205
2. ไปที่ Organizations จะพบว่ามี Main Org ที่เป็น Organization ตั้งต้น ให้กด + New Org เพื่อเพิ่ม
Organization ใหม่
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 206
5. ถัดมาเป็นการสร้าง User โดยไปที่แถบ Users ของ Server Admin จะพบว่ามี User เพียงคนเดียวคือตัว
เรา และสามารถเพิ่ม User ได้โดยกด New User
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 207
8. เมื่อเข้ามาจะพบกับชื่อ User มีข้อมูล User บางส่วน สามารถจัดการสิ่งต่าง ๆ กับ User ได้ เช่น
(1) การลบ การปิดการใช้งาน
(2) สามารถตั้งสิทธิ์ให้ User เป็น Grafana Admin ที่สามารถจัดการ Grafana ได้
(3) สุดท้ายคือ Organization ที่ User นี้สามารถเข้าถึงได้ โดยให้ User นี้จัดการได้แค่ New Org
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 208
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 209
10. จะพบว่า newuser จะใช้งานได้แค่ New Org และมี Role ในนั้นเป็น Viewer
11. กด Change role เพื่อเปลี่ยน Role ของ User ให้เป็น Editor แล้วกด Save
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 210
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถสร้าง Organization ใหม่ได้หรือไม่
สามารถสร้าง User ใหม่ได้หรือไม่
สามารถจัดการ User ให้ไปอยู่ Organization ใหม่ได้หรือไม่
สามารถเปลี่ยน Role ให้กับ User ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 211
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 212
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 213
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 214
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 215
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 216
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 217
1. Data source ให้เลือก Data source ที่ต้องการจะแสดงข้อมูล โดย Data source จะต้องถูก
Add ใน Organization นั้น ๆ ไว้เรียบร้อยแล้ว
2. From ในส่วนของ Select measurement ให้เลือก Measurement ที่จะดึงข้อมูลมาใช้
3. Select ในส่วนของ Field นั้น โดยทั่วไปข้อมูลจะเก็บใน value แต่ถ้าหากไม่ได้อยู่ใน value ให้
เลือก field ของข้อมูลที่จะนํามาแสดง
4. Select ในส่วนด้านข้าง Field ให้เลือกเป็น last() ที่อยู่ภายในหัวข้อ Selectors
5. Group by ให้เปลี่ยนจาก fill(null) เป็น fill(none)
การติดตั้ง Plugins
นอกจาก Panel และสิ่งตาง ๆ ที่ Grafana ติดตั้งมาใหตั้งแตแรก ยังมีเครื่องมืออื่น ๆ ที่ เรียกวา
Plugins ใหผูใชงานสามารถเลือกติดตั้งไดตามความเหมาะสม โดยจะอยูในสวนของ Configuration และ
Plugins
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 218
ขั้นตอนการทดลอง
การทดลองที่ 1 ใชสราง Folder และ Dashboard
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 219
4. ตั้งชื่อว่า Advanced IoT แล้วกด Create จะได้ Folder เปล่าที่ยังไม่มี Dashboard ในนั้น
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 220
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 221
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถตั้งค่า Database และ Server สําหรับ Influx node ได้หรือไม่
สามารถใช้ influx out เก็บข้อมูลเข้า Database ตาม Measurement
ที่ต้องการได้หรือไม่
สามารถใช้คําสั่ง Query ต่าง ๆ บน Terminal ได้หรือไม่
สามารถใช้ influx in ในการ Query ข้อมูลบน Node-RED ได้หรือไม่
สามารถแยกข้อมูล value ออกมาแสดงเพียงค่าเดียว ได้หรือไม่
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 222
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 223
3. ปรับแต่งส่วนต่างๆ โดยตั้ง Panel options ให้ Title เป็น DHT22 และตั้งค่า Graph style ดังนี้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 224
8. ตั ้ ง ค่ า การ Query เช่ น เดี ย วกั บ temperature แต่ เ ปลี ่ ย นเป็ น การแสดงค่ า measurement เป็ น
humidity ดังรูป แล้วกด Apply
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 225
11. กด Add panel ใหม่ขึ้นมา แล้วไปมุมบนขวาให้กดที่ Time series เพื่อเลือกเป็น Gauge แทน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 226
12. ตั้งค่า Query ดังเดิม (ข้อที่ 2) โดยจะแสดงข้อมูล temperature และตั้ง Panel Title ว่า Temperature
13. ตั้งค่า Standard options ให้ Min เป็น 0 และ Max เป็น 50 ตั้ง Threshold ดังรูป แล้วกด Apply
14. กด Add panel ใหม่ขึ้นมาเพื่อแสดงผลของ humidity โดยตั้งค่า Min เป็น 0 และ Max เป็น 100 ส่วน
Threshold ให้ตั้งค่าดังรูป แล้วกด Apply
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 227
16. สร้าง Panel ใหม่ขึ้นมา โดยใช้เป็น Bar gauge โดยจะ Query ข้อมูลทั้ง temperature และ humidity
และตั้ง Title ว่า DHT22 ดังรูป
17. ไปที่การตั้งค่าอื่น ๆ ที่แถบ Bar gauge Orientation ให้เปลี่ยนเป็น Horizontal และ Display mode
เป็น Retro LCD และในส่วนของ Standard options ให้เปลี่ยน Color Scheme เป็น Green-Yellow-
Red แล้วกด Apply
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 228
20. ตั้งค่าการ Query ดังเดิม โดยดึงค่า temperature ออกมา และตั้งชื่อ Panel title ว่า Temperature
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 229
21. ในส่วนของ Stat style ให้เลือก Color mode เป็น Background และเลื่อนไปที่ Threshold แล้วปรับสี
ดังรูป แล้วกด Apply
22. กดไปที่ Panel title แล้วเลือก More… และ Duplicate จะได้ผลลัพธ์เป็น Panel ที่หน้าตาเหมือนกัน
และตั้งค่าเหมือนกันทุกประการ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 230
23. Edit ที ่ Panel หนึ ่ ง โดยไปตั ้ ง ค่ า Value mapping เพิ ่ ม โดยเพิ ่ ม Conditions ประเภท Range ตั้ ง
Display text และเลือกสีในการแสดงผล แล้วกด Update และ Apply
25. เพิ ่ ม Panel ขึ ้ นมาอี ก 1 Panel และใช้ เ ป็ น Text โดยเลื อกเป็ นแบบ HTML และ content ใช้ คํ าสั่ ง
ต่อไปนี้
<center><table align="center" border="0">
<p><b><u>
<a
style="text-decora:on: none;font-size:64px;color:#FFD700">
</a>
</u></b></p>
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 231
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถสร้าง Panel ได้หรือไม่
สามารถใช้งาน Time series ได้หรือไม่
สามารถใช้งาน Gauge ได้หรือไม่
สามารถใช้งาน Bar gauge ได้หรือไม่
สามารถใช้งาน Stat ได้หรือไม่
สามารถใช้งาน Text ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 232
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 233
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 234
8. นํา Image address ที่ได้มาวางใน Background URL เปิด Auto Scale ไว้ แล้วกด Apply
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 235
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถสร้าง Panel ได้หรือไม่
สามารถใช้งาน Time series ได้หรือไม่
สามารถใช้งาน Gauge ได้หรือไม่
สามารถใช้งาน Bar gauge ได้หรือไม่
สามารถใช้งาน Stat ได้หรือไม่
สามารถใช้งาน Text ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 236
จุดประสงค
1. เรียนรูก้ ารติดตั้งและใช้งาน LINE Notify Node
2. เรียนรู้การทําการแจ้งเตือนด้วย Line Notify ผ่าน Node-RED
เครื่องมือและอุปกรณ
ทฤษฎีเบื้องตน
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 237
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 238
ขั้นตอนการทดลอง
2. การที ่ จ ะใช้ ง าน Line Notify ได้ น ั ้ น จํ า เป็ น ที ่ จ ํ า ต้ อ งมี Token ก่ อ น โดยให้ ไ ปที ่ https://notify-
bot.line.me/th/ และทําการเข้าสู่ระบบผ่าน Email หรือ QR Code ก็ได้
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 239
5. ตั้งชื่อ Title และเลือก 1-1 chat with LINE Notify แล้วกด Generate Token
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 240
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 241
11. ต่อมาทดลองลบ Content ของ Line Notify ออกให้เป็นว่างเปล่า แล้วกด Done ส่วน Inject ตั้งค่าเป็น
String ที่มีข้อความ Line notify test และกด Deploy
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 242
บันทึกผลทดลอง
คําชี้แจง : ใหผูทําการทดลองเติมเครื่องหมาย P ตามผลการทดลอง
ผลการทดลอง
รายการทดลอง
ได้ ไม่ได้
สามารถสร้าง Line notify Token ได้หรือไม่
สามารถใช้งาน Line Notify Node ได้หรือไม่
อธิบายผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
สรุปผลการทดลอง
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
..............................................................................................................................................................................
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
Advanced IoT | 243
คําถามทายหนวยการเรียนรูที่ 5
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ