สั่งงาน Arduino ผ่าน Bluetooth โดยใช้ SerialCommand กัน

เคย 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

มาเล่น Let’s Encrypt กัน

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

ตั้งค่า HC-05 Bluetooth Module ด้วย AT Command ภาค 2

ผมซื้อ Bluetooth Module HC-05 มาใหม่ 3 ตัว ก็เลยจับมาตั้งชื่อใหม่จะได้ไม่สับสน สังเกตดูพบว่า module ที่ผมได้มีมันมี switch สำหรับเข้าโหมด setting อยู่ด้านข้าง กดปุ่มแล้วเข้า setting mode ได้เลย ไม่ต้องต่อสายเข้า pin 34 เพื่อสั่งเข้า setting mode อีกต่อไป ใครเคยอ่าน blog ตอนเก่าๆ เรื่องตั้งค่า HC-05 Bluetooth Module ด้วย AT Command กันมาแล้ว อยากให้มาลองดูวิธีใหม่กันดูบ้าง รับรองว่าง่ายมากๆ Bluetooth Module HC-05 หน้าตาเป็นแบบนี้ครับ


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

มา Stream Video บน Raspberry Pi สำหรับ Raspbian 8 กัน

Raspbian 8 ออกใหม่มีการเปลี่ยนแปลงตาม Debian 8 ซึ่งเป็น distro หลักการเปลี่ยนแปลงที่สำคัญคือ systemd ซึ่งเริ่มใช้งานในเวอร์ชั่นนี้ ก็เลยได้มาอัพเดทบทความเก่าๆ ให้ทันสมัยมากขึ้นสักหน่อย เริ่มจาก Stream Video บน Raspberry Pi ก่อน เราจะใช้เครื่องมือเดิมคือ mjpg streamer แต่การตั้งค่า service เราจะมาใช้ systemd กัน

ก่อนอื่นติดตั้ง mjpg streamer กันก่อนดังนี้
Continue reading

มาเล่น iBeacon กัน

ผมซื้อ iBeacon มาเมื่อปีที่แล้ว แต่ตัวที่ได้มาเป็น HM11 Bluetooth Low Energy Module กับลังถ่านขนาด CR3023 สั่งสั่ง AT Command เพื่อตั้งค่าต่างๆ ได้ แต่เนื่องจากผมไม่มีปัญญาจะบัคกรีจุดเล็กๆ ได้ ก็เลยหย่อนใส่โหลเอาไว้ ไม่ได้ทำอะไร พอมีเวลาก็หยิบมาลองเล่นสักหน่อย เพราะ EddyStone ของ Google ออกมาแล้ว Beacon อันเก่า ยังไม่ได้เล่นเลย ก็หยิบเอามาลองเล่นสักหน่อย

เทคโนโลยีของ Beacon มีมานานมาก การประยุกต์ใช้ก็ทำได้หลายแบบ เช่น

  • แจ้งโปรโมชั่นสินค้า หากผู้ซื้ออยู่ในระยะของ Beacon
  • ใช้ทำ in-door navation บอกตำแหน่งที่อยู่ปัจจุบัน แสดงแผนที่ในโซนนั้นๆ
  • ใช้ทำ Tag สำหรับการค้นหาหรือบอกระยะทางของสิ่งที่เอาไปติด เช่น พวงกุญแจ, กระเป๋า, เข็มกลัดติดเสื้อเด็ก เป็นต้น

สำหรับการเขียนโค้ดสำหรับ Android นั้นสามารถใช้ไลบรารี BluetoothLE ได้ หรือจะใช้ไลบรารีของ 3rd Party ก็ได้เช่น AltBeacon เป็นต้น
Continue reading

มาดูส่วนประกอบของ Docker Image ด้วย Image Layers กัน

Image Layers เป็นบริการของ CenturyLink ช่วยให้คุณสามารถดูโครงสร้างของ Docker Image ได้ง่ายๆ จาก Docker Hub หรือการอัพโหลด Image ขึ้นไปตรวจสอบ การแสดงผลจะอยู่ในรูปแบบของ Graph แสดงข้อมูล Image แต่ละ Layer ขนาดที่ใช้ในแต่ละ Layer ด้วย นอกจากนี้ยังแสดงคำสั่งต่างๆ ใน Dockerfile อีกด้วย วิธีการใช้งานก็ง่ายมากๆ เข้าไปที่เว็บไซต์ imagelayers.io

จากนั้นกำหนด Docker Image ที่ตรงการดู ตัวอย่างผมอยากดู Image ชื่อ ibuildthecloud/jenkins-swarm
Continue reading

มาดูโครงสร้าง Docker Image ด้วย Docker Image Graph กัน

CenturyLink Lab มีเครื่องมือหลายตัวที่ใช้งานร่วมกับ Docker ซึ่งก็มีเครื่องมือเล็กๆ ชื่อ Docker Image Graph ที่ทำหน้าที่อ่านโครงสร้างของ Docker Image แล้วแสดงผลออกมาเป็นภาพกราฟิก ทำให้เราเข้าใจถึงความสัมพันธ์และการขึ้นต่อกันของ Image แต่ละตัว ทำให้เข้าใจโครงสร้างของ Image นั้นๆ ได้ง่ายมากขึ้น

การใช้งานก็ง่ายมากเพียงแค่สั่งผ่าน Docker ดังนี้่

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock centurylink/image-graph > docker_images.png

เราจะได้ผลลัพท์เป็นไฟล์ภาพ docker_images.png ดังนี้

หากเป็นภาพดูยากไป อยากดดูผ่าน browser ก็ใช้คำสั่งดังนี้

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e PORT=3000 -p 3000:3000 centurylink/image-graph

เปิดเว็บ browser เข้าไปดูที่ port 3000 เราจะผลลัพท์ดังนี้

ครั้งหน้าเราจะมาลองเล่น ImageLayers ที่เป็นบริการของ CenturyLink Lab กัน

มาเล่น Ultrasonic Sensor กับ NodeMCU Dev Kit กัน

เนื่องจากมีคนถามมาเรื่อง Ultrasonic Sensor กับ NodeMCU Dev Kit ว่าใช้งานได้หรือไม่ ก็เลยไปหา Ultrasonic Sensor HC-SR04 มาทดลองเล่นดู การต่อกับ NodeMCU Dev Kit เราจะจ่ายไฟเข้า USB Port แล้วใช้ Vin และ GND จ่ายไฟให้ตัว Ultrasonic Sensor ดังภาพ

เขียนโค้ดพร้อม Upload Sketch ไปยัง Dev Kit
Continue reading

มาเล่น Rancher Compose กัน

Rancher Compose เป็น Orchestration Tool คล้ายกับ Docker Compose แต่การทำงานจะเป็นการเชื่อมต่อกับ Racher ไม่ได้เชื่อมต่อกับ Swarm ดังนั้นการใช้งาน Rancher Compose จะต้องใช้คู่กับ Rancher ด้วย Rancher Compose จะใช้ไฟล์ config อยู่ 2 ไฟล์คือ docker-compose.yml สำหรับกำหนด stack ที่ต้องการ deploy และ rancher-compose.yml สำหรับกำหนดค่า Load Balance หรือการ Scale หากใช้ไฟล์ docker-compose.yml อย่างเดียว Rancher จะไปสร้าง config rancher-compose ให้ พร้อมกำหนดจำนวน Scale เท่ากับ 1 ไว้ ดังนั้นในแต่ละ Service สามารถสั่ง Scale ได้โดยอัตโนมัติ

ตัวอย่าง Jenkins CI จะเห็นภาพมากที่สุด เพราะโครงสร้างของ Jenkins ออกแบบมาให้ Scale ในส่วน Jenkins Slave ได้เรื่อยๆ ดังนั้นหากมีการเพิ่ม Host ของ Jenkins Slave เมื่อ Container เริ่มทำงานจะต้อง Link กลับมาที่ Jinkins Master เพื่อ config slave เพิ่ม เราจะใช้ image ชื่อ ibuildthecloud/jenkins-swarm และ ibuildthecloud/jenkins-swarm-slave กัน Rancher Compose สามารถใช้งานได้บน UI, API และ CLI ครั้งนี้มาลองใช้ CLI กันบ้าง ให้ดาวน์โหลด Rancher Compose CLI มาจากหน้า Stack และติดตั้งให้เรียบร้อย
Continue reading