มาเล่น Ubuntu Core บน Google Compute Engine กันบ้าง ตามที่ Canonical ประกาศว่า Ubuntu Core ทำงานบน Cloud ได้ บน IoT Devices ก็ได้ แต่ Snappy เหมือนจะไม่มีอะไรให้เล่นเลย ครั้งนี้มาลองใช้งาน Ubuntu Core บน Google Compute Engine และติดตั้ง MQTT Broker เพื่อรองรับงาน Internet of Thing กันดูบ้าง จะได้รู้กันไปเลยว่า Ubuntu Core ทำได้ ตัวอย่างอาจจะแปลกไปสักหน่อย ครั้งหน้าจะแนะนำบน Raspberry Pi 2 B+ ก็แล้วกันครับ ครั้งนี้มาลองเล่นบน GCE กันก่อน สร้าง project บน Google Developer Console ให้เรียบร้อย

สำหรับท่านที่ยังไม่มี command line tools แนะนำให้ติดตั้งให้เรียบร้อย สำหรับ Ubuntu 14.04 ติดตั้งตามนี้ได้เลย


Continue reading

ครั้งที่แล้วพาเล่น NodeMCU Devkit เบื้องต้นไปแล้ว ครั้งนี้มาลองต่อ sensor กันบ้าง เท่าที่หา sensor ได้มี DHT22 เอาไว้หากิน 1 ตัว DHT22 เป็น temperature sensor และ humidity sensor แบบดิจิตอลสามารถนำมาใช้งานร่วมกับ Devkit ได้ ซึ่งมีนักพัฒนาเขียน lua module เอาไว้ให้แล้ว มาต่อ DHT22 กับ NodeMCU ดังรูป

จากครั้งที่แล้ว NodeMCU จะเริ่มทำงานที่ไฟล์ init.lua ก่อนใช้เพื่อเชื่อมต่อ wifi เมื่อเชื่อมต่อได้แล้วจึงจะเรียก list.lua และ script.lua ทำงาน


Continue reading

Deaware เอา NodeMCU devkit มาให้ลองเล่น บอร์ดตัวนี้เป็นบอร์ดที่รวมเอา ESP8266 (ESP-12) + USB to Serial + NodeMCU firmware เข้าไว้ด้วยกัน ทำให้การใช้งานง่ายมากขึ้น ไม่ต้องมีอุปกรณ์ต่อพ่วงเยอะ แถมมี GPIO เพิ่มเป็น 10 พอร์ท เพียงพอต่อการใช้งาน สำหรับ NodeMCU devkit ที่ได้มาเป็นบอร์ดเปล่าๆ ใช้ AT Command ในการสั่งงาน ชีวิตไม่อิสระเท่าไร แต่ทางผู้พัฒนา Board ก็มี NodeMCU Firmware ให้คุณสามารถเขียน Lua ใส่ลงไปได้ ทำให้การใช้งานง่ายมากขึ้น


Continue reading

ครั้งที่แล้วได้ลองเล่น MQTT Broker บน Linux Server ครั้งนี้ขอมัดรวมรวดเดียวเลยละกัน เพราะเดี๋ยวจะไม่ได้ blog สักทีดองไว้นานมาก ครั้งนี้เราจะมาลองเชื่อมต่อ Arduino + Sensor ส่งข้อมูลไปยัง Raspberry Pi โดยใช้ MQTT ผ่าน LAN หากลองมาดู diagram เราจะได้ภาพแบบนี้

ลองมาดูทีละส่วน เริ่มจาก Raspberry Pi ก่อน ติดตั้ง MQTT Broker ก่อน เราใช้ Mosquitto เหมือนเดิมดังนี้


Continue reading

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

MQTT Broker มีหลายค่ายให้ใช้งาน เราเลือกใช้ของง่ายๆ กันก่อน คือ Mosquitto เจ้ายุงนี้เป็น OpenSource MQTT Broker สนับสนุน MQTT Broker v3.1/3.1.1 วิธีการติดตั้งก็ง่ายมาก ติดตั้งผ่าน PPA ได้เลยดังนี้

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto python-software-properties

เท่านี้ก็ใช้งานได้แล้ว อ้อเกือบลืม mosquitto ทำงานบน port 1883 ครับ ได้ Broker แล้วจะทดลองเล่นยังไง มี 2 ทางเลือกคือ ใช้ MQTT Client หรือเขียนโปรแกรมเชื่อมต่อ ทางเลือกที่ดีที่สุดคือใช้ Client ครับ :) ผมเลือก Client ที่คิดว่าน่าจะใช้ง่ายที่สุดคือ MQTT Spy ครับ ดาวน์โหลดมาแล้วเรียกใช้งาน เราจะได้หน้าตาแบบนี้
Continue reading

ครั้งที่แล้วพาเล่น Digital Temperature Sensor DHT22 กับ Raspberry Pi เราสามารถอ่านค่า Temperature และ Humidity ออกมาได้ แต่ถ้าจะให้สนุกต้องเก็บข้อมูลและเอาไปใช้งานต่อได้ซึ่งก็มีอยู่หลายวิธี เช่น เก็บข้อมูลลงฐานข้อมูล เก็บข้อมูลลงไฟล์ เป็นต้น เนื่องจากเคย blog เรื่อง Xively กับ Arduino ไปแล้ว ครั้งนี้ขอไม่ blog เรื่องนี้กับ Raspberry Pi ก็แล้วกันครับ แต่จะขอใช้ REST API ที่สร้างจาก StrongLoop แทนที่ blog ไปครั้งที่แล้ว ลองไปหาอ่านกันได้

REST Client บน PyPi ไม่ใช่เรื่องยาก ขึ้นอยู่กับว่าเราเลือกที่จะใช้ Python Module ไหนมากกว่า ซึ่งก็มีอยู่หลายตัวให้เลือกใช้ ดังนี้


Continue reading

ครั้งที่แล้วได้ใช้ aREST บน Arduino กันไปแล้ว ครั้งนี้มาลองเล่น Xively กันดูบ้าง Xively เป็นบริการ PaaS สำหรับ Internet of Things คุณสามารถเขียน/อ่านข้อมูลที่ได้จาก sensor ไปเก็บไว้ที่ Xively ได้ และข้อมูลสามารถเก็บได้หลายแบบไม่ว่าจะเป็นค่าตัวเลข, พิกัด GPS และสามารถทำ Triggers ผ่าน HTTP POST ได้ หากค่าที่อ่านได้จาก sensor ตรงกับเงื่อนไขที่คุณตั้งไว้ เช่น แดดออก อุณหภูมิมากกว่า 35 องค์ศาเซลเซียส ให้เปิด sprinkler ถ้าอุณหภูมิลดลงเหลือ 30 ให้ปิด sprinkler เป็นต้น

ไหนๆ ยกตัวอย่างเรื่องอุณหภูมิแล้ว มี sensor ที่เกี่ยวกับ อุณหภูมิอยู่หลายตัว เช่น TMP35 เป็น Temperature Sensor แบบ Analog มี 3 ขา ใช้งานง่ายๆ เอาไฟ 2.7-5.5V ต่อเข้าขา V in และอ่านค่าจาก V out แล้วเอาค่าที่ได้จาก V out มาคำนวณเพื่อหาค่า Temperature ตัวอย่างการคำนวณ ดังนี้

  • VOLT_OUT = 100*5/1024.0
  • TEMP_CEL = (VOLT_OUT-0.5)*100
  • TEMP_FAR = (TEMP_CEL * 9/5) + 32;


Continue reading

เนื่องจากซื้อ Arduino UNO กับ Wifi Shield ของ Tony Labs เอาไว้คิดว่าน่าจะได้เอามาทำอะไรสนุกๆ แต่ทิ้งไว้นานมากจนลืม พอนึกได้ก็ลองเล่นสักหน่อย จะได้อยู่ในกระแส Internet of Things (IoTs) บ้าง ฮาร์ดแวร์ประเภท Embedded และ Linux Embedded มีอยู่หลากหลายค่าย ที่เป็นที่นิยมก็ได้แก่ Arduino, Raspberry Pi, Beagle Board เป็นต้น การประยุกต์ใช้งานสามารถทำได้หลายอย่าง ต่อเซนเซอร์เพื่อรับค่า หรือควบคุมอุปกรณ์ต่างๆ ได้ ถ้าเป็น Linux Embedded ก็สามารถติดตั้งโปรแกรมใน SD Card ได้ หรือติดตั้ง server service ต่างๆ ก็ได้ เป็นคอมพิวเตอร์ตัวเล็กๆ ให้ใช้งานได้เลย แต่ต้องมี package ใน Repository ให้ติดตั้งนะครับ Linux Embedded ส่วนใหญ่จะใช้ CPU แบบ ARM ฉะนั้นจะติดตั้งอะไรก็ดูสักนิดว่ามี package สำหรับ CPU Architecture ที่เราใช้หรือเปล่า

แต่สำหรับ Arduino UNO ต้องเขียนโปรแกรมฝังเข้าไปอย่างเดียว อย่าหวังว่าจะ apt-get install apache php mysql อะไรเข้าไปได้ ต้องเขียน service เหล่านั้นขึ้นมาเอง…น่าสงสาร แต่ Arduino เป็น Open Embedded Board ใช้แนวคิดโดยเพิ่มคุณสมบัติใหม่ผ่าน Shield จึงทำให้มีคนทำ Shield เพื่อมาต่อกับ Arduino เยอะมากขึ้น ตัวอย่าง เช่น Wifi Sheild, Ethernet Shield, Data Logger Shield, GSM Shield เป็นต้น เรียกได้ว่าอยากได้อะไรก็ซื้อ Shield มาเสียบ นอกจาก Shield แล้วก็ยังมี Module แบบปกติที่ใช้งานกันทั่วไปอีกด้วย


Continue reading