เนื่องจากมีหลายท่านแนะนำ 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

สำหรับท่านที่ใช้งาน 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

ESPresso Lite เป็น WiFi Development Board จากค่าย ESPert ซึ่ง ESPresso (ESP8266 Module) เป็นโครงการที่เป็นความร่วมมือจาก 3 ประเทศ ไทยเป็นคนออกแบบ, ทำต้นแบบ, พัฒนาซอฟต์แวร์ และระบบคลาวด์, สิงคโปร์ทำด้านการตลาดและการจัดจำหน่าย, มาเลเซียทำการผลิต ESPresso Lite มาพร้อมกับ ESP-WROOM-02, LED, push button switch ช่องสำหรับเชื่อมต่อกับ module วัดอุณหภูมิและความชื้น DHT22, ช่องต่อจอ OLED, pin เชื่อมต่อกับ ESP-WROOM-02 และ pin เชื่อมต่อกับ USB2TTL เอาไว้สำหรับ flash โปรแกรม


Continue reading

เคย blog เรื่อง สั่งงาน Arduino ผ่าน Bluetooth ไปบ้างแล้ว จำได้ว่าใช้ตัวอย่างจาก ArduDroid ซึ่งน่าจะเข้าใจง่าย แต่ก็พบว่ามันไม่ง่ายเท่าไร T_T ก็เลยมาอัพเดทเพิ่มเติม Arduino มี Library ที่น่าสนใจอยู่ตัวนึงชื่อ SerialCommand Library นี้ทำหน้าที่เป็น Token Parser ให้ เรียกว่าไม่ได้เขียน Parse ข้อมูลเอง เพียงแค่กำหนดคำสั่งและให้ไปทำหน้าที่อะไรผ่าน call back ยกตัวอย่างเช่น สั่ง ON ให้เรียก function เปิดไฟ สั่ง OFF ให้เรียก function ปิดไฟ เป็นต้น นอกจากนี้ยังสามารถ parse argument ที่ต่อจากคำสั่งได้ด้วย มาลองเล่นกัน

ต่อ Bluetooth Module ให้เรียบร้อย แล้ว flash โค้ดตัวอย่างดังนี้

Continue reading

เนื่องจากเกิดอาการนึกสนุกทำ Arduino Robot ไปเมื่อปีที่แล้ว ปีนี้ได้มีโอกาสทำหุ่นยนต์แมง 4 ขาก็เลยได้ทำ App ใหม่อยู่ 2 ตัว คือ App Joystick และ App Joypad ที่ได้เขียน App Joystick ใหม่ก็เนื่องจากพยายามหา App Joystick ที่ตรงใจไม่ได้ อยากได้ฟังก์ชั่นการใช้งานเยอะๆ แต่ที่มีใน PlayStore ยังไม่ถูกใจมากนัก ก็เลยเขียน App มาเล่นเอง ซึ่ง App ทั้งสองตัวแตกต่างตามฟังก์ชั่นการใช้งาน ที่เขียนทั้ง 2 แบบ ก็เผื่อจะเอาไปใช้กับโครงการอื่นๆ ด้วย มาดู App Joystick กันก่อน

ที่อยากได้ App Joystick ตอนแรกว่าจะเอาไปคุมหุ่นยนต์ 4 ขา อยากได้การควบคุมหลายทิศทาง หลายฟังก์ชั่น ตั้งค่าปุ่มได้จะได้เอาไปใช้กับโครงการอื่นได้ ต่อกับ Video Streaming ได้ ฯลฯ คิดเยอะบวกกับความต้องการเยอะมากกกกก แต่เอาไปเล่นกับหุ่นยนต์ 4 ขา ไม่สนุกเลย เพราะฟังก์ชั่นหลายอย่างไม่ได้ใช้งาน ใช้อยู่ 4 ปุ่ม ตอนตั้งค่าปุ่มกดจนเมื่อยมือกว่าจะได้เล่น T_T ตอนเขียนก็อยากได้ Joystick แต่ไม่ได้นึกถึงตอนใช้งานเท่าไร ก็เลยเขียน App ใหม่เป็น Joypad แทน T_T

Continue reading

Let’s Encrypt เป็นโครงการออกใบรับรอง (Certification Authority – CA) ที่แจกใบรับรองฟรี หลังการตรวจสอบความเป็นเจ้าของโดเมนด้วยระบบอัตโนมัติ เปิดให้บริการให้กับบุคคลทั่วไปแล้ว วิธีการขอ Certificate และการติดตั้งก็ง่ายมากๆ เพราะมีเครื่องมือพร้อมให้ใช้งาน สำหรับท่านที่ใช้ web server ยอดนิยมอย่าง Apache, Nginx ก็สามารถติดตั้งอัตโนมัติและใช้งานได้เลย สำหรับ web server อื่นๆ จะต้องติดตั้งเอง

มาลองกันเลย สั่ง clone script จากหน้าโครงการใน github มาก่อน

git clone https://github.com/letsencrypt/letsencrypt

จากนั้นก็สั่งติดตั้งได้เลย ตัวอย่างใช้ Apache เป็น web server domain ชื่อ ssltest.sipa.or.th ถ้ามี domain อื่นอยู่ก็ใส่เพิ่มเข้าไปได้เลย

cd letsencrypt

./letsencrypt-auto --apache --renew-by-default --agree-tos --email anochit@gmail.com -d ssltest.sipa.or.th


Continue reading