<< Go Back

เทคโนโลยีเข้ามามีบทบาทในการใช้ชีวิตประจำวันของเรามากขึ้น ไม่ว่าจะเป็น โทรศัพท์มือถือ สมาร์ทโฟน แท็บเล็ต ยานพาหนะ หรือแม้กระทั่งเครื่องใช้ไฟฟ้าในบ้านของเราเอง ที่มีการพัฒนาให้ฉลาดและอำนวยความสะดวกต่อผู้ใช้มากขึ้น แนวคิด IOT ที่ย่อมาจาก Internet of Things จึงเป็นส่วนหนึ่งที่จะช่วยให้อุปกรณ์รอบตัวของเรานั้น สามารถทำงานเชื่อมต่อและควบคุมได้อย่างอัจฉริยะ เสมือนว่าอุปกรณ์สามารถเชื่อมต่อและพูดคุยกันเอง ทำให้การใช้ชีวิตประจำวันของเราสะดวกสบายและปลอดภัยมากขึ้น
แนวคิด Internet of Things เดิมมาจาก Kevin Ashton บิดาแห่ง Internet of Things ในปี 1999 ในขณะที่ทำงานวิจัยอยู่ที่มหาวิทยาลัย Massachusetts Institute of Technology หรือ MIT เขาได้ถูกเชิญให้ไปบรรยายเรื่องนี้ให้กับบริษัท Procter & Gamble (P&G)  เขาได้นำเสนอโครงการที่ชื่อว่า  Auto-ID Center ต่อยอดมาจากเทคโนโลยี RFID ที่ในขณะนั้นถือเป็นมาตรฐานโลกสำหรับการจับสัญญาณเซ็นเซอร์ต่างๆ( RFID Sensors) ว่าตัวเซ็นเซอร์เหล่านั้นสามารถทำให้มันพูดคุยเชื่อมต่อกันได้ผ่านระบบ Auto-ID ของเขา โดยการบรรยายให้กับ P&G ในครั้งนั้น Kevin ก็ได้ใช้คำว่า Internet of Things ในสไลด์การบรรยายของเขาเป็นครั้งแรก โดย Kevin นิยามเอาไว้ตอนนั้นว่าอุปกรณ์อิเล็กทรอนิกส์ใดๆก็ตามที่สามารถสื่อสารกันได้ก็ถือเป็น “internet-like” หรือพูดง่ายๆก็คืออุปกรณ์อิเล็กทรอนิกส์ที่สื่อสารแบบเดียวกันกับระบบอินเตอร์เน็ตนั่นเอง โดยคำว่า “Things” ก็คือคำใช้แทนอุปกรณ์อิเล็กทรอนิกส์ต่างๆเหล่านั้น

Kevin Ashton

ต่อมาในยุคหลังปี 2000 มีอุปกรณ์อิเล็กทรอนิกส์ถูกผลิตออกจัดจำหน่ายเป็นจำนวนมากทั่วโลก จึงเริ่มมีการใช้คำว่า Smart ซึ่งในที่นี้คือ Smart Device, Smart Grid, Smart Home, Smart Network, Smart Intelligent Transportation ต่างๆเหล่านี้ ล้วนถูกฝัง RFID Sensors เสมือนกับการเติม ID และสมอง ทำให้มันสามารถเชื่อมต่อกับโลกอินเตอร์เน็ตได้ ซึ่งการเชื่อมต่อเหล่านั้นเองก็เลยมาเป็นแนวคิดที่ว่า อุปกรณ์เหล่านั้นก็ย่อมสามารถสื่อสารกันได้ด้วยเช่นกัน โดยอาศัยตัว Sensor ในการสื่อสารถึงกัน นั่นแปลว่านอกจาก Smart Device ต่างๆจะเชื่อมต่ออินเตอร์เน็ตได้แล้ว ยังสามารถเชื่อมต่อไปยังอุปกรณ์ตัวอื่นได้ด้วย

Internet of Things (IOT) คือ การที่อุปกรณ์อิเล็กทรอนิกส์ต่างๆ สามารถเชื่อมโยงหรือส่งข้อมูลถึงกันได้ด้วยอินเทอร์เน็ต โดยไม่ต้องป้อนข้อมูล การเชื่อมโยงนี้ง่ายจนทำให้เราสามารถสั่งการควบคุมการใช้งานอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ผ่านทางเครือข่ายอินเตอร์เน็ตได้ ไปจนถึงการเชื่อมโยงการใช้งานอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ผ่านทางเครือข่ายอินเตอร์เน็ต เข้ากับการใช้งานอื่นๆ จนเกิดเป็นบรรดา Smart ต่างๆ ได้แก่ Smart Device, Smart Grid, Smart Home, Smart Network, Smart Intelligent Transportation ทั้งหลายที่เราเคยได้ยินนั่นเอง ซึ่งแตกต่างจากในอดีตที่อุปกรณ์อิเล็กทรอนิกส์เป็นเพียงสื่อกลางในการส่ง และแสดงข้อมูลเท่านั้น
Internet of Things นี้ได้แก่การเชื่อมโยงของอุปกรณ์อัจฉริยะทั้งหลายผ่านอินเทอร์เน็ตที่เรานึกออก เช่น แอปพลิเคชัน แว่นตากูเกิลกลาส รองเท้าวิ่งที่สามารถเชื่อมต่อข้อมูลการวิ่ง ทั้งความเร็ว ระยะทาง สถานที่ และสถิติได้
นอกจากนั้น Cloud Storage หรือ บริการรับฝากไฟล์และประมวลผลข้อมูลของคุณผ่านทาง ออนไลน์ หรือเราเรียกอีกอย่างว่า แหล่งเก็บข้อมูลบนก้อนเมฆ เป็นอีกสิ่งหนึ่งที่เราใช้งานบ่อยๆแต่ไม่รู้ว่า เป็นหนึ่งในรูปแบบของ Internet of Things สมัยนี้ผู้ใช้นิยมเก็บข้อมูลไว้ในก้อนเมฆมากขึ้น เนื่องจากมีข้อดี หลายประการ คือ ไม่ต้องกลัวข้อมูลสูญหายหรือถูกโจรกรรม ทั้งยังสามารถกำหนดให้เป็นแบบส่วนตัวหรือ สาธารณะก็ได้ เข้าถึงข้อมูลได้ทุกที่ทุกเวลาด้วยอุปกรณ์อิเล็กทรอนิกส์ใดๆผ่านเครือข่ายอินเตอร์เน็ต แถมยัง มีพื้นที่ใช้สอยมาก มีให้เลือกหลากหลาย ช่วยเราประหยัดค่าใช้จ่ายได้อีกด้วย เนื่องจากเราไม่ต้องเสียเงินซื้ออุปกรณ์จัดเก็บข้อมูล เช่น ฮาร์ดไดรฟ์ หรือ Flash drive ต่างๆ

การแบ่งกลุ่ม Internet of Things
ปัจจุบันมีการแบ่งกลุ่ม Internet of Things ออกตามตลาดการใช้งานเป็น 2 กลุ่มได้แก่
1. Industrial IOT คือ แบ่งจาก local network ที่มีหลายเทคโนโลยีที่แตกต่างกันในโครงข่าย Sensor nodes โดยตัวอุปกรณ์ IOT Device ในกลุ่มนี้จะเชื่อมต่อแบบ IP network เพื่อเข้าสู่อินเตอร์เน็ต
2. Commercial IOT คือ แบ่งจาก local communication ที่เป็น Bluetooth หรือ Ethernet (wired or wireless) โดยตัวอุปกรณ์ IOT Device ในกลุ่มนี้จะสื่อสารภายในกลุ่ม Sensor nodes เดียวกันเท่านั้นหรือเป็นแบบ local devices เพียงอย่างเดียวอาจไม่ได้เชื่อมสู่อินเตอร์เน็ต

การใช้ประโยชน์จาก Internet of Things เพื่อทำให้หลายๆ อย่างง่ายยิ่งขึ้น
การที่เทคโนโลยีเป็นที่แพร่หลายนั้นไม่ได้อยู่ที่ปัจจัยด้านราคาอย่างเดียว แต่เทคโนโลยีนั้นต้องส่งมอบประโยชน์ต่อชีวิตของพวกเราด้วย ซึ่ง Internet of Things ในปัจจุบัน ก่อให้เกิดประโยชน์ในด้านต่างๆ
1. รับส่งข้อมูลรูปแบบดิจิทัล ปัจจุบัน ข้อมูลดิจิทัลมีความจำเป็นมาก เพราะสามารถนำไปใช้กับเทคโนโลยีอื่นๆ ได้ทันที ซึ่ง IOT มีคุณสมบัติด้านการเก็บข้อมูลทางภายภาพให้อยู่ในรูปดิจิทัลได้อย่างง่ายดายและรวดเร็ว จึงนับเป็นประโยชน์อย่างมากในยุค Digital Transformation
2. แม่นยำ ใช้ได้ตลอดเวลา และส่งข้อมูลแบบ Real-Time ข้อมูลจาก IOT ไม่เพียงแต่เป็นดิจิทัลเท่านั้น แต่ยังสามารถแลกเปลี่ยนได้อย่างรวดเร็วระดับ Real-Time มีความแม่นยำ และสามารถใช้งานได้ตลอดเวลา ช่วยให้มีข้อมูลในการตัดสินใจได้ทันท่วงที
3. ลดภาระงานของบุคลากร ในอดีตการเก็บข้อมูลอาจต้องใช้คนเดินทางเข้าไปสอดส่องที่เครื่องมือเพื่อหาความผิดปกติ แต่ปัจจุบัน IOT ไม่เพียงแต่สอดส่องให้เราผ่าน Dashboard เท่านั้น แต่ยังสามารถเรียนรู้การหาความผิดปกติด้วยเทคโนโลยีอื่นๆ เช่น Artificial Intelligence ได้
4. ทำงานตรวจสอบในจุดที่คนเข้าไม่ถึง เราสามารถออกแบบ Smart Device ให้มีขนาดเล็กและทนทานเพื่อติดตั้งตามจุดที่คนเข้าถึงยากหรือในจุดที่มีอันตรายระหว่างดำเนินการได้ เช่น ภายในท่อส่งน้ำมัน หรือบ่อบำบัดน้ำเสีย ช่วยลดความเสี่ยงต่อชีวิตและทรัพย์สินจากการต้องเข้าพื้นที่อันตรายเป็นประจำได้
ต้องถือว่า Internet of Things เป็นอีกหนึ่งเทคโนโลยีที่สำคัญมากในยุค Digital Transformation โดยปัจจุบันเทคโนโลยีนี้ก็เริ่มเข้าไปเกี่ยวข้องกับแวดวงต่างๆ ทั้งภาคธุรกิจและสังคมบ้างแล้ว จะเป็นอย่างไรบ้าง และเติบโตไปแค่ไหนแล้ว รอติดตามได้ในบทความต่อๆ ไปของเราได้

ตัวอย่างสำคัญของการใช้ IOT
เทคโนโลยีของ Internet of Things นั้นได้สร้างพรมแดนใหม่ของการใช้ข้อมูลและการสร้างประสบการณ์ใหม่ๆ เลยกลายเป็นเรื่องที่น่าตื่นเต้นสำหรับหลายๆ คนมากมายที่กำลังพยายามลองหาวิธีการใหม่ๆ ในการเข้าถึงกลุ่มเป้าหมายที่ต่างไปจากเดิม
1. Smart home หรือบ้านอัจฉริยะ คือการใช้เทคโนโลยีมาควบคุมอุปกรณ์ต่างๆ ภายในบ้าน เพื่ออำนวยความสะดวกแก่ผู้อยู่อาศัย, มีระบบการจัดการพลังงาน ระบบรักษาความปลอดภัยอัตโนมัติทั้งภายในและรอบตัวบ้าน ส่วนใหญ่จะควบคุมด้วยระบบคอมพิวเตอร์ เช่น ระบบควบคุมไฟฟ้าแสงสว่าง เช่น เปิด/ปิด หรือปรับระดับความสว่าง ระบบควบคุมอุปกรณ์ไฟฟ้าภายในบ้าน เช่น สั่งงานเครื่องปรับอากาศ หรือการเปิดปิดม่าน เป็นต้น

2. Wearable เป็นอุปกรณ์สวมใส่ เป็นได้ทั้งแฟชั่นและไอทีที่ช่วยเพื่ออำนวยความสะดวกให้กับผู้ใช้ ที่ให้คุณมากกว่าแค่เครื่องประดับร่างกาย เช่น การ Sync ข้อมูลระหว่างนาฬิกา กับ smartphone วัดอัตราการก้าวเดิน การแจ้งเตือน sms โทรเข้า รวมถึงสั่นเตือนในกรณีนาฬิกาอยู่ห่างจาก smartphone เชื่อมต่อผ่านทาง Bluetooth, internet เป็นต้น

3. Smart City “เมืองอัจฉริยะ” หรือสมาร์ตซิตี้ (smart city) เป็นแนวคิดที่หมายถึงระบบที่เชื่อมโยงถึงกัน ซึ่งเป็นส่วนหนึ่งของโครงสร้างพื้นฐานของเมือง แนวคิดเบื้องหลังของเมืองอัจฉริยะคือการที่สภาพแวดล้อมสามารถรับรู้ และปรับเปลี่ยนตัวเอง เพื่อส่งมอบบริการที่มีประสิทธิภาพสูงสุดให้กับผู้อยู่อาศัย
ระบบไฟจราจรที่เชื่อมโยงกัน ทำให้รถรู้ว่าควรจะหยุดตอนไหน และคนเดินถนนรู้ว่าควรข้ามถนนเมื่อไร ในที่สุดระบบสัญญาณจราจรก็พัฒนาเซ็นเซอร์​ (sensor) เพื่อตรวจจับการเคลื่อนไหวของรถยนต์ แทนที่จะใช้เพียงการจับเวลา
ระบบอย่างการสอดแนมด้วยกล้องวงจรปิด (CCTV) ระบบวิเคราะห์ใบหน้า ระบบอ่านป้ายทะเบียนรถยนต์​ ระบบเหล่านี้สร้างข้อมูลขึ้นมาแม้ว่าเราจะไม่ได้กำลังพกพาอุปกรณ์อิเล็กทรอนิกส์ใดๆ แค่สัญจรอยู่บนท้องถนนเราก็ป้อนข้อมูลบางอย่างให้กับระบบแล้ว

4. Smart farming การทำไร่ทำสวนเป็นการปฏิบัติงานในพื้นที่ที่ค่อนข้างห่างไกล ฉะนั้นการนำ Internet of Things มาประยุกต์ใช้เพื่อทำการมอนิเตอร์จึงเป็นอะไรที่สามารถปฏิวัติวงการการทำเกษตรได้เลยทีเดียว

Node-RED เป็นเครื่องมือสำหรับนักพัฒนาโปรแกรมในการเชื่อมต่ออุปกรณ์ฮาร์ดแวร์เข้ากับ APIs (Application Programming Interface) ซึ่งเป็นการพัฒนาโปรแกรมแบบ Flow-Based Programming ที่มีหน้า UI สำหรับนักพัฒนาให้ใช้งานผ่าน Web Browser ทำให้การเชื่อมต่อเส้นทางการไหลของข้อมูลนั้นเป็นเรื่องง่าย

เนื่องจาก Node-RED เป็น Flow-Based Programming นั้นทำให้เราแทบจะไม่ต้องเขียน Code ในการพัฒนาโปรแกรมเลย แค่เพียงเลือก Node มาวางแล้วเชื่อมต่อก็สามารถควบคุม I/O ได้ โดย Node-RED จะมี Node ให้เลือกใช้งานอย่างหลากหลาย สามารถสร้างฟังก์ชัน JavaScript ได้โดยใช้ Text Editor ที่มีอยู่ใน Node-RED และยังสามารถบันทึก Function, Templates, Flows เพื่อไปใช้งานกับงานอื่นต่อไป
Node-RED นั้นทำงานบน Node.js ทำให้เหมาะสำหรับการใช้งานกับ Raspberry Pi เนื่องจากใช้ทรัพยากรน้อย ขนาดไฟล์ไม่ใหญ่และ Node.js ยังทำหน้าที่เป็นตัวกลางให้ Raspberry Pi สามารถติดต่อกับ Web Browser และอุปกรณ์อื่นๆ ได้

เริ่มต้นการใช้งาน  Node-RED
1. บอร์ด Raspberry Pi จับสัญญาณ Wi-Fi หรือเชื่อมต่อ LAN
2. เปิดโปรแกรม Node-RED โดยไปที่ Pi > Programming > Node-RED เพื่อเปิดใช้งาน Node-RED

3. คลิก Web Browser เพื่อใช้งาน Node-RED

4. ใส่ IP Address ของ Raspberry ตามด้วย :1880 เช่น 192.168.1.104:1880 แล้วกดปุ่ม Enter

5. จะปรากฏหน้าจอ UI ของ Node-RED ดังรูป

การเชื่อมต่อ Node
1. การใช้งาน Node-RED นั้น จะเป็นการใช้งานแบบ Flow-based programming โดยเราสามารถเลือก node ที่ต้องการจะใช้มาวางบน Workspace ได้เลย
2. ให้เลือก inject และ debug แล้วลากมาวางบน Workspace

ฝึกทักษะการทดลองกิจกรรมที่ 1 เรียนรู้การใช้งาน Node-RED : สั่งพริ้นข้อความ
1. เริ่มต้นวาด Flow โดยลากโหนด inject (input) และโหนด debug (output) มาวางบน Workspace

2. จากนั้นให้ลากเส้นเชื่อมโยงจากจุดกึ่งกลางของโหนดแรกไปยังจุดกึ่งกลางของโหนดที่สอง

3. ดับเบิ้ลคลิกที่โหนด timestamp ในช่อง Payload ให้เปลี่ยนจาก timestamp เป็น String แล้วพิมพ์ “Hello World” แล้วคลิกปุ่ม Done

4. เมื่อเขียน Flow เรียบร้อยแล้ว ให้คลิกปุ่ม Deploy เพื่อสั่งรันโปรแกรม

5. เปิดมุมมอง Debug messages เพื่อแสดงผลลัพธ์ (Output)

6. ทดสอบโปรแกรมโดยคลิกที่ปุ่มด้านหน้าโหนด Hello World จะปรากฏข้อความที่หน้าต่าง Debug Messages ว่า “Hello World”

ฝึกทักษะการทดลองกิจกรรมที่ 2 เรียนรู้การใช้งาน Node-RED : เปิด-ปิดไฟด้วยสวิตช์ Push Button
อุปกรณ์ที่ใช้สำหรับการทดลอง

1. บอร์ด Raspberry Pi

2. Push Button

3. Breadboard

4. สาย Jumper
5. ตัวต้านทาน 330 โอห์ม 6. หลอด LED

การต่อวงจร
1. เสียบ LED บน Breadboard

2. เสียบสาย Jumper ในแถวเดียวกับขา – (สั้น) ของหลอดไฟ LED ปลายสายเสียบเข้ากับช่อง PIN6 (GROUND) ของขา GPIO

3. เสียบตัวต้านทาน 330 โอห์มเข้าไปในแถวเดียวกับขา + ของ LED

4. ใช้สาย Jumper เสียบในแถวเดียวกับตัวต้านทาน 330 โอห์มอีกด้านหนึ่ง ปลายสายเสียบเข้ากับช่อง PIN12 (GPIO18) ของขา GPIO

5. เสียบ Pushbutton บน Breadboard

6. เสียบสาย Jumper ที่ขาข้างหนึ่งของ Pushbutton ต่อเข้ากับขา PIN14 (GROUND) ของขา GPIO

7. เสียบสาย Jumper ที่ขาอีกข้างหนึ่งของ Pushbutton ต่อเข้ากับขา PIN13 (GPIO27) ของขา GPIO

การเขียนผังวงจร
1. ลากโหนด rpi gpio ดังรูป มาวางบน Workspace

2. ดับเบิ้ลคลิกที่โหนด PIN: เพื่อกำหนด PIN ที่เชื่อมต่อกับ LED โดยกำหนดค่าดังนี้ เสร็จแล้วคลิกปุ่ม Done

3. ลากโหนด inject มาวางบน Workspace 2 บล็อก

4. ดับเบิ้ลคลิกที่โหนด timestamp บล็อกแรก หลังจากนั้นกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

5. ดับเบิ้ลคลิกที่โหนด timestamp อีกอัน หลังจากนั้นกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

6. เชื่อมต่อโหนด 0 และ 1 ไปยังโหนด LED

7. เสร็จแล้วคลิกปุ่ม Deploy เพื่อรันโปรแกรม

8. ทดสอบโปรแกรม โดยคลิกปุ่มหน้าโหนด 0 และปุ่มหน้าโหนด 1 เพื่อส่งค่า 0 หรือ 1 ไปยังโหนด LED ซึ่งเชื่อมต่ออยู่ที่ PIN12 (GPIO18) แล้วสังเกตไฟ LED

9. ลากโหนด rpi gpio ดังรูป มาวางบน Workspace

10. ดับเบิ้ลคลิกที่โหนด PIN: tri เพื่อกำหนดขา PIN ของ Push button แล้วกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

11. ลบเส้นที่เชื่อมโยงระหว่างโหนด 0 และ 1 ที่เชื่อมโยงไปยังโหนด LED ออก แล้วลากเส้นเชื่อมโยงระหว่างโหนด Button ไปยังโหนด LED

12. คลิกปุ่ม Deploy เพื่อรันโปรแกรม แล้วลองทดสอบโปรแกรมโดยคลิกปุ่ม Push Button จะเห็นได้ว่าเมื่อกดปุ่ม Push Button ไฟ LED จะดับ ถ้าไม่กดปุ่ม Push Button ไฟจะติด

การใช้งาน Node-RED UI
Node-RED UI จะเป็นส่วนเสริมของโปรแกรม Node-RED เพื่อให้โปรแกรม Node-RED สามารถสร้าง UI ไว้สำหรับการแสดงผลผ่าน Web Brower ของคอมพิวเตอร์หรือมือถือได้
ในการวาด Flow ตรงแถบเครื่องมือก็จะมี node สำหรับการสร้าง UI

เมื่อวาด Flow และใส่โค้ดคำสั่งเสร็จเรียบร้อย แล้วคลิกปุ่ม Deploy เพื่อรันโปรแกรม ในการเข้าดูผลลัพธ์หน้า Node-RED UI จะต้องเข้าใช้งานผ่าน web Browser โดยใส่ IP Address port 1880 ตามด้วย /ui เช่น 192.168.1.104:1880/ui ก็จะแสดงหน้าของ Node-RED UI ขึ้นมา

ฝึกทักษะการทดลองกิจกรรมที่ 3 เรียนรู้การใช้งาน Node-RED UI : เปิด-ปิดไฟ LED
อุปกรณ์ที่ใช้สำหรับการทดลอง

1. บอร์ด Raspberry Pi

2. หลอด LED

3. Breadboard

4. สาย Jumper
 
5. ตัวต้านทาน 330 โอห์ม  

การต่อวงจร
1. เสียบ LED บน Breadboard

2. เสียบสาย Jumper ในแถวเดียวกับขา – (สั้น) ของหลอดไฟ LED ปลายสายเสียบเข้ากับช่อง PIN6 (GROUND) ของขา GPIO

3. เสียบตัวต้านทาน 330 โอห์มเข้าไปในแถวเดียวกับขา + ของ LED

4. ใช้สาย Jumper เสียบในแถวเดียวกับตัวต้านทาน 330 โอห์มอีกด้านหนึ่ง ปลายสายเสียบเข้ากับช่อง PIN12 (GPIO18) ของขา GPIO

การออกแบบ Flow
1. คลิกไปที่มุมมอง Dashboard

2. คลิกสร้างแท็บใหม่ขึ้นมา โดยคลิกที่ + tab

3. คลิกที่ปุ่ม edit ด้านหลัง Tab1 โดยกำหนดค่าดังนี้ แล้วคลิกปุ่ม Update

4. คลิกที่ปุ่ม + group ด้านหลังแท็บ Control LED จะได้ Group 1 ขึ้นมา

5. คลิกปุ่ม edit ด้านหลัง Group 1 แล้วกำหนดค่าดังนี้ แล้วคลิกปุ่ม Update

6. ลากโหนด switch มาวางบน Workspace

7. ดับเบิ้ลคลิกที่โหนด switch เพื่อกำหนดให้แสดงปุ่ม switch ในกลุ่มใด แท็บใด โดยกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

8. ลากโหนด rpi gpio มาวางบน Workspace

9. ดับเบิ้ลคลิกที่โหนด PIN: เพื่อกำหนดขา PIN ของ LED โดยกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

10. ลากเส้นเชื่อมโยงจากโหนด switch ไปยังโหนด LED

11. คลิกปุ่ม Deploy แล้วคลิกที่ปุ่มดังรูป เพื่อเปิดหน้า UI ขึ้นมาให้ใช้งาน

12. Web Browser จะเปิดแท็บใหม่ขึ้นมา ซึ่งเป็นหน้าเพจสำหรับเปิด-ปิดสวิตช์ควบคุมไฟ LED ตามที่ได้ออกแบบ Flow เอาไว้

13. ทดลองใช้มือถือหรือแท็บเล็ตจับสัญญาณ Wi-Fi ตัวเดียวกับ Raspberry Pi หลังจากนั้นเปิด Web Brower ขึ้นมา แล้วใส่ IP Address ของ Raspberry Pi ตามด้วย :1880/ui เช่น 192.168.1.104:1880/ui เมื่อแตะเปิดสวิตช์ ไฟ LED จะติด เมื่อแตะปิดสวิตช์ ไฟ LED จะดับ

ฝึกทักษะการทดลองกิจกรรมที่ 4 เรียนรู้การใช้งาน Node-RED UI : วัดค่าความชื้นและอุณหภูมิในอากาศ
อุปกรณ์ที่ใช้สำหรับการทดลอง

1. บอร์ด Raspberry Pi

2. เซนเซอร์วัดความชื้นและอุณหภูมิ DHT22

3. Breadboard

4. สาย Jumper

การต่อวงจร
1. เสียบเซนเซอร์ DHT22 บน Breadboard

2. เสียบสาย Jumper ต่อจากขาลบ – ของ DHT22 ไปยัง PIN6 (GROUND) ของขา GPIO

3. เสียบสาย Jumper ต่อจากขาลบ + ของ DHT22 ไปยังขา PIN1 (3V3) ของขา GPIO

4. เสียบสาย Jumper ต่อจากขา out ของ DHT22 ไปยัง PIN7 (GPIO4) ของขา GPIO

การออกแบบ Flow และการเขียนโปรแกรม
ก่อนการใช้งาน DHT22 กับ Node-RED จะต้องทำการดาวน์โหลดและติดตั้งโหนด DHT และไลบรารี่ BCM2835 ก่อน โดยทำตามขั้นตอน ต่อไปนี้
1. เปิดโปรแกรม Terminal แล้วพิมพ์คำสั่ง node-red-stop เพื่อปิดการใช้งาน node-red ชั่วคราว

2. พิมพ์คำสั่ง cd ~/.node-red/ เพื่อเข้าไปในโฟลเดอร์ node-red

3. ก่อนที่จะดาวน์โหลดและติดตั้งโปรแกรมอะไรก็แล้วแต่ จะต้องอัพเดตซอฟแวร์ระบบเสียก่อน โดยพิมพ์คำสั่ง sudo apt-get update

4. ติดตั้ง node-dht-sensor โดยพิมพ์คำสั่ง npm install node-red-contrib-dht-sensor

5. การติดตั้งโหนด dht ต้องทำอีก 3 ขั้นตอน ได้แก่
5.1 พิมพ์คำสั่ง sudo npm install --unsafe-perm -g node-dht-sensor

5.2 พิมพ์คำสั่ง sudo npm install --unsafe-perm -g node-red-contrib-dht-sensor

5.3 ดาวน์โหลดและติดตั้งไลบรารี่ BCM2835 โดยพิมพ์คำสั่ง
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.5.tar.gz

5.4 แตกไฟล์ Zip โดยพิมพ์คำสั่ง tar zxvf bcm2835-1.5.tar.gz

5.5 เข้าไปในโฟลเดอร์ bcm2835-1.5 โดยพิมพ์คำสั่ง cd bcm2835-1.5

5.6 พิมพ์คำสั่ง 3 คำสั่งตามลำดับ
./configure
make
sudo make install

6. ปิดหน้าต่าง Terminal แล้วไปที่ Pi > Programming > Node-RED เพื่อเปิดใช้งาน Node-RED อีกครั้ง

7. เปิด Web Browser เพื่อเข้าหน้าจอ Node-RED จะปรากฏโหนด rpi dht22 เพิ่มขึ้นมาอีก 1 โหนด

8. ลากโหนด inject มาวางใน Workspace

9. ลากโหนด rpi dht22 มาวางใน Workspace

10. ลากโหนด debug มาวางใน Workspace

11. ลากเส้นเชื่อมโยงทั้ง 3 โหนด ดังรูป

12. ดับเบิ้ลคลิกที่โหนด rpi-dht22 เพื่อกำหนดรุ่นและขา PIN ของเซนเซอร์ DHT (ซึ่งมี 2 รุ่นคือ DHT11 และ DHT22) โดยกำหนดค่าดังรูป แล้วคลิกปุ่ม Done

13. ดับเบิ้ลคลิกที่โหนด msg.payload แล้วกำหนดค่าดังรูป แล้วคลิกปุ่ม Done

14. คลิกปุ่ม Detroy เพื่อรันโปรแกรม

15. ลองคลิกที่ปุ่มด้านหน้าโหนด timestamp จะแสดงค่าตัวเลขออกมา 2 ค่า คือค่าอุณหภูมิและความชื้นสัมพัทธ์ในอากาศ โดยจะแสดงผลลัพธ์ออกมาในหน้าต่าง Debug Messages

16. ลากโหนด debug ออกมาอีก 2 อัน

17. ลากโหนด function ออกมา 2 อัน

18. ดับเบิ้ลคลิกโหนด function อันแรก แล้วใส่โค้ด JavaScript ดังรูป โดยอ้างอิงค่าอุณหภูมิซึ่งอยู่ในส่วน payload: แล้วคลิกปุ่ม Done

19. ดับเบิ้ลคลิกโหนด function อันที่สอง แล้วใส่โค้ด JavaScript ดังรูป โดยอ้างอิงค่าความชื้นซึ่งอยู่ในส่วน humidity: แล้วคลิกปุ่ม Done

20. ลากเส้นเชื่อมโยงระหว่างโหนด ดังรูป

21. คลิกปุ่ม Deploy เพื่อรันโปรแกรม แล้วลองคลิกปุ่มด้านหน้าโหนด timestamp จะเห็นว่าจะได้ค่าออกมา 2 ค่าแยกออกจากกัน คือ ค่าอุณหภูมิและความชื้น

สร้างหน้าจอ UI
1. คลิกเปิดหน้าต่าง dashboard

2. สร้างแท็บแสดงบนหน้าจอ โดยคลิกที่ + tab

3. เปลี่ยนชื่อแท็บใหม่ โดยคลิกที่ปุ่ม edit ด้านหลัง Tab 1

4. เปลี่ยนชื่อแท็บในช่อง Name แล้วคลิกปุ่ม Update

5. สร้าง Group เข้ามาในแท็บ โดยคลิกปุ่ม + Group ด้านหลังชื่อแท็บ

6. แก้ไขชื่อ Group โดยคลิกที่ปุ่ม edit ด้านหลัง Group 1

7. เปลี่ยนชื่อ Group ในช่อง Name แล้วคลิกปุ่ม Update

8. สร้าง Group ใหม่ขึ้นมาอีก 1 Group (ทำเหมือนขั้นตอน 5-7) โดยตั้งชื่อ Group ว่า Humidity ก็จะได้แท็บที่มี 2 Group ดังนี้

9. ลากโหนด gauge 2 อันมาวางบน Workspace

10. ลากเส้นเชื่อมโยง ดังรูป

11. ดับเบิ้ลคลิกที่โหนด gauge ที่เชื่อมต่อมาจากฟังก์ชัน temperature โดยกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

12. ดับเบิ้ลคลิกที่โหนด gauge ที่เชื่อมต่อมาจากฟังก์ชัน humidity โดยกำหนดค่าดังนี้ แล้วคลิกปุ่ม Done

13. ลบโหนด timestamp ออกไป เพื่อให้เซนเซอร์วัดค่าอัตโนมัติ โดยไม่ต้องคลิกปุ่ม และลบโหนดที่ใช้แสดงข้อความทั้ง 3 โหนดออก ให้เหลือแค่โหนดดังรูป

14. คลิกปุ่ม Deploy เพื่อรันโปรแกรม แล้วคลิกปุ่มดังรูป เพื่อเปิดไปยังหน้า UI

15. เซนเซอร์ DHT22 จะวัดค่าอุณหภูมิและความชื้นออกมา โดยแสดงออกมาเป็นเกจวัดค่าตามที่ได้ทำการเลือกโหนด gauge เอาไว้

16. ทดลองใช้มือถือหรือแท็บเล็ตจับสัญญาณ Wi-Fi ตัวเดียวกับ Raspberry Pi หลังจากนั้นเปิด Web Brower ขึ้นมา แล้วใส่ IP Address ของ Raspberry Pi ตามด้วย :1880/ui เช่น 192.168.1.104:1880/ui

 

ระบบตรวจวัดอุณหภูมิและความชื้นในอากาศ

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

1. บอร์ด Raspberry Pi

2. เซนเซอร์ DHT22

3. Relay Module

4. สาย Jumper

การต่อวงจร

     DHT22 Sensor

     1. เสียบสาย Jumper เข้ากับขา + ของเซนเซอร์ DHT22 ไปยังขา PIN2 (5V) ของขา GPIO บนบอร์ด Raspberry Pi
     2. เสียบสาย Jumper เข้ากับขา out ของเซนเซอร์ DHT22 ไปยังขา PIN7 (GPIO4) ของขา GPIO บนบอร์ด Raspberry Pi
     3. เสียบสาย Jumper เข้ากับขา - ของเซนเซอร์ DHT22 ไปยังขา PIN6 (GND) ของขา GPIO บนบอร์ด Raspberry Pi

     Relay Module

     1. เสียบสาย Jumper เข้ากับขา VCC ของ Relay ไปยังขา PIN4 (5V) ของขา GPIO บนบอร์ด Raspberry Pi
     2. เสียบสาย Jumper เข้ากับขา GND ของ Relay ไปยังขา PIN14 (GND) ของขา GPIO บนบอร์ด Raspberry Pi
     3. เสียบสาย Jumper เข้ากับขา IN1 ของ Relay ไปยังขา PIN40 (GPIO21) ของขา GPIO บนบอร์ด Raspberry Pi

การติดตั้งและใช้งานแอพลิเคชัน Blynk

     1. ติดตั้งแอพลิเคชัน Blynk บนมือถือ

 

     2. เปิดแอพลิเคชันขึ้นมา หลังจากนั้นให้สร้างบัญชีในการใช้งานแอพลิเคชันขึ้นมาใหม่ โดยแตะที่ Create New Account

 

     3. กรอกข้อมูลในช่อง Email และ Password หลังจากนั้นให้แตะที่ Next

 

     4. สร้างโปรเจ็คต์ใหม่ โดยแตะที่ New Project

 

     5. กำหนดค่าในโปรเจ็คต์ที่สร้างขึ้นใหม่ ดังนี้

 

     6. จะเข้าสู่หน้าจอในการออกแบบ ให้แตะที่หน้าจอ 1 ครั้ง จะปรากฏหน้าต่าง Widget Box ขึ้นมา โดยในการใช้งาน Blynk ระบบจะให้ใช้งานฟรี 2000 Energy หากต้องการซื้อเพิ่มให้แตะที่ +Add เพื่อซื้อ Energy เพิ่ม

 

     7. แตะที่ Gauge ซึ่งใช้ 300 Energy จะปรากฏหน้าจอ Gauge ขึ้นมา 1 ชิ้น

 

     8. แตะที่ Gauge 1 ครั้ง จะปรากฏหน้าจอ Gauge Settings ให้กำหนดค่าดังนี้

         - Gauge : กำหนดข้อความบนหน้าจอ Gauge เป็น "ความชื้น"
         - PIN : เลือกเป็น V0
         - กำหนดช่วงข้อมูลเป็น 0 - 100
         - ช่อง LABEL : กำหนดหน่วยให้เป็น "%RH"

 

     9. เมื่อเสร็จแล้วให้แตะที่ OK

     10. แตะที่หน้าจอออกแบบ 1 ครั้ง หลังจากนั้นให้แตะที่ Gauge อีกครั้ง เพื่อสร้าง Gauge ขึ้นมาใหม่

 

     11. แตะที่ Gauge ที่สร้างขึ้นมาใหม่ 1 ครั้ง จะปรากฏหน้าจอ Gauge Settings ให้กำหนดค่าดังนี้

         - Gauge : กำหนดข้อความบนหน้าจอ Gauge เป็น "อุณหภูมิ"
         - PIN : เลือกเป็น V1
         - กำหนดช่วงข้อมูลเป็น 0 - 100
         - ช่อง LABEL : กำหนดหน่วยให้เป็น "*C"

 

     12. เพิ่ม Slider ขึ้นมา 1 อัน โดยแตะที่หน้าจอออกแบบ แล้วแตะเลือก Slider

 

     13. แตะที่ Slider ที่สร้างขึ้นมาใหม่ แล้วตั้งค่าดังนี้

 

     14. แตะที่สัญลักษณ์ห้าเหลี่ยม ดังรูป

 

     15. ส่งรหัส AUTH TOKEN ไปยังอีเมล์ เพื่อนำใช้ในโค้ดคำสั่ง เพื่อเชื่อมต่อมือถือกับอุปกรณ์ที่เชื่อมต่อกับบอร์ด Raspberry Pi

เขียนโปรแกรมคำสั่ง

     1. เชื่อมต่ออินเตอร์เน็ตให้กับบอร์ด Raspberry Pi โดยเสียบสาย LAN หรือจับสัญญาณ Wi-Fi

     2. เปิดโปรแกรม Terminal ขึ้นมา หลังจากนั้นให้ทำการติดตั้ง Blynk Python Library โดยพิมพ์คำสั่ง sudo pip3 install blynklib 

     3. เปิดโปรแกรม Thonny Python IDE เพื่อเขียนโค้ดคำสั่ง

     4. เขียนโค้ดคำสั่ง ดังนี้

 

     5. ใส่รหัส AUTH TOKEN ที่ส่งเข้าไปในอีเมล์ หรือพิมพ์ตามรหัส AUTH TOKEN ที่อยู่ในแอพ Blynk แทนที่โค้ดคำสั่ง  ยกตัวอย่างเช่น

 

     6. คลิกปุ่ม Run ที่โปรแกรม Thonny Python IDE และแตะปุ่ม Play ที่หน้าจอโปรเจ็คต์ในแอพลิเคชัน Blynk บนมือถือ จะเห็นว่า

        - ถ้าอุณหภูมิสูงกว่า 25 องศาเซลเซียส Relay จะทำงาน ทำให้พัดลมทำงาน แถบ Slider จะถูกปรับค่าเป็น 1

 

        - ถ้าอุณหภูมิน้อยกว่าหรือเท่ากับ 25 Relay จะหยุดทำงาน ทำให้พัดลมหยุดทำงาน แถบ Slider จะถูกปรับค่าเป็น 0

 

<< Go Back