IoT Sensors and Devices
Raspberry Pi
บอร์ดคอมพิวเตอร์ขนาดเล็ก (Single-Board Computer หรือ SBC) ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติ คือ ติดต่อ และความคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server และใช้พลังงานต่ำกว่าคอมพิมเตอร์ปกติทั่วไป
Arduino
นั้นได้ใช้ชิป AVR เป็นหลักใน Auduino แทบทุกรุ่น สาเหตุมาจากไมโครคอนโทรเลอร์ของตะกูล AVR นั้นมีความทันสมัย ในชิปในบางตัวสามารถเชื่อมต่อผ่าน USB ได้โดยตรง สามารถใช้กับคอมพิวเตอร์สมัยใหม่ได้เป็นอย่างดี และในไมโครคอนโทรเลอร์ตะกูล AVR ยังมีส่วนของโปรแกรมพิเศษที่เรียกว่า Bootloader อยู่ในระดับล่างกว่าส่วนโปรแกรมปกติ ซึ่งจะเป็นส่วนโปรแกรมที่จะถูกเรียกขึ้นมาก่อนการเรียกโปรแกรมปกติ ทำให้สามารถเขียนสั่งให้ทำงานใดๆก็ได้ ก่อนการเรียกโปรแกรมปกติ ทำให้ Arduino นั้นอาศัยส่วนโปรแกรมแกรมพิเศษนี้ในการทำให้ชิปสามารถโปรแกรมผ่านพอร์ตอนุกรมชนิด UART ได้ จึงทำให้การเขียนโปรแกรมลงไปในชิปใช้เพียง USB to UART ก็เพียงพอแล้ว แต่การโปรแกรมด้วยการใช้โปรโตคอล UART ก็มีข้อเสียตรงที่ต้องใช้เวลาในการบูตเข้าโปรแกรมปกติประมาณ 1 – 2 วินาที
ESP32
เป็นชื่อของไอซีไมโครคอนโทรลเลอร์ที่รองรับการเชื่อมต่อ WiFi มีความสามารถการเชื่อมต่อ Bluetooth Low-Energy (BLE, BT4.0, Bluetooth Smart) ผลิตโดยบริษัท Espressif จากประเทศจีน
STM32
เป็นไมโครคอนโทรเลอร์ตระกูล ARM ขนาด 32 bit จากบริษัท STMicroelectronics จุดเด่นของ STM32 นั้นใช้ CPU ที่เป็นของ บริษัท ARM ตระกูล ARM Cortex-M ชึ่งปัจจุบันนั้นสามารถเขียนโปรแกรมได้หลายแพลตฟอร์ม และข้อดีของ STM32 ก็จะเน้นเป็นไมโครคอนโทรเลอร์ตระกูล ARM ขนาด 32 bit ที่มีทั้งความเร็วในการประมวลผลสูง
nRF5
ของบริษัท Nordic Semiconductor เป็นชิปประเภท SoC (System on Chip) ที่มีตัวประมวลผลหรือซีพียูขนาด 32 บิต ARM Cortex M0 แล้ว ยังมีวงจรสำหรับสื่อสารไร้สายตามโปรโตคอล Bluetooth 4.0 อีกด้วย มาพร้อม SoftDevice ซึ่งเป็น Bluetooth Protocol Stack จึงเหมาะสำหรับนำไปพัฒนาอุปกรณ์ที่ต้องการสื่อสารข้อมูลผ่าน Bluetooth เช่น SmartWatch, Wearable Gadget เป็นต้น
Arduino Framework
Arduino IDE คือ เครื่องมือการเขียนโปรแกรมที่มีใช้งานได้กับอาดุยอิโน่ได้ทุกรุ่น โดยภายในจะมีเครื่องมือที่จะเป็นสำหรับติดต่ออาดุยอิโน่ เช่น การค้นหาอาดุยอิโน่ ที่ติดต่อกับเครื่องคอมพิวเตอร์ การเลือกรุ่นอาดุยอิโน่ที่ต่ออยู่เพื่อนตรวจสอบว่าขนาดของโปรแกรมที่เขียน หรือไรบรารี่ต่างๆซับพอร์ตกับอาดุยอิโน่รุ่นนั้นๆไหม อีกทั้งยังมีโปรแกรมติดต่อผ่านซีเรียลโดยตรงสำหรับคอมพิวเตอร์
FreeRTOS
เป็นหนึ่งในระบบปฏิบัติการแบบเรียลไทม์ (Real-time Operating System) แบบ Open-source ยอดนิยมสำหรับ Embedded Systems ซึ่งถูกนำไปใช้งานบน Microcontrollers กว่า 40 รายการ สำหรับใช้ในระบบ IoT, อากาศยาน, การแพทย์, อุตสาหกรรมเครื่องยนต์ และอื่นๆ โดยระบบปฏิบัติการดังกล่าวถูกออกแบบมาเพื่อรันแอปพลิเคชันที่ต้องการความเที่ยงตรงและแม่นยำเรื่องเวลา
mbed os
เป็นแพลตฟอร์ม ที่ใช้เป็น เครื่องมือการเขียนโปรแกรมที่มีใช้งานกับไมโครคอนโทรเลอร์ หลายๆ แบบ ส่วนมากใช้ในไมโครคอนโทรเลอร์ตระกูล ARM ขนาด 32 bit ซึ่งการติดต่อสื่อสารกับ ในไมโครคอนโทรเลอร์ได้ และทั้งในการเขียนโปรแกรมนั้นสมมารถเขียนผ่านระบบอินเทอร์เน็ตได้ด้วยไม่จำเป็นต้องลงโปรแกรมไดๆ
IoT Networks
Bluetooth
บลูทูธเป็นข้อกำหนดสำหรับอุตสาหกรรมเครือข่ายส่วนบุคคล (Personal Area Networks - PAN) แบบ..ไร้สาย บลูทูธช่วยให้อุปกรณ์อิเล็กทรอนิกส์สามารถเชื่อมต่อกันได้ เช่น โทรศัพท์มือถือ พีดีเอ คอมพิวเตอร์ส่วนบุคคล โดยผ่านทางคลื่นวิทยุ
WI-FI
เป็นเทคโนโลยีที่ได้รับความนิยมที่ช่วยให้อุปกรณ์อิเล็กทรอนิกส์ในการแลกเปลี่ยนข้อมูลหรือการเชื่อมต่ออินเทอร์เน็ตแบบไร้สายโดยใช้คลื่นวิทยุ คำ ๆ นี้เป็นเครื่องหมายการค้าของ Wi-Fi Alliance ที่ได้ให้คำนิยามของไวไฟว่าหมายถึง "ชุดผลิตภัณฑ์ใด ๆ ที่สามารถทำงานได้ตามมาตรฐานเครือข่ายคอมพิวเตอร์แบบไร้สาย (แลนไร้สาย) ซึ่งอยู่บนมาตรฐาน IEEE 802.11" อย่างไรก็ตามเนื่องจากแลนไร้สายที่ทันสมัยส่วนใหญ่จะขึ้นอยู่กับมาตรฐานเหล่านี้ คำว่า "ไวไฟ" จึงนำมาใช้ในภาษาอังกฤษทั่วไปโดยเป็นคำพ้องสำหรับ "แลนไร้สาย" เดิมทีไวไฟออกแบบมาใช้สำหรับอุปกรณ์พกพาต่าง ๆ และใช้เครือข่าย LAN เท่านั้น แต่ปัจจุบันนิยมใช้ไวไฟเพื่อต่อกับอินเทอร์เน็ต โดยอุปกรณ์พกพาต่าง ๆ เช่นคอมพิวเตอร์ส่วนบุคคล เครื่องเล่นเกมส์ โทรศัพท์สมาร์ทโฟน แท็บเล็ต กล้องดิจิทัลและเครื่องเสียงดิจิทัล สามารถเชื่อมต่อกับอินเทอร์เน็ตได้ผ่านอุปกรณ์ที่เรียกว่าแอคเซสพอยต์รือ ฮอตสปอต และบริเวณที่ระยะทำการของแอคเซสพอยต์ครอบคลุมอยู่ที่ประมาณ 20 ม.ในอาคาร แต่ระยะนี้จะไกลกว่าถ้าเป็นที่โล่งแจ้ง
NB-IoT
ย่อมาจาก Narrowband IoT (NB-IoT) เป็นมาตรฐานระบบโครงข่ายที่ใช้พลังงานต่ำ (Low Power Wide Area Network (LPWAN) ที่ถูกพัฒนามาเพื่อให้อุปกรณ์ต่างๆ สามารถเชื่อมต่อเข้าหากันได้โดยผ่านโครงข่ายของสัญญาณโทรศัพท์เคลื่อนที่ เหมาะสำหรับรับส่งข้อมูลขนาดเล็กและอีกทั้งยังเหมาะกับงานที่เกี่ยวกับ IoT
LoRa
เป็นเทคโนโลยีสัญญาณการสื่อสารอยู่โดยใช้เทคนิค Proprietary Spread Spectrum technology ซึ่งรูปแบบถูกพัฒนาโดย Semtech Corporation เครือข่ายสื่อสารแบบกว้างที่เน้นใช้พลังงานต่ำ เป็นเทคโนโลยีที่ถือว่าเป็นหัวใจสำคัญสำหรับงานทางด้าน Internet of Things มีระยะทางในการสื่อสารข้อมูลไกล
IoT Protocol
หมายถึงข้อกำหนดหรือข้อตกลงในการสื่อสารระหว่างอุปกรณ์ IoT ซึ่งเป็นภาษากลางที่ใช้ในการสื่อสาร การที่อุปกรณ์ IoT ถูกเชื่อมโยงกันไว้ในระบบ และสามารถติดต่อสื่อสารกันได้นั้น จำเป็นจะต้องมีการสื่อสารที่เรียกว่า โปรโตคอล เช่นเดียวกับคนเราที่ต้องมีภาษาพูดเพื่อให้สื่อสารเข้าใจกันได้
MQTT
MQTT เป็น protocol ที่ถูกออกแบบมาเพื่อเชื่อมต่อแบบ M2M หรือ Machine to Machine หรือให้เข้าใจกันง่ายๆ คือ “อุปกรณ์ กับ อุปกรณ์” เพื่อรองรับเทคโนโลยี IoT นั่นเอง โดยทั่วไป MQTT Protocol จะทำงานขึ้นอยู่กับ Client และ Server ซึ่ง Server ก็จะเป็นตัวที่ทำหน้าที่รับคำสั่งมาจาก Client เพื่อรับส่งข้อมูล ซึ่ง MQTT server นั้นจะถูกเรียกว่า “Broker” และ “Client” ก็จะเป็นอุปกรณ์ที่เชื่อมต่อถึงกัน
AMQP
AMQP เป็น open โปรโตคอลสำหรับการส่งข้อมูลผ่าน queue แบบ asynchronous มีโครงสร้างการทำงานคือ Producer จะทำการส่งข้อมูลไปยัง Broker จากนั้น Broker จะส่งข้อมูลไปยัง consumer ต่อไป แต่ใน Broker นั้นจะมี component ชื่อว่า Exchange ซึ่ง Exchange ทำการส่งข้อมูลที่ได้รับเข้ามาไปยัง (routing) queue ตามที่กำหนดในข้อมูล
CoAP
ถูกออกแบบให้คล้ายกับ HTTP ซึ่งเป็น Document transfer protocol แต่มีขนาดเล็กกว่ามาก (มี header แบบคงที่ขนาด 4 byte) เพราะตัดส่วนที่ไม่จำเป็นทิ้งและรันบน UDP ซึ่งเป็น protocol ที่ไม่มีการสร้างการเชื่อมต่อระหว่างอุปกรณ์ปลายทาง จึงส่งข้อมูลได้เร็วมากแต่ไม่การันตีว่าข้อมูลจะถูกส่งไปยังปลายทางอย่างแน่นอนและถูกต้องตามลำดับ การส่งซ้ำและเรียงลำดับข้อมูลต้องไปทำบนระดับแอปพลิเคชัน
CoAP เป็นสถาปัตยกรรมแบบ Client/Server โดย client จะทำการร้องขอทรัพยากรไปที่ server โดยตรง จากนั้น server จะทำการตอบกลับคำร้องพร้อมกับออพชัน ‘Content-Type’ เพื่อว่าบอก client ว่ากำลังจะได้รับข้อมูลในรูปแบบไหนกลับไป (เช่น JSON, XML, CBOR เป็นต้น) โดย client สามารถ GET, PUT, POST และ DELETE ทรัพยากรบน Server ด้วย URL และ query string คล้ายกับ REST API ที่เราคุ้นเคยนั่นเอง
XMPP
XMPP คือโปรโตคอลหนึ่งที่ใช้ในการสื่อสารข้อมูลแบบไคลเอนท์-เซิร์ฟเวอร์ (Client-Server) ทำงานลักษณะการส่งข้อความด่วน โดยสนับสนุนข้อความที่รับส่งเป็นภาษา XML โดยไม่มี server ตัวกลางหรือที่เรียกว่า decentralized (no central authoritative server)
VSCP
VSCP เป็นโปรโตคอลที่มีการทำงานอิสระ เหมาะสำหรับทำงานอัตโนมัติ Automation และ VSCP-node แต่ละตัวสามารถทำงานได้อย่างอิสระโดยเป็นส่วนหนึ่งของเครือข่ายแบบกระจายตามโหนดอื่น ๆ
การเชื่อมต่อระหว่างโหนดสามารถใช้บัสต่าง ๆ เช่น Uart, CAN bus, Ethernet, RS-485, RS-232 ที่เชื่อมต่อโหนดแต่ละโหนตามบัสเครือข่าย
HTTP
ย่อมาจาก Hypertext Transfer Protocol เป็นโปรโตคอล(Protocol)สื่อสารที่ทำงานอยู่ในระดับ Application Layer บนโปรโตคอล TCP/IP มีรูปแบบดังนี้
1. ใช้เป็นโพรโตคอลสำหรับแลกเปลี่ยนข้อมูลระหว่าง Application (API)
2. เป็นโปรโตคอลหลักที่ใช้ในการแลกเปลี่ยนข้อมูล (HTML) กันระหว่าง Web Server และ Web Client (Browser)
3. ใช้ URL (Uniform Resoure Locator) ในการเข้าถึงเว็ปไซต์ (Web Site) ซึ่งจะขึ้นต้นด้วย http:// ตามด้วยชื่อของเว็ปไซต์
4. ทำงานที่พอร์ต (port) 80 (มาตรฐาน)
IoT Cloud Services
คือให้บริการที่ครอบคลุมถึงการให้ใช้หน่วยประมวลผล หน่วยจัดเก็บข้อมูล และระบบออนไลน์ต่างๆจากผู้ให้บริการ เพื่อลดความยุ่งยากในการติดตั้ง ดูแลระบบ ช่วยประหยัดเวลา และลดต้นทุนในการสร้างระบบคอมพิวเตอร์และเครือข่ายเองในงานด้าน IoT
Self Hosted
เป็นการสร้างแพลตฟอร์มการให้บริการด้วยตนเอง โดยอาศัยผู้ให้บริการด้าน Hosting หรือใช้คอมพิวเตอร์ในการสร้างแพลตฟอร์ม ที่ตรงตามความต้องการของผู้ใช้งาน
AWS IoT
เป็นบริการสำหรับเชื่อมต่ออุปกรณ์ Internet of Things (IoT) เข้ากับ Cloud ของ AWS โดยผู้ใช้งานสามารถต่อยอดใช้บริการต่างๆที่ AWS มีอยู่แล้วได้ เช่น Amazon Simple Storage Service (S3) สำหรับเก็บข้อมูล, Amazon DynamoDB สำหรับประมวลผลข้อมูล, Amazon Kinesis, AWS Lambda, Amazon Simple Notification Service (SNS) สำหรับสร้าง Push Notification และบริการอื่น ๆ อีกมากมาย
Google IoT Core
เป็นบริการแบบ Managed Service ที่จะช่วยให้องค์กรสามารถเชื่อมต่ออุปกรณ์ IoT เข้ากับ Cloud ได้อย่างปลอดภัย พร้อมสามารถทำการบริหารจัดการและรวบรวมข้อมูลจากอุปกรณ์ IoT ทั้งหมดเพื่อนำไปวิเคราะห์ผลต่อด้วยบริการอื่นๆ ของ Google Cloud IoT Platform ได้แบบครบวงจร
Google Cloud IoT Core นี้ใช้ Cloud Pub/Sub สำหรับรวบรวมข้อมูลและส่งต่อไปยังบริการอื่นใน Google Cloud โดยรองรับโปรโตคอล MQTT สำหรับการเชื่อมต่อกับอุปกรณ์ IoT เป็นหลัก รวมถึงยังสามารถทำงานร่วมกับ Android Things ที่มีความสามารถในการอัปเดต Firmware ให้กับอุปกรณ์ IoT ได้อย่างง่ายดาย ทำให้การเริ่มต้นสร้างโซลูชันทางด้าน IoT เป็นไปได้อย่างรวดเร็ว
Azure IoT
เป็นเครื่องมือสำหรับการควบคุมการเชื่อมต่อและบริหารจัดการข้อมูลที่ได้รับมาจาก “Things” หรือ อุปกรณ์ IoTs ตัวอย่างที่เราคุ้นเคยเช่น Arduino Board ,NodeMCU ผ่านระบบ Cloud Computing ของ Microsoft ที่มีชื่อว่า Azure
Azure IoT รองรับอุปกรณ์ทุกรูปแบบ ทั้งระบบปฏิบัติการวินโดวส์ ลินุกซ์ และระบบปฏิบัติการฝังตัว (พวก real-time OS ทั้งหลาย) ส่วนโพรโทคอลรับส่งข้อมูลที่ใช้ได้ก็หลากหลาย ทั้งการส่งแบบ HTTP ตรงๆ และ Advanced Message Queuing Protocol (AMQP), MQ Telemetry Transport (MQTT) ที่นิยมใช้ในอุตสาหกรรม การส่งข้อมูลใช้งานได้ทั้งสองทาง คือจากคลาวด์ไปยังอุปกรณ์ และจากอุปกรณ์มายังคลาวด์ เมื่อรับข้อมูลจากอุปกรณ์ IoT มาแล้ว ยังสามารถส่งต่อไปประมวลผลบนบริการตัวอื่นของ Azure เช่น Azure Machine Learning หรือ Azure Stream Analytics ได้ทันที
IBM Bluemix
เป็นบริการ Cloud Computing ของ IBM ซึ่งเน้นในด้าน Platform as a Service (PaaS) โดยใช้ Cloud Foundry ซึ่งเป็น OpenSource มาพัฒนาต่อและให้บริการ สำหรับท่านที่ใช้ Cloud Foundry มาก่อนก็ใช้งานเหมือนๆ กัน แต่ Bluemix สามารถใช้งานได้ทั้งในรูปแบบ cli ผ่าน Cloud Foundry Cli ปกติ และการทำงานผ่านหน้าเว็บไซต์ Bluemix โดยตรง platform ที่ให้บริการใน Bluemix มี 4 platform หลักคือ java, node.js, ruby on rails และ ruby sinatra นอกจากนี้จะเป็น service, add-on ซึ่งสามารถเพิ่มเข้ามาได้ในภายหลังได้ นอกจากนี้ยังมี boilerplates ที่รวมเอา runtime และ service เข้ามาให้บริการร่วมกันสร้างเป็นบริการเฉพาะทาง เช่น Internet of Things platform, Mobile Cloud, Node Cached Starter, Big Data และอื่นๆ อีกมากมาย