วันพฤหัสบดีที่ ๒๓ มิถุนายน พ.ศ. ๒๕๕๙

Internet of Things (IoT) ตอนที่ 4

จากตอนที่ 1 ว่าด้วยหลักการ ความเป็นมา และอนาคตของ Internet of Things ซึ่งได้โน้มน้าวให้ผู้อ่านได้เห็นถึงความสำคัญ ให้อยากที่จะศึกษา อยากทดลองทำดู เผื่อว่าจะได้นำไปประยุกต์ใช้ในชีวิตประจำวัน หรือสร้างเป็น start up ดังที่เขาฮิตกัน

งาน Internet of Things นี้ขอบอกเลยว่า งานที่ยากที่สุด คือ ไอเดีย หรือความคิดสร้างสรรค์ หรือจินตนาการที่จะผลิตหรือสร้างอะไร ดังนั้น ทุกคนสามารถสร้างงานออกมาได้ โดยเฉพาะในด้านเทคนิควิธีการ เราสามารถหาอ่านเอาได้จากอินเทอร์เน็ต หรือดูจาก youtube

ตอนที่ 2 ได้เขียนถึงภาพรวม การทำงานของ Internet of Things มีองค์ประกอบอะไรบ้าง มันทำงานสัมพันธ์กันอย่างไร ถ้าให้ครบวงจรการทำงานของมันจะต้องใช้อะไรบ้าง

ตอนที่ 3 ได้เขียนถึง คำสั่งเพื่อทดสอบการทำงานของบอร์ด และได้ทดสอบโปรแกรม รวมทั้งการต่อวงจร LED เพื่อดูผลลัพธ์

มาตอนที่ 4 จะเป็นการเขียนโปรแกรมเพิ่มความซับซ้อนขึ้นมานิดหนึ่ง โดยจะจำลองเป็นการสั่งงานให้เปิดปิดไฟจราจร 3 สี แต่ทดลองทำเพียงด้านเดียวก่อน ถ้าต้องการทำหลายด้าน ก็สามารถทำได้โดยการเขียนคำสั่งให้พอร์ตอื่น ๆ ทำงานตามต้องการ

มาดู code กัน


#---------------------------------------------------------------------
#source code: traffic.py
import RPi.GPIO as GPIO
import time
red = 18
green = 23
yellow = 24
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(red,GPIO.OUT)
GPIO.setup(green,GPIO.OUT)
GPIO.setup(yellow,GPIO.OUT)

#function
def blink(pin, stime, count):
      for i in range(count):
              GPIO.output(pin,GPIO.HIGH)
              time.sleep(stime)
              GPIO.output(pin,GPIO.LOW)
              time.sleep(stime)

#main program
while True:
       #stop state
       GPIO.output(red,GPIO.HIGH)
       time.sleep(10)
       blink(red,0.25,5)
       GPIO.output(red,GPIO.LOW)

       #go state
       GPIO.output(green,GPIO.HIGH)
       time.sleep(10)
       blink(green,0.15,10)
      GPIO.output(green,GPIO.LOW)

      #stop ready
      GPIO.output(yellow,GPIO.HIGH)
      time.sleep(3)
      GPIO.output(yellow,GPIO.LOW)
      time.sleep(0.5)
#-------------------------------------------------------------
Save file กำหนดชื่อ traffic.py
เมื่อสั่ง Run โปรแกรมที่ terminal ด้วยคำสั่ง
$ sudo python traffic.py 

จะได้ผลลัพธ์ดังนี้



หากผู้อ่านได้ทดลองเอาคำสั่งของโปรแกรมนี้ไปใช้ ท่านต้อง 
ต่อขา 18 เป็น LED สีแดง
ต่อขา 23 เป็น LED สีเขียว
ต่อขา 24 เป็น LED สีเหลือง

ได้ทำเสนอแนะเกี่ยวกับการกระพริบของไฟเขียวและไฟแดง ไว้ในตอนท้าย เพื่อให้ผู้ขับรถเตรียมตัว หรือระมัดระวัง เอาไว้ด้วย

ในตอนต่อไปจะได้เขียนโปรแกรมเพิ่มฟังก์ชันให้ตำรวจจราจร กดปุ่มเพื่อปล่อยรถในแต่ละแยกได้ตามต้องการ

แล้วตอนถัดไป จะเขียนโปรแกรมให้มีการเก็บข้อมูลการกดปุ่มของจราจร เพื่อนำไปใช้ในการวิเคราะห์ (analysis) เพื่อใช้ในงาน internet of things ได้ครบวงจรต่อไป

โปรดคอยติดตาม......

วันจันทร์ที่ ๒๐ มิถุนายน พ.ศ. ๒๕๕๙

Internet of Things (IoT) ตอนที่ 3

ในระหว่างที่รอบอร์ด MCU ของ arduino เพื่อไม่ให้เสียเวลา ตอนนี้เรามาดูการเขียนโปรแกรมกับบอร์ดของ Raspberry Pi 2 Model B กันก่อนครับ

มาดูหน้าตาของ raspberry Pi 2 Model B กันก่อน




การต่อสาย power, keyboard, mouse, HDMI และสายต่าง ๆ จะไม่ขอกล่าวในที่นี้ เพราะคนที่จะทำตามนี้ได้ ต้องมีพื้นฐานด้านคอมพิวเตอร์มาบ้างแล้ว

ในส่วนของการติดตั้ง OS Respbian ก็ขอให้ศึกษาได้จาก web ของผู้ผลิตได้เลย ตามลิงค์ด้านล่างนี้

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

ในขั้นต้นสมมุติว่า ได้ติดตั้ง OS Respbian เรียบร้อยแล้ว (ซึ่งมันก็คือ linux นั่นเอง)

ต่อไปเป็นการเตรียมความพร้อมที่จะใช้ภาษา python และ ติดตั้ง library ของ GPIO ตามขั้นตอนดังนี้

1. $ sudo apt-get update
2. $ sudo apt-get upgrade

ทั้ง 2 คำสั่งนี้เพื่อทำซอฟต์แวร์ OS และที่เกี่ยวข้องให้เป็นปัจจุบัน

เนื่องจาก ภาษา python นั้น Raspberry Pi ได้ติดมาแล้ว จึงสามารถใช้ได้เลย

และคาดว่า library GPIO จะได้ติดมาแล้วกับการติดตั้งหรือ upgrade OS

ต่อไปเป็นการทดสอบ import GPIO module ของ python

เริ่มด้วย  Menu --> เขียนโปรแกรม --> Python 2 (IDLE)




พิมพ์คำสั่งนี้ แล้วกด Enter

>> import  RPi.GPIO as GPIO

ถ้าหากไม่แสดงผล error ออกมาแสดงว่า Raspberry Pi ของเรามี library GPIO เรียบร้อยแล้ว

ถัดจากนั้นให้สร้างไฟล์เพื่อเขียนโปรแกรมกันเลย

โดยการเลือกรายการ File --> New File

จากนั้นลงมือเขียนโปรแกรมทดสอบการทำงานของ GPIO ก่อน