วันพฤหัสบดีที่ 15 มิถุนายน พ.ศ. 2560

Week02 : : Arduino IoTs – MQTT and Anto Interface

Week02 : : Arduino IoTs – MQTT and Anto Interface


ทฤษฏี 

IoT and MQTT
Message Queuing Telemetry Transport (MQTT) เป็นProtocol ที่ออกแบบมาเพื่อการเชื่อมต่อแบบ M2M (machine-to-machine) คืออุปกรณ์กับอุปกรณ์ สนับสนุนเทคโนโลยี iot (Internet of Things) คือเทคโนโลยีที่อินเทอร์เน็ตเชื่อมต่อกับอุปกรณ์ต่าง ๆ เช่น โทรศัพท์มือถือ รถยนต์ โทรทัศน์ ตู้เย็น เข้ากับอินเทอร์เน็ตทำให้สามารถเชื่อมโยงสื่อสารกับอุปกรณ์ต่าง ๆ ได้ โดยผ่านเครือข่ายอินเทอร์เน็ต ซึ่งจะทำให้มนุษย์สามารถ ควบคุมอุปกรณ์ต่าง ๆ จากที่อื่นได้ เช่นการสั่งปิดเปิดไฟในบ้านจากที่อื่น ๆ
เนื่องจากโปรโตคอลตัวนี้มีน้ำหนักเบา  ออกแบบมาเพื่อใช้งานกับอุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก การรับส่งข้อมูลในเครื่อข่ายที่มีขนาดเล็ก แบนร์วิธต่ำ ใช้หลักการแบบ publisher / subscriber คล้ายกับหลักการที่ใช้ใน Web Service ที่ต้องใช้ Web Server เป็นตัวกลางระหว่างคอมพิวเตอร์ของผู้ใช้ แต่ MQTT จะใช้ตัวกลางที่เรียกว่า Broker เพื่อทำหน้าที่ จัดการคิว รับ - ส่ง ข้อมูลระหว่างอุปกรณ์ และทั้งในส่วนที่เป็น Publisher และ Subscriberปัจจุบันเทคโนโลยีที่กำลังมาแรงสำหรับนักพัฒนาด้าน Embedded
           IoT มันคืออะไร พอค้นดูมีหลายลิงค์อธิบายไว้มากมาย เช่น Internet of Things เมื่อคอมพิวเตอร์เริ่มคุยกันเองได้ , โลกแห่ง IoT มาถึงแล้ว IoT เทคโนโลยีที่ธุรกิจต้องรู้. ลองนึกภาพดูครับว่าถ้าหากอุปกรณ์สามารถสั่งงานไปมาหากันได้ผ่าน www ไม่ว่าจะเป็น PC, Smart Phone หรือแม้แต่อุปกรณ์ขนาดเล็กพวก Micro-Controller, PLC, HUB, Switch หรืออะไรก็แล้วแต่ที่มันสามารถต่อระบบ Network ไม่ว่ามันจะอยู่ที่บ้าน ที่โรงงาน ไร่ นา ฟาร์มโรงเรือน โรงงานอุตสาหกรรมหรือที่อื่นๆที่มีระบบเน็ตเวอร์ที่เข้าถึง www ได้เราจะสามารถควบคุมมันได้ทั้งหมดที่ไหนก็ได้ในโลกใบนี้

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







         โปรโตคอลที่ใช้สำหรับรับและส่งข้อมูลนั้นคือ MQTT ปัจจุบันถึง Version 3. 1 ในที่นี้จะมาทำการทดลองส่งข้อมูลกันตัว Server จะมีอยู่ด้วยกันหลายค่ายครับสำหรับที่ลิสมาด้านล่างนี้ครับ
Open Source MQTT Broker Server
·        Mosquitto
·        RSMB
·        ActiveMQ
·        Apollo
·        Moquette
·        Mosca
·        RabbitMQ

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

สำหรับ MQTT Broker Server ฟรีที่ผมพอค้นได้ก็มีดังนี้ครับ
·        test.mosquitto.org
·        broker.mqttdashboard.com








MQTT



       MQTT (Message Queue Telemetry Transport) เป็นโปรโตคอลสำหรับ Internet of Things โปรโตคอลนี้ใช้วิธีการเหมือนกับ Message Queue ปกติแต่พัฒนาให้รองรับงานด้าน Internet of Things นอกจากจะรอรับและอ่านค่าแล้ว ยังสามารถสั่งงานอุปกรณ์ที่ใช้ MQTT ได้ด้วย การใช้งานโปรโตคอลนี้ต้องจะต้องมีอุปกรณ์ที่ฝัง MQTT Broker มาเพื่อทำหน้าที่รับส่งข้อมูลไปยังอุปกรณ์อื่นที่ใช้ MQTT เหมือนกัน

การทดลอง MQTT ตามลิ้งค์ล่างนี้เลยนะครับ
https://drive.google.com/file/d/0B4fTQcHQWdcUWXNnbDJxUGNQdzQ/view?usp=sharing





------------------------------------------------------------------------------------------------------------------------



Anto


Anto คือสื่อกลางในการสื่อสารและตัวช่วยเหลือที่ช่วยให้คุณสร้างสรรค์นวัตกรรมโดยเฉพาะทางด้าน IoT ได้ง่ายขึ้น โดยที่ไม่ต้องมีปัญหาจุกจิก หรือตั้งค่าอะไรให้วุ่นวาย
Anto เป็นสื่อกลางในการสื่อสาร Anto ตั้งเซิร์ฟเวอร์ให้คุณใช้บริการฟรี เป็นเสมือนตัวกลางในการสื่อสารระหว่างสิ่งต่างๆบนโลกอินเตอร์เน็ตเช่น คุณต้องการสั่งงานบอร์ดไมโครคอลโทรลเลอร์ผ่านอินเตอร์เน็ตโดยใช้โทรศัพท์มือถือของคุณ เป็นต้น ซึ่งปัจจุบันระบบเรารองรับการติดต่อสื่อสารผ่าน HTTP, HTTPS, MQTT, MQTTS, Websocket ทำให้: ทีมของคุณไม่ต้องเสียเวลาในการติดตั้งและตั้งค่าเซิร์ฟเวอร์ รวมถึงคอยมาดูแลรักษาระบบ
Anto สร้าง Library/API ที่ใช้งานง่าย Anto สร้าง Library ในการเขียนโปรแกรมและสร้าง API ให้นักพัฒนาสามารถเข้าถึงใช้งานและพัฒนาต่อยอดได้อย่างง่ายดาย ยกตัวอย่าง คุณสามารถส่งค่าไปยัง server โดยใช้เพียงแค่หนึ่งคำสั่งเช่น Anto.DigitalUpdate(“led”,true); ทั้งนี้เพื่อความง่ายในการเขียนโปรแกรม ซึ่งปัจจุบันเราได้ทำ Library รองรับ ESP8266 (Nodemcu), Arudino แล้ว และกำลังพัฒนาเพื่อให้รองรับ Rasserby Pi และอื่นๆ ทำให้: ทีมของคุณพัฒนาได้อย่างรวดเร็วมากขึ้น ใช้เวลากับส่วนอื่นได้มากขึ้นเช่น การทำฮาร์ดแวร์-กลไก การออกแบบผลิตภัณฑ์ เรื่องติดต่อธุรกิจอื่น เป็นต้นครับ

ขั้นตอนเตรียมพร้อม
1.       ติดตั้ง Arduino IDE ที่รองรับ ESP8266
·        ดาว์โหลด และ ติดตั้ง Arduino IDE v1.6.9+
·        ทำให้ Arduino IDE ของเรารู้จักกับบอร์ด ESP8266 เข้าเมนู File > Preferences จากนั้นใส่ข้อความว่า http://arduino.esp8266.com/stable/package_esp8266com_index.json ลงไปในช่อง Additional Board Manager URLs แล้วกดตกลง
·        Install lib โดยเข้าเมนู Tools > Boards Manager พิมพ์ในช่องค้นหาว่า esp8266
·        จากนั้นกดเลือก Install รอการติดตั้งสักครู่
2.       ติดตั้ง Lib Anto และ สมัครสมาชิก Anto
·        ดาวน์โหลด Lib Anto (Ver. 0.5.2) แล้วแตกไฟล์ที่ดาวน์โหลด เปลี่ยนชื่อโฟลเดอร์เป็น AntoIO
·        วางโฟลเดอร์ AntoIO ไปไว้ที่ Documents > Arduino > Libraries
·        สมัครสมาชิกเป็นครอบครัว Anto กรอกข้อมูลให้ครบถ้วนแล้วกดยืนยันการสมัคร

·        Login เข้าสู่ระบบ


สำหรับการทดลองตามลิ้งค์ด้านล่างเลยครับ

https://drive.google.com/file/d/0B4fTQcHQWdcUbWFsLURWa3pjYjg/view?usp=sharing



-------------------------------------------------------------------------------------------------------
เอกสาร แหล่งข้อมูลอ้างอิง




--------------------------------------------------------------------------------------------------------








ไม่มีความคิดเห็น:

แสดงความคิดเห็น