มาลองควบคุม Raspberry Pi ด้วย Anto กัน </tutorial>

Image for post
Image for post

สำหรับใครที่ยังไม่รู้จัก Anto.io นะครับ Anto ก็เป็นหนึ่งใน Internet of Things Platform ที่ให้บริการฟรีๆเพื่อใช้เป็นตัวกลางในการสื่อสารและเป็นอีกหนึ่งตัวช่วยที่ทำให้การพัฒนานวัตกรรมทางด้าน IoT ของเราง่ายยิ่งขึ้น ในขณะนี้ทาง Anto ก็รองรับอยู่หลายอุปกรณ์กันเลยทีเดียวไม่ว่าจะเป็น Arduino, ESP8266 และอื่นๆ ใครสนใจสามารถเข้าไปดูรายละเอียดเพิ่มเติมได้ทางเว็บไซต์ของทาง Anto เองได้เลยนะครับ (https://www.anto.io)

สำหรับในวันนี้ผมก็จะมาสอนการใช้งาน Anto กับ Raspberry Pi 3 ควบคุมหลอด LED โดยใช้ภาษา Python บนระบบปฏิบัติการ Raspbian กัน. โดยที่อุปกรณ์ที่ผมจะใช้ในบทความนี้จะเป็นตัว Raspberry Pi 3 และใช้ภาษา Python version 2.7 ครับ :3

สมัครบัญชีผู้ใช้ Anto

ก่อนอื่นเลยให้เราสมัครบัญชีผู้ใช้ Anto และเพิ่มตัวอุปกรณ์ที่จะใช้ลงใน Anto Control Panel กันก่อนนะครับ

Image for post
Image for post
สมัครสมาชิก Anto (https://www.anto.io/register)

จากนั้นให้ Login เข้าไปเพื่อเพิ่มอุปกรณ์ที่เราจะใช้กันในบทความนี้กันครับ

Create Thing and Channels

สำหรับวิธีการสร้าง Thing และ Channels สามารถเข้าไปดูได้ทาง (https://antoiot.gitbooks.io/th-doc/content/create_thing_&_channels.html)

Image for post
Image for post
Create Things and Channel!

ในที่นี้ผมสร้าง Thing ที่มีชื่อว่า “ MyRPi3”
และสร้าง Channels ประเภท “Switch on/off” มาจำนวน 3 อันสำหรับหลอด LED 3 หลอด

  • LED1 (Channel: ‘led1’)

จากนั้นให้ลงระบบปฏิบัติการ Raspbian ลงบน Raspberry Pi 3

ติดตั้ง Python และ AntoLib

หลังจากลงระบบปฏิบัติการ Raspbian เรียบร้อยแล้วก็ให้ติดตั้ง Python 2.7 และ PIP โดยใช้ Commands ดังนี้ครับ

$ sudo apt-get install python
$ sudo apt-get install python-pip

สำหรับ PIP ก็คือตัว Package Manager สำหรับภาษา python ที่ผมจะนำมาใช้ในการติดตั้ง Package ที่มีชื่อว่า “AntoLib” (https://pypi.python.org/pypi/antolib) ซึ่งเป็น Python Package เพื่อใช้กับบริการของ Anto สามารถติดตั้ง Package “Antolib” ได้โดยใช้คำสั่ง “pip install”

$ pip install antolib
Image for post
Image for post
Antolib บน pypi.python.org

GPIO

ในบทความนี้ผมได้ใช้ GPIO 3 ช่องบน Raspberry Pi 3 สำหรับ LED จำนวน 3 ตัว และขา ground

  • LED1(Channel: “led1”) ใช้ GPIO หมายเลข 17

Python and AntoLib 101!

ขั้นตอนต่อไปเรามา Coding กันครับ

  • ก่อนอื่นเลยให้ import antolib และ RPi.GPIO กันก่อนเลยครับ
Anto.loop()
  • จากนั้นผมจะเรียกใช้ function setup() และ anto.loop(myLoopFunction)

Function setup()

ใน funciton นี้ผมจะกำหนดค่า callback function (onConnected, onData) ให้กับ anto โดยใส่ function connectedCB และ dataCB เข้าไปครับ
จากนั้นผมก็จะสั่งให้ anto connect ผ่านทาง function “anto.mqtt.connect()” ครับ

Function connectedCB()

ใน function นี้ผมจะให้มีการ subscribe ตัว Led ทั้ง 3 อันของเราเมื่อทำการเชื่อมต่อ

Function dataCB()

ใน function นี้เมื่อมีข้อมูลที่เรา subscript เข้ามาแล้วเราจะเอาไปควบคุมหลอด LED ทั้ง 3 อันของเราต่อ โดยที่จะมีตัวแปรหลักๆ อยู่ 2 ตัว

  • channel: จะเป็นค่าที่บอกว่าค่าที่ได้รับเข้ามาเป็นค่าของ channel ไหน

จากนั้นผมจะเช็คค่าผ่าน if condition เพื่อเช็คว่าเป็น channel ของ led ตัวไหน แล้วค่อยไปสั่ง GPIO.output ให้ไฟติดหรือไฟดับ

Let’s play!

หลังจากเราทำกันมาเสร็จแล้วต่อมาเราก็จะมาลองเล่นกันครับ :)
เข้าไปที่ Anto Control Panel เลือกเข้าไปที่เมนู “Thing” จากนั้นเข้าไปดู channel ต่างๆของเราโดยการกด ที่ปุ่มแว่นขยายข้างหลัง Thing ของเราครับ

Image for post
Image for post
Thing List
Image for post
Image for post

จากนั้นให้ลองคลิก on/off switch ของแต่ละ channel เล่นๆ ก็จะพบว่าหลอด LED ของเราก็จะทำการเปิดปิดไปตามที่เราควบคุมบน Anto เลยครับ

Image for post
Image for post
Image for post
Image for post
อู้หุววววว!! ควบคุมผ่าน Smart Phone ก็ยังได้เลย

เพียงเท่านี้เราก็สามารถสร้างอุปกรณ์ IoT ที่สามารถควบคุมหลอด LED จากที่ไหนก็ได้(ที่มีอินเตอร์เน็ต) ได้ฟรีๆและง่ายๆกันเลยครับ (ถ้าไม่รวมค่าอุปกรณ์พวก Raspberry Pi3 นะครับ 555) :)

Github Repo

สำหรับตัว Code ต่างๆ ในบทความครั้งนี้ผมได้ push ขึ้นไปบน Github แล้วนะครับ
ใครสนใจสามารถเข้าไป clone มาได้เลยทาง (Github) : https://github.com/AntoIOT/anto-python
สำหรับวันนี้ก็ขอบคุณมากๆที่เข้ามาอ่านกันนะครับ :)

ESL KMITL

the Embedded System Laboratory, Computer Engineering, KMITL

Isara Naranirattisai

Written by

Computer Engineering Student @KMITL; https://github.com/DreamN; https://www.linkedin.com/in/isaradream;

ESL KMITL

ESL KMITL

the Embedded System Laboratory, Computer Engineering, KMITL

Isara Naranirattisai

Written by

Computer Engineering Student @KMITL; https://github.com/DreamN; https://www.linkedin.com/in/isaradream;

ESL KMITL

ESL KMITL

the Embedded System Laboratory, Computer Engineering, KMITL

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store