IoT Technology

สวัสดีครับเพื่อนๆ. ห่างหายไปนานสำหรับการเข้ามาอัพเดทเว็บบล็อกซึ่งอาจกจะเรียกได้ว่า ข้ามปีกันเลยทีเดียว ไม่สมกับที่ตั้งใจจะลงให้ได้เดือนละเรื่อง. แต่เอาจริงๆแล้วก็ไม่มีเวลาจะเขียนบล็อกเลย เนื่องจากงานยุ่งกับทำตัวไม่ว่าง เที่ยวดูบอลตามประสาพนักงานประจำนั่นล่ะครับเลยทำให้ไม่ว่างฮาๆๆๆ… เอาละครับวันนี้พอจะว่างก็เลยว่าจะเขียนสักเรื่องหลังจากทำความเข้าใจกับมันอยู่พักใหญ่. ^_^

ปัจจุบันเทคโนโลยีที่กำลังมาแรงสำหรับนักพัฒนาด้าน Embedded (ไม่ได้แค่เฉพาะ Embedded อย่างเดียวครับ) เป็นเทคโนโลยีที่กล่าวกันมากคงจะหนีไม่พ้น IoT ซึ่งเป็นเทคโนโลยีใหม่ในยุคนี้เลยก็ว่าได้ แรงขนาดที่ว่า Microsoft เอง ก็ยังพอร์ต Windows 10 มาวิ่งเล่นบน Raspberry Pi แถมยังใจดีติด IoT มาให้ด้วย ซึ่งผมยังไม่ได้ตามลงไปดูว่าใช้ Broker ตัวไหน และมี Library ให้ใช้งานมาด้วยหรือไม่? หรือไม่ผมก็เข้าใจผิดเกี่ยวกับมันครับถ้าผิดพลาดก็ขออภัยมานะที่นี้ด้วยครับ.

IoT มันคืออะไร พอค้นดูมีหลายลิงค์อธิบายไว้มากมาย เช่น Internet of Things เมื่อคอมพิวเตอร์เริ่มคุยกันเองได้ , โลกแห่ง IoT มาถึงแล้ว IoT เทคโนโลยีที่ธุรกิจต้องรู้. ลองนึกภาพดูครับว่าถ้าหากอุปกรณ์สามารถสั่งงานไปมาหากันได้ผ่าน www ไม่ว่าจะเป็น PC, Smart Phone หรือแม้แต่อุปกรณ์ขนาดเล็กพวก Micro-Controller, PLC, HUB, Switch หรืออะไรก็แล้วแต่ที่มันสามารถต่อระบบ Network ไม่ว่ามันจะอยู่ที่บ้าน ที่โรงงาน ไร่ นา ฟาร์มโรงเรือน โรงงานอุตสาหกรรมหรือที่อื่นๆที่มีระบบเน็ตเวอร์ที่เข้าถึง www ได้เราจะสามารถควบคุมมันได้ทั้งหมดที่ไหนก็ได้ในโลกใบนี้

IoT ทำมีวิธีการทำงานอย่างไร องค์ประกอบหลักของ IoT จะมี 3 ส่วนคือ Broker, Publisher และ Subscriber. ซึ่งการรับและส่งข้อมูลนั้นมันจะส่งข้อมูลไปมาหากันนั้นจะส่งผ่านตัวกลางนั้นก็คือ Broker Server โดยตัวส่งนี้จะเรียกว่า Publisher  ส่งข้อมูลขึ้นไปยัง Broker พร้อมระบุหัวข้อ(Topic) ที่ต้องการส่งข้อออกไป จากนั้นตัวรับซึ่งเรียกว่า Subscriber ถ้าหากตัวรับต้องการรับข้อมูลจากตัวส่งจะต้องทำการ Subscribe หัวข้อ Topic ของ Publisher นั้นๆ ผ่าน Broker เช่นกัน

IoT

IoT

จากรูปภาพด้านบนจะมีตัว Publisher ทำการ Public ข้อความ “Hello” ใน Topic Device1 เมื่อและถ้าหากมีคอมพิวเตอร์ หรืออุปกรณ์อื่นๆทำการ Subscribe หัวข้อ Topic Device1 เมื่อ Publisher ทำการส่งข้อมูลไปยัง Topic อุปกรณ์ Subscribe จะได้ข้อความ “Hello” เช่นเดียวกัน. ก็คล้ายๆกับที่ใช้งานไลน์ที่คุยกันเป็นกลุ่มนั้นเลยครับ. ซึ่งจะเห็นข้อความ “Hello” ในเวลาเดียวกันนั้นหมายความว่าอุปกรณ์ใดๆที่ทำการ Subscribe Topic เดียวกันก็จะได้ข้อความเดียวกันครับ

โปรโตคอลที่ใช้สำหรับรับและส่งข้อมูลนั้นคือ MQTT ปัจจุบันถึง Version 3. 1 ในที่นี้จะมาทำการทดลองส่งข้อมูลกันตัว Server จะมีอยู่ด้วยกันหลายค่ายครับสำหรับที่ลิสมาด้านล่างนี้ครับ

Open Source MQTT Broker Server

  • Mosquitto
  • RSMB
  • ActiveMQ
  • Apollo
  • Moquette
  • Mosca
  • RabbitMQ

Client

  • Paho
  • Xenqtt
  • mqtt.js
  • node_mqtt_client
  • Ascoltatori
  • Arduino MQTT Client

สำหรับ MQTT Broker Server ฟรีที่ผมพอค้นได้ก็มีดังนี้ครับ

  • test.mosquitto.org
  • broker.mqttdashboard.com

สำหรับเครื่องมีสำหรับทดสอบที่จะทำการส่งข้อมูล(pub) และรับข้อมูล(sub) ก็มีอยู่ด้วยกันหลายตัวครับเช่น แต่ละเลือกมาใช้งานสักตัวหนึ่ง ในที่นี้ผมเลือกเป็น plugin สำหรับ chrome คือ MQTTLens

mqttlens

mqttlens

mqttlens

mqttlens

เปิด MQTTLens ขึ้นมาจากนั้นป้อนรายละเอียด เมื่อป้อนรายละเอียดครบให้คลิกที่ CREATE CONNECTION

  • Connection Name: BrokerMQTT
  • Hostname: test.mosquitto.org
  • Port: 1883
  • Client ID: RXL77Nb
mqttlens

mqttlens

ในที่นี้ผมจะทำการ Subscriber ที่ Topic ชื่อว่า android@10logic และผมจะใช้ตัว Publisher ซึ่งเป็น App สำหรับ Android ทำการ Public ข้อความ Hello 10logic ไปยัง Topic android@10logic  เข้าไปใน play store และค้นคำว่า MyMQTT แล้วติดตั้งลงบน Smart Phone ของเราครับ

MyMQTT

MyMQTT

เปิด MyMQTT และเข้าไปยังเมนู Settings

MyMQTT

MyMQTT

MyMQTT

MyMQTT

MyMQTT

MyMQTT

เมื่อผมใช้ Smart Phone ที่มีอยู่ทำการ Public ข้อความ “Hello 10logic” ผ่าน MyMQTT แสดงผลตามรูป

mqttlens

mqttlens

จะเห็นว่าสามารถรับข้อความ Hello 10logic ได้ตามตัวอย่างดังภาพ

เห็นภาพกันแล้วใช่ไหมครับ ทีนี้เมื่อนักพัฒนาต้องการส่งข้อมูลจากอุปกรณ์ embedded สามารถส่งข้อมูลขึ้นมาได้เช่นกัน ปัจจุบันโมดูล wifi esp2866 มีชุด sdk มาให้ใช้งาน อีกทั้งยังถูกรวมไว้ใน arduino ide เวอร์ชั้นใหม่ๆเรียบร้อยแล้ว ต่อไปหลังจากนี้การพัฒนาด้าน IoT จะง่ายขึ้นมีเครื่องไม้เครื่องมือให้เลือกใช้เยอะแยะไปหมด(เลือกไม่ถูกแฮ๊ะๆ เยอะจัด)

หวังว่าบทความนี้จะเป็นประโยชน์นะครับ.

by@10

Leave a Reply

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


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>