บทความ WebThings Gateway ตอนที่ 2 ใช้งาน Add-ons ต่างๆ บน WebThings Gateway

บทความ WebThings Gateway ตอนที่ 2 ใช้งาน Add-ons ต่างๆ บน WebThings Gateway

WebThings Gateway

       บทความ WebThings Gateway เป็นบทความทเกี่ยวกับการสร้างเว็บไซต์สำหรับควบคุมอุปกรณ์ IoT ของตัวเองโดยใช้บอร์ด Raspberry Pi (บอร์ดคอมพิวเตอร์ขนาดเล็กเท่าบัตรเครดิต) เป็น Gateway ของอุปกรณ์ IoT ไม่จำเป็นต้องเขียนโปรเเกรมให้ยุ่งยาก จัดการส่วนต่างๆด้วยการลากวางเท่านั้น รายละเอียดในบทความนี้จะเเบ่งเนื้อหาออกเป็น หลายๆส่วน ซึ่งจะเเยกออกบทความหลายบท เพื่อจะไม่ให้เนื้อหาในเเต่ละบทนั้นยาวเกินไป โดยจะประกอบด้วย

– บทความ WebThings Gateway ตอนที่ 1 สร้างเว็บไซต์ IoT ด้วย WebThings Gateway

– บทความ WebThings Gateway ตอนที่ 2 ใช้งาน Add-ons ต่างๆ บน WebThings Gateway

– บทความ WebThings Gateway ตอนที่ 3 ใช้งาน Rule เเละ Log ข้อมูล

– บทความ WebThings Gateway ตอนที่ 4 ส่งข้อมูลจากบอร์ด ESPino32 ไปยัง WebThings Gateway

– บทความ WebThings Gateway ตอนที่ 5 รับข้อมูลจาก WebThings Gateway มาควบคุมการทำงานบนบอร์ด ESPino32

        บทความตอนที่ 2 ใช้งาน Add-ons ต่างๆ บน WebThings Gateway เป็นการใช้งาน Add-ons ต่างๆ ซึ่ง Add-ons ในบทความนี้จะหมายถึง Plugin สำหรับใช้งานฟังก์ชันต่างๆที่ทาง moziila ได้สร้างไว้เเล้ว หรือหากต้องการสร้าง Add-ons ของตัวเองก็สามารถทำได้เช่นกัน (ดูการสร้าง Add-ons เพิ่มเติม) หากนึกภาพไม่ออกส่วนนี้คือ Icon สำหรับเชื่อมต่อระหว่างอุปกรณ์ IoT กับ ผู้ใช้งานผ่านหน้าเว็บไซต์นั่นเอง

ในบทความนี้ไม่สามารถอธิบาย Add-ons ต่างๆ ได้ทั้งหมด จึงเลือกมาเพียง Add-ons เบื้องต้นที่น่าสนใจ (หากสนใจ Add-ons อื่นๆ สามารถอ่านเพิ่มเติมและทดลองใช้งานได้ด้วยตัวเอง) ซึ่งในบทความนี้มี Add-ons ที่จะนำเสนอ มี 3 Add-ons คือ 

– Speed test Add-ons สำหรับวัดความเร็วอินเทอร์เน็ตของบอร์ด Raspberry Pi

– GPIO(Output) Add-ons สำหรับสั่งงานขา GPIO ของบอร์ด Raspberry Pi

– GPIO(Input)  Add-ons สำหรับอ่านค่าสถานะที่ขา GPIO ของบอร์ด Raspberry Pi

อุปกรณ์ที่ใช้

1. Raspberry Pi 3 Model B+ (EFDV647) จำนวน 1 pcs Single Board Computer จาก Raspberry Pi Foundation ใช้ชิพ Broadcom BCM2837B0 Quad-Core ARM Cortex-A53 (ARMv8) ความเร็ว 1.4 GHz มีหน่วยความจำ LPDDR2 SDRAM ขนาด 1 GB พร้อมชิพ Cypress CYW43455 Dual-Band Wi-Fi 2.4 GHz / 5GHz และ Bluetooth 4.2 BLE

2. Official Wall Adapter Power Supply (EPWS061) จำนวน 1 pcs อแดปเตอร์จ่ายไฟแบบ micro usb ขนาดเเรงดัน 5.1 โวลต์ 2.5 เเอมป์ สำหรับบอร์ด Raspberry Pi 

3. SanDisk Ultra microSDHC UHS-I Card 32 GB (EACC093) จำนวน 1 pcs หน่วยความจำ microSD Card ขนาด 32 GB (C10 U1 A1) ความเร็วมาตรฐาน Read Speed: up to 98MB/s สำหรับใช้งานร่วมกับบอร์ด Raspberry Pi หรือบอร์ดอื่นๆ

4. 830 point White BreadBoard (EACC026) จำนวน 1 pcs BreadBoard หรือ ProtoBoard จำนวน 830 รู ขนาด 16.5 * 5.5 * 1 ซม. ใช้สำหรับต่อวงจรทดลอง

5. Male to Female Cable Jumper Wire 40 Pins (ELNK054) จำนวน 1 pcs สาย Jumper Wire แบบสายแพ สามารถฉีกออกเป็นเล็กได้ 40 เส้น ความยาวสาย 20 cm ปลายด้านนึงเป็น pin header ตัวผู้ อีกด้านเป็น header ตัวเมีย

6. Button Switch จำนวน 1 pcs สวิตซ์กดติดปล่อยดับ

7. Resistor 220 Ohm เเละ Resistor 4.7 kOhm  จำนวน 1 pcs ตัวต้านทาน 220 Ohm สำหรับวงจร LED เเละ 4.7 kOhm สำหรับวงจร Switch

 

วิธีการติดตั้งและใช้งาน Add-ons เบื้องต้น (รวมติดตั้ง Speed test Add-ons)

ในขั้นตอนเเรกของการใช้งาน WebThings Gateway คือ ติดตั้งและใช้งาน Add-ons ในส่วนนี้จะเเบ่งย่อยได้อีก 3 ขั้นตอน นั้นคือ 

1. ติดตั้ง Add-ons ในตัวอย่างจะเป็น Speed test Add-ons สำหรับวัดความเร็วของอินเทอร์เน็ตที่บอร์ด Raspberry Pi ใช้งานอยู่ ดังรูป ขั้นตอนการเพิ่ม Add-ons

ขั้นตอนการเพิ่ม Add-ons

2. ตั้งค่า Add-ons ในเเต่ละ Add-on นั้นมีการตั้งค่าอยู่เเตกต่างกันดังนั้นจึงยกตัวอย่างหน้ากำหนดค่าของ Add-ons ดังรูป configure Add-ons

configure Add-ons

3. เรียกใช้งาน Add-ons ดังรูป เพิ่ม icon Add-on บน WebThings

เพิ่ม icon Add-on บน WebThings

GPIO (Output) Add-ons

        GPIO Add-ons คือ Plugin สำหรับใช้งานขา GPIO (General Purpose Input/Output) ของบอร์ด Raspberry Pi เพื่อใช้งานเป็น Input สำหรับรับค่าจากเซ็นเซอร์ วงจรอิเล็กทรอนิกส์ ปุ่มกด เเละอื่นๆ  หรือ เพื่อใช้งานเป็น Output สำหรับต่อควบคุมอุปกรณ์อิเล็กทรอนิกส์ เช่น LED โมดูลรีเลย์ เป็นต้น

        ในตัวอย่างนี้จะยกตัวอย่างเป็นการใช้งานขา GPIO ของบอร์ด Raspberry Pi เป็น Output เพื่อควบคุมการทำงานการเปิดปิดของหลอด LED เพราะเป็นอุปกรณ์อิเล็กทรอนิกส์เเบบเบสิคที่หาง่าย ไม่ได้เป็นอันตรายสำหรับผู้ใช้งานผู้เริ่มต้น หากเข้าใจรูปเเบบการทำงานเเล้วผู้ใช้สามารถนำไปประยุกต์กับโมดูลรีเลย์ ควบคุมการเปิดปิดไฟ ควบคุมการทำงานของปั๊มน้ำ หรืออื่นๆตามต้องการ ตามรูป WebThing ควบคุมการทำงานของ LED

WebThing ควบคุมการทำงานของ LED 

ขั้นตอนใช้งาน GPIO (Output) Add-ons

1. ก่อนติดตั้ง Add-ons สำหรับควบคุมขา GPIO ของบอร์ด Raspberry Pi สิ่งที่เพิ่มเข้ามาจากการใช้งาน Add-ons ทั่วไปคือการต่อวงจรสำหรับใช้งานขา GPIO ในตัวอย่างนี้จะใช้งาน ขา GPIO 17 สำหรับควบคุม LED ดังรูป วงจรควบคุม LED ของ WebThing Raspberry Pi (Active LOW)

วงจรควบคุม LED ของ WebThing Raspberry Pi (Active LOW) 

2. เพิ่ม GPIO Add-ons ดังรูป เพิ่ม GPIO Add-ons

เพิ่ม GPIO Add-ons 

3. กำหนดขาที่ใช้ควบคุม LED ดังรูป กำหนดค่า GPIO ที่ควบคุม LED

กำหนดค่า GPIO ที่ควบคุม LED

4. เพิ่ม Icon ของ Add-ons ดังรูป เพิ่ม Icon led

เพิ่ม Icon led

5. ทดสอบการทำงาน ดังรูป WebThings ควบคุม led

WebThings ควบคุม led 

GPIO (Input)  Add-ons

        ในตัวอย่างนี้จะยกตัวอย่างเป็นการใช้งานขา GPIO ของบอร์ด Raspberry Pi เป็น Input เพื่อรับค่าจากสวิตซ์กดติดปล่อยดับเพราะเป็นอุปกรณ์อิเล็กทรอนิกส์เเบบเบสิคเช่นเดียวกับหลอด LED หากเข้าใจรูปเเบบการทำงานเเล้วผู้ใช้สามารถนำไปประยุกต์เปลี่ยนเป็นเซ็นเซอร์ เช่น Door Switch เซ็นเซอร์ตรวจจับการเคลื่อนไหว หรือเซ็นเซอร์อื่นๆ ตามต้องการ ตามรูป WebThing รับค่าจากสวิตซ์กดติดปล่อยดับ

WebThing รับค่าจากสวิตซ์กดติดปล่อยดับ 

ขั้นตอนใช้งาน GPIO (Output) Add-ons

1. ในตัวอย่างนี้จะใช้งานขา GPIO ขา 18 ของบอร์ด Raspberry Pi เข้ากับวงจรสวิตซ์ ดังรูป WebThing รับค่าจากสวิตซ์กดติดปล่อยดับ (Active LOW)

WebThing รับค่าจากสวิตซ์กดติดปล่อยดับ (Active LOW) 

2. เนื่องจากได้ติดตั้ง GPIO Add-ons ไปเเล้วในตอนเเรกจึงสามารถข้ามไปสู่ขั้นตอนถัดไปคือขั้นตอนการตั้งค่าได้เลย ตามรูป กำหนดค่า GPIO สำหรับอ่านค่าสวิตซ์

กำหนดค่า GPIO สำหรับอ่านค่าสวิตซ์ 

3. เพิ่ม Icon ของ Add-ons ดังรูป เพิ่ม Icon สวิตซ์

เพิ่ม Icon สวิตซ์

4. ทดสอบการทำงาน ดังรูป WebThings รับค่าจากสวิตซ์กดติดปล่อยดับ

WebThings รับค่าจากสวิตซ์กดติดปล่อยดับ

เพียงเท่านี้เราก็จะได้ Icon เเสดงผลและควบคุมอุปกรณ์ IoT บนเว็บไซต์ IoT ของเราเเล้ว อาทิเช่น  วัดความเร็วอินเทอร์เน็ต ควบคุม LED เเละตรวจสอบการกดปุ่ม หากต้องการเพิ่ม Add-ons ต่างๆสามารถ ศึกษาการใช้งานเพิ่มเติมได้ครับ

>>> อ่านต่อ ตอนที่ 3 ใช้งาน Rule เเละ Log ข้อมูล <<<

ขอขอบคุณข้อมูลอ้างอิงจาก

– https://iot.mozilla.org/