Category Archives: Python
การเปิด-ปิด LED ผ่าน WEB บน Raspberry Pi ด้วย Python GPIO,PHP,apache
การเปิด-ปิด LED ผ่าน WEB บน Raspberry Pi ด้วย Python GPIO,PHP,apache ในบทความ python GPIO ที่ผ่านมาได้สอนถึงการเปิด-ปิด LED ด้วย Python กันแล้ว บทความนี้จะสอนวิธีการรัน python script ด้วย PHP โดยทำให้ Raspi เป็น webserver ด้วยการติดตั้ง Apache + PHP
![]() |
สิ่งที่ต้องมี
- ไฟล์ Led_On.py , Led_Off.py ซึ่งเป็นไฟล์ python ที่เขียนขึ้นเพื่อเปิด-ปิด LED
Package ที่ต้องติดตั้งเพิ่ม
- Apache2
- PHP5
ขั้นตอน
- ติดตั้ง apache2 (sudo apt-get install apache2)
- ติดตั้ง PHP (sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache)
- ตั้งค่า network (sudo nano /etc/network/interfaces) เพื่อ fix IP (เวลาเรียกใช้งาน ผ่านเว็บจะได้ไม่ต้องมาคอยหา)
- sudo nano led.php (สร้างไฟล์ php สำหรับเปิดปิด LED) แล้วพิมพ์ตามด้านล่าง
- <?php
$state = $_GET[‘s’];if ($state==”on”)
{
exec(‘python /home/pi/Led_On.py’);
echo “LED on! <a href=” .$_SERVER[‘PHP_SELF’]. “?s=off>Click to off</a>”;
}if ($state==”off”)
{
exec(‘python /home/pi/Led_Off.py’);
echo “LED off! <a href=”.$_SERVER[‘PHP_SELF’]. “?s=on>Click to on</a>”;}?> - อธิบายการทำงาน ไฟล์ led.php จะไปเรียก file python มารัน (ลองไล่ code PHP ดูครับ ) ใครที่ใช้ AJAX เป็นก็ลองประยุกต์ต่อด้วยการเอา AJAX มาครอบตัวครับ
- <?php
- ทดสอบ ด้วยการเปิด browser (จากเครื่องไหนก็ได้ในวง LAN เดียวกัน) ขึ้นมาพิมพ์ URL ( ip ของเครื่อง raspi ) ตามด้วย /led.php?s=on (เปิด LED) เช่นถ้า ip ของ Raspi เป็น 192.168.1.6 ตอนพิมพ์บน url จะเป็น http://192.168.1.6/led.php?s=on
- ถ้าไม่ทำงานบน brower ให้
sudo nano /etc/sudoers แล้วใส่
www-data ALL=(ALL) NOPASSWD: ALL
ตรงท้ายสุด
การประยุกต์ใช้งาน
- ลองเอาไปสั่งเปิดปิด relay ดูสิ
- ลอง ควบคุม GPIO หลายๆ ขา + relay หลายๆ ตัวดูสิ
** ถ้าไม่ทำงานบน brower ให้ sudo nano /etc/sudoers แล้วใส่
www-data ALL=(ALL) NOPASSWD: ALL
ตรงท้ายสุด
การสั่งเปิด-ปิด LED ด้วย Python ผ่าน GPIO
การสั่งเปิด-ปิด LED ด้วย Python ผ่าน GPIO (GPIO ก็คือ I/O เอนกประสงค์) บทความที่แล้ว ได้สอนถึงการเขียน python script เบื้องต้นแล้ว บทความนี้จะสอนถึงการใช้งาน GPIO ให้เปิดปิด LED ด้วย Python (การติดตั้ง raspbian และ python-dev)
รายการอุปกรณ์
- LED 1 ตัว , resister ขนาด 100 Ohm – 1k จำนวน 1 ตัว
- สาย Jumper female-female 2 เส้น
การเตรียมอุปกรณ์
- ถ้าใครใช้ proto board ก็เสียบลงบน slot ของแผ่น proto board ได้เลย ขายาวๆ (+) ของ LED ต่อกับ Resister เพื่อป้องกัน LED เจ๊ง ถ้าไม่ใช้ก็ต่อตามรูปได้เลย
- ขาสั้น (-) ของ LED ต่อกับ GPIO ขาที่ 9 (ขา ground ขา 1 จะเขียนว่า P1 และ ขาสองก็อยู่คู่กัน)
- ขายาว (+) ของ LED (ขาที่มี resister ต่ออยู่) ต่อกับ GPIO ขาที่ 7
การเขียน Python เพื่อเปิด LED
pwd = /home/pi
- sudo nano Led_On.py <–สร้างไฟล์ python ชื่อ Led_On.py และเปิดแก้ไขด้วย nano editor
- พิมพ์
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BOARD) ## ใช้การนับขาจากบอร์ด
GPIO.setup(7, GPIO.OUT) ## เซต GPIO ขา 7 ให้เป็นขา OUT
GPIO.output(7,True) ## เปิดให้ไฟออกขา 7
กด Crlt+o เพื่อบันทึก Enter ยืนยัน
กด Crlt+x เพื่อออกจาก editor
ทดสอบ Run ด้วย sudo python Led_On.py (LED ติด)
การเขียน Python เพื่อปิด LED
จะคล้ายกับ การเขียนเพื่อเปิด LED ต่างกันที่ True กับ False
pwd = /home/pi
- sudo nano Led_On.py <–สร้างไฟล์ python ชื่อ Led_Off.py และเปิดแก้ไขด้วย nano editor
- พิมพ์
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BOARD) ## ใช้การนับขาจากบอร์ด ขา 1 จะเขียนว่า P1 และ ขาสองก็อยู่คู่กัน
GPIO.setup(7, GPIO.OUT) ## เซต GPIO ขา 7 ให้เป็นขา OUT
GPIO.output(7,Flase) ## ปิดไฟออกขา 7
กด Crlt+o เพื่อบันทึก Enter ยืนยัน
กด Crlt+x เพื่อออกจาก editor
ทดสอบ Run ด้วย sudo python Led_Off.py (LED ดับ)
จบครับ
สำหรับไฟล์ Led_On.py กับ Led_Off.py จะนำไปใช้ในบทต่อๆ ไป ว่าด้วยเรื่องการสั่งปิด-เปิด LED ผ่าน browser