WiringPi เป็นไลบรารีที่ใช้ติดต่อกับพอร์ต GPIO (General Purpose Input/Output) ของ Raspberry Pi ถูกเขียนขึ้นด้วยภาษาซี พอร์ต GPIO เป็นพอร์ตอินพุตเอาต์พุตอเนกประสงค์ เราสามารถรับและส่งข้อมูลต่างๆได้ผ่านทางพอร์ตนี้ โดยในตัวอย่างวันนี้เราจะส่งค่าออกไปแสดงผลที่ LED และทดสอบรับค่ากลับจากการกดสวิตช์ จริงๆแล้วตัว WiringPi เป็นไลบรารีที่เราต้องเขียนโปรแกรมด้วยภาษาซีเพื่อเรียกใช้งาน แต่มันก็มีคำสั่งที่เป็นคอมมานไลน์ชื่อ gpio มาให้เราใช้งานด้วย คำสั่ง gpio นี้มีข้อดีตรงที่ว่ายูเซอร์ทุกคนในระบบสามารถเรียกใช้งานได้ ไม่จำกัดแค่ว่าต้องมีสิทธิเป็น root เหมือนกับการเรียกใช้ผ่าน shell ซึ่งข้อดีของคำสั่ง gpio ตรงนี้ทำให้เราสามารถเขียนคำสั่งด้วย PHP และเรียกใช้งานผ่านเว็บได้
อย่างแรกเริ่มจากการติดตั้ง GIT ลงไปก่อน
ถ้าหากว่าเกิดมี Error ขึ้นมาให้ลองทำการอัพเดทแพคเกจ และลองใหม่อีกครั้ง
จากนั้นสั่งโคลน
ต่อไปสั่งติดตั้งแพคเกจ
เมื่อติดตั้งเรียบร้อย ลองทดสอบเรียกคำสั่ง gpio ขึ้นมาดูก่อนว่าใช้งานได้ไหม ถ้าไม่ได้ก็ตัวใครตัวมันครับ
ก่อนต่อวงจรเรามาดูตำแหน่งขาของ GPIO กันก่อนครับว่าอยู่ตรงไหนบ้าง จะเห็นว่ามีพอร์ต GPIO ให้เราใช้งานอยู่ทั้งหมด 17 ขา แต่วันนี้เราจะทดลองใช้ GPIO 7 สำหรับการทดสอบเรื่องอินพุต และใช้ GPIO 8 สำหรับการทดสอบเอาต์พุต
เริ่มต่อวงจรกันเลยครับ ในตัวอย่างเราจะใช้ LED เป็นเอาต์พุต และใช้สวิตกดติดปล่อยดับเป็นอินพุต
ต่อแล้วได้ออกมาหน้าตาประมาณนี้ครับ
เมื่อต่อวงจรเรียบร้อยแล้วมาเริ่มทดสอบกันเลย เริ่มจากทดสอบเอาต์พุตก่อน โดยใช้คำสั่งต่อไปนี้ (สังเกตที่ LED จะติดและดับตามการส่งสัญญานที่เราส่งไป)
gpio -g mode 8 out //กำหนดให้ GPIO 8 เป็นขาเอาต์พุต
gpio -g write 8 1 //ส่งค่า Height ไปที่ขา GPIO 8
gpio -g write 8 0 //ส่งค่า Low ไปที่ขา GPIO 8
gpio -g mode 8 out //กำหนดให้ GPIO 8 เป็นขาเอาต์พุต
gpio -g write 8 1 //ส่งค่า Height ไปที่ขา GPIO 8
gpio -g write 8 0 //ส่งค่า Low ไปที่ขา GPIO 8
ทำการทดสอบอินพุตกันต่อ (ทดลองกดสวิตและอ่านค่าจาก GPIO 7)
gpio -g mode 7 in //กำหนดให้ GPIO 7 เป็นขาอินพุต
gpio -g read 7 //อ่านค่าจาก GPIO 7 โดยจะมีค่าเป็น 0 กับ 1
gpio -g mode 7 in //กำหนดให้ GPIO 7 เป็นขาอินพุต
gpio -g read 7 //อ่านค่าจาก GPIO 7 โดยจะมีค่าเป็น 0 กับ 1
ก่อนออกไปเที่ยว เดี๋ยวเราจะลองเรียกใช้งาน gpio โดยใช้ PHP กันดูบ้าง ซึ่งหลักการก็ง่ายๆ คือเราจะใช้ฟังชั่น exec() ของ PHP เรียกไปที่ /usr/local/bin/gpio ตรงๆเลยง่ายดี
สร้างไฟล์ gpio.php ที่ /var/www/gpio.php
พิมพ์คำสั่งต่อไปนี้ลงไป
เพียงเท่านี้เราก็สามารถควบคุม GPIO ของ Raspberry Pi ผ่านเว็บได้แล้ว ลองเปิดเว็บดูได้เลยครับ
http://192.168.8.102/gpio.php
http://192.168.8.102/gpio.php?gpio8=1
http://192.168.8.102/gpio.php?gpio8=0
นำมาจาก http://www.unzeen.com/article/2179/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น