มาเล่น HAP-NodeJS สำหรับ HomeKit Accessory กัน

เนื่องจากมีหลายท่านแนะนำ HomeKit ของ Apple ให้ลองเล่นกับ Siri ทั้ง Dearware และ Chiang Mai Maker Club (CMMC) ได้ทำเล่นกันไปสนุกสนานกันไปนานแล้ว ก็เลยมาเล่นบ้าง โครงการ HomeKit Bridge แบบนี้มีนักพัฒนาหลายคนพยายามแกะโปรโตคอล เพื่อสร้างอุปกรณ์หลอกๆ แล้วสั่งให้ Siri ทำงานได้ โดยไม่ต้องไปหาซื้ออุปกรณ์ที่รองรับ HomeKit มาใช้งานจริงๆ เช่น คุณอยากจะควบคุมหลอดไฟในบ้าน ก็ไม่ต้องไปซื้อ SmartBlub มาเปลี่ยนทั้งบ้าน อยากจะควบคุมปลั๊กไฟในบ้านก็ไม่ต้องเปลี่ยนเต้าเสียบทั้งบ้าน เป็นต้น

โดยปกติ HomeKit Accessory จะทำงานผ่าน Wifi หรือ Bluetooth หากสามารถสร้าง Accessory หลอก HomeKit ได้ ก็สามารถใช้ Siri สั่งงานได้ ซึ่งโครงการแบบนี้มีอยู่เยอะพอสมควร โดน Apple ปิดไปบ้างก็มี ครั้งนี้มาแนะนำ HAP-NodeJS เป็น HomeKit Accessory Server ดูจากชื่อใช้ Node.js ก็สามารถเอาไปติดตั้งที่ไหนก็ได้ PC, Router ที่ใช้ OpenWRT หรือ Raspberry Pi มาลงมือติดตั้งกันเลย เราจะใช้ Raspberry Pi เป็น Accessory Server กัน
Continue reading

มาใช้งาน ESPert Arduino Library กับ NodeMCU Devkit v1 กัน

สำหรับท่านที่ใช้งาน ESPresso Lite คงจะคุ้ยเคยกับบริการของค่าย ESPert และคงได้ใช้ ESPert Arduino Library กันไปบ้าง ตัว Library นอกจากจะใช้งานกับ Board ใน Series ESPresso แล้ว ยังสามารถเอามาใช้งานกับ Wifi Dev Kit ที่ใช้ ESP8266 ได้ แนะนำให้ใช้กับ ESP-12E+ ขึ้นไป อย่างเช่น NodeMCU Dev Kit v1 ได้ ทำให้เราสามารถใช้ความสามารถของ Library ที่มีอยู่ได้เลย ทั้ง SmartConfig, AP Mode,เรียกใช้งาน OLED และ DHT22 แบบง่ายมากๆ และการเชื่อมต่อกับบริการของ ESPert อย่างเช่น MQTT Service ได้

หากมาดู pin layout ของ ESPresso Lite เปรียบเทียบกับ NodeMCU DevKit v1 จะพบว่า

  • pin D0 หรือ GPIO 16 ต่อ LED เดียวกันกับ NodeMCU Dev Kit v1
  • pin D1, D2 คือ SCL และ SDA เอาไว้ต่อกับจอ OLED
  • pin D4 ต่อกับ USER Button
  • pin D6 ต่อกับ DHT22

Continue reading

มาทำ Smart Home ด้วย HomA กัน

HomA เป็น framework สำหรับสร้าง Smart Home รองรับการเชื่อมต่อกับอุปกรณ์ Internet of Things ได้อย่างง่ายๆ HomA ใช้ MQTT Protocol ในการสื่อสารและการเก็บข้อมูล การเชื่อมต่อของอุปกรณ์ IoT ต่างๆ ใน HomA เราจะเรียกว่า Components จะเชื่อมต่ออ่านเขียนข้อมูลกับ MQTT Broker ซึ่ง Components ไม่ได้หมายถึงตัวอุปกรณ์เพียงอย่างเดียว แต่รวมไปถึงบริการต่างๆ ด้วย เช่น Weather Service, Google Calendar เป็นต้น HomA มีตัวอย่างการติดตั้ง Components ต่างๆ ไว้หลายตัว เช่น Ambilight, Calendar, Logger, CSM, Rules, Sockets เป็นต้น สำหรับการควบคุม Components ต่างๆ สามารถสั่งงานผ่าน Mobile App ชื่อ HomA ได้เลย

มาลองเล่น HomA กัน เริ่มจากติดตั้ง HomA service กันก่อนดังนี้

export HOMA_BASEDIR=/opt/homa

git clone https://github.com/binarybucks/homA.git $HOMA_BASEDIR

cd $HOMA_BASEDIR

ติดตั้ง submodule

git submodule init

git submodule update

Continue reading

มาเล่น NETPIE กัน

NETPIE เป็น Platform as a Service บริการการเชื่อมต่อข้อมูลและแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ ได้ เหมาะสำหรับ Internet of Things ซึ่งรูปแบบการใช้งานจะเหมือนกับ MQTT พ่วงความสามารถด้าน Authentication และ Token เพิ่มความปลอดภัยในการสื่อสาร เราสามารถเชื่อมต่อกับ NETPIE ได้หลายช่องทาง ทั้งอุปกรณ์ IoT อย่าง Arduino, Raspberry Pi, ESP8266 Dev Kit, HTML5 หรือแม้กระทั่ง Node.js Application ดังนั้นหากคุณใช้ ESP8266 Dev Kit ของค่ายใดอยู่ก็ตามสามารถใช้งานได้เลย ดู Library ของอุปกรณ์ต่างๆ ได้ที่หน้าโครงการใน GitHub NETPIE ให้บริการโดยศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC)

มาลองเล่นกัน การใช้งาน NETPIE ก็ง่ายมากๆ

  • สมัครสมาชิก
  • เพิ่ม Application ลงใน Key Management
  • เขียนโค้ดลงในอุปกรณ์

Continue reading

True Smart Life Smart City

แปะไว้ชอบมากมาย ไม่ได้ไปงานที่เอมควอเทียร์ เสียดายมากๆ แต่ True Innovation ทำให้เรามองเห็นภาพของ Smart City ได้ชัดเจนมากยิ่งขึ้น หลังจากนี้คงมีอะไรให้ได้เล่นอีกเยอะ

อ่านบทความ เปิดประสบการณ์สมาร์ทให้ชีวิตกับ True Smart Life Smart City เปลี่ยนไปด้วยกัน ให้ชีวิตสมาร์ทยิ่งขึ้น ที่ Blognone นะครับ

มาเล่น SmartConfig บน ESP8266 กัน

CMMC เล่น SmartConfig บน ESP8266 แถมออก Mobile App ชื่อ ESP8266 SmartConfig ให้เล่นด้วย ก็เลยคิดว่าน่าสนุกดีเลยลองเล่นบ้าง ใน Feature SmartConfig ของ ESP8266 ทำงานเหมือนกับ Wifi Module ของ TI สามารถใช้ Mobile App ช่วยตั้งค่า SSID ให้กับ Wifi Module ได้ ทำให้การตั้งค่า SSID สามารถทำได้ง่ายมากขึ้น และไม่ต้องฝังโค้ดระบุ SSID ตายตัวในโปรแกรม ลองดู Demo ของ CMMC กันก่อน

CMMC ให้แหล่งข้อมูลมาเพิ่มเติมอีกหน่อยดังนี้

Continue reading

มาเล่น Blynk กับ ESP8266 กัน

มีคนชวนเล่น Blynk ก็เลยลองเล่นบ้าง Blynk เป็น platform ที่ช่วยให้คุณเชื่อมต่อ Arduino, Raspberry Pi, ESP8266 กับ Mobile App ได้ง่ายมากขึ้น ง่ายจนแทบไม่ต้องทำอะไรเลย ข้อดีของ Blynk คือไม่ต้องมี board อะไรพิเศษ เอา Board เดิมๆ มาเล่นได้เลย อ้อเกือบลืมไปต้องต่อ internet ได้ด้วยนะ

บริการของ Blynk มี 3 ส่วนคือ

  • Mobile App สำหรับควบคุมหรือดูข้อมูล
  • Cloud Service สำหรับเก็บข้อมูลจากอุปกรณ์
  • Library สำหรับเขียนโค้ดเชื่อมต่อกับ Cloud Service

มาลองเล่นกัน เริ่มจากติดตั้ง App Blynk กันก่อน รองรับทั้ง iOS และ Android สะดวกมากๆ สมัครสมาชิกแล้วสร้าง Project เลือกบอร์ดเป็น ESP8266
Continue reading

มาเล่น Photon Wifi Dev Kit กัน

เมื่ออาทิตย์ที่แล้วได้ของเล่นใหม่จาก Deaware มา 1 อันเป็น Wifi Dev Kit ชื่อ Photon จากค่าย Particle (หรือชื่อ Spark เดิมนั่นเอง) ผมซื้อต่อจาก Deaware มาในราคาไม่แพงเท่าไรเน้นสนุกไว้ก่อน

คุณสมบัติของ Photon ก็ประมาณนี้

  • เสียบ breadboard ได้
  • ใช้งานได้เหมือนกับ Spark Core
  • ผ่านการรับรองจาก FCC/CE/IC certified
  • ใช้สถาปัตยกรรม STM32F205 ARM Cortex M3
  • ใช้ Broadcom BCM43362 Wi-Fi chip
  • เป็น Open source hardware

Continue reading

มาเล่น High Availability MQTT Cluster ด้วย Docker Compose กัน

ครั้งที่แล้วแนะนำ High Availability MQTT Cluster แบบ Back to Basic ไว้เนื่องจากจะได้เข้าใจว่าหลักการเป็นอย่างไร ได้ลองติดตั้ง Ponte ตั้งค่า HA Proxy ฯลฯ ครั้งนี้เราจะใช้ Docker Compose ในการสร้าง Container ในส่วน MQTT Broker, HAProxy และ MongoDB สั่งงานครั้งเดียวจบ ตัวอย่างนี้เหมาะสำหรับศึกษาเท่านั้น หากต้องการเอาไปใช้งานควรแยก data volume ของ mongodb ออกมาด้วยครับ

จากภาพเดิมเราจะใช้ Docker Compose สร้าง Container ทั้งหมดขึ้นมาซึ่งประกอบไปด้วย

  • HA Proxy
  • MQTT Broker 1
  • MQTT Broker 2
  • MongoDB

Continue reading

มาเล่น Auto Scaling MQTT Cluster บน AWS Cloud

ครั้งที่แล้วพาเล่น MQTT Cluster กันไปบ้างแล้ว ครั้งนี้เรามาลองวิธีง่ายๆ โดยใช้บริการของ AWS กันบ้าง AWS เครื่องมือพร้อมสำหรับการทำ Load Balance และการทำ Auto Scaling มาให้ด้วย เพราะฉนั้นการทำ Horizontal Scaling จะทำได้ง่ายมากๆ เพียงแค่คลิกเท่านั้นเอง จากภาพเดิมเราจะ Scale MQTT Broker โดยใช้ Elastic Scaling ของ AWS กัน

เนื้อหาไม่รวม Authentication, Secure Connection สำหรับ Persistance Storage คุณอาจเลือกใช้ DynamoDB หรือ RDS ได้ หากต้องการใช้ MongoDB Cluster อ่าน Reference Guide เพิ่มเติมได้ที่ MongoDB บน AWS Cloud

ขั้นตอนมีดังนี้

  • สร้าง instance พร้อม private network 2 เครื่อง
  • ติดตั้ง MongoDB ไปยังเครื่องที่ 1 เพื่อใช้เป็น Persistent Storage
  • ติดตั้ง Ponte ไปยังเครื่องที่ 2 ตั้งค่าเก็บข้อมูลมายังเครื่องที่ 1
  • สร้าง Snapshot ของเครื่องที่ 2
  • สร้าง Scaling Groups กำหนดขนาดของและเงื่อนไขในการ Scale
  • สร้าง Load Balancer และเพิ่ม instance ที่ Scaling Groups สร้างมาให้
  • กำหนด Load Balancer ให้ Scaling Groups ใช้เป็น Elastic Scaling

Continue reading