9/09/2016

Raspberry PI :: Control Relay ปิดเปิด หน่วงเวลา

Raspberry PI :: Control Relay ปิดเปิด หน่วงเวลา
ที่มา http://rpihome.blogspot.com/2015/01/using-whatsapp-for-home-automation_23.html
ตัวอย่าง


1. ติดตั้ง Python
  1. apt-get install python

2. สร้างไฟล์ สำหรับ Run python
  1. nano relay.py

3. ใส่ Code
  1. import RPi.GPIO as GPIO
  2. import time
  3. # blinking function
  4. def blink(pin):
  5.         GPIO.output(pin,GPIO.HIGH)
  6.         time.sleep(8)  ## เวลาหน่วงเปิด
  7.         GPIO.output(pin,GPIO.LOW)
  8.         time.sleep(1)  ## เวลาหน่วงปิด
  9.         return
  10. # to use Raspberry Pi board pin numbers
  11. GPIO.setmode(GPIO.BOARD)
  12. # set up GPIO output channel
  13. GPIO.setup(12, GPIO.OUT)  ## ขา GPIO ที่ต่อ
  14. # blink GPIO17 50 times
  15. for i in range(0,  1):    ## จำนวนรอบที่จะให้ run
  16.         blink(12)   ## ขา GPIO ที่ต่อ
  17. GPIO.cleanup()
  18.  
  19.  

4. ทดลอง Run ด้วยคำสั่ง
  1. python relay.py


### นำไปใช้งานต่อ ตั่งเวลาปิดเปิด ด้วย Crontap ####
1. ติดตั้ง apache2 แต่ถ้าไม่ต้องการเรียกใช้งานผ่าน PHP ก็ให้ตั้งใน Crotab ตรง ๆ เลยก็ได้ไม่ต้องทำข้อ 1 - 3
  1. sudo apt-get install apache2

2. สร้างไฟล์ ที่ www bell-warn.php ด้วยคำสั่ง
  1. nano /var/www/bell-warn.php


3. เพิ่ม Code ในไฟล์ bell-warn.php
  1.  
  2. <?php
  3. // Read Data From  Python
  4. $command = escapeshellcmd('python /home/pi/relay.py');
  5. $output = shell_exec($command);
  6. //echo $output;
  7. ?>
  8.  


4. สร้าง Crontab ให้ Run ตามเวลาที่ต้องการ ด้วยคำสั่ง
  1. crontab -e

เพิ่มเวลาที่ต้องการ ให้เตือนเข้าไป

  1. # Time Normal #
  2. 0 0 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  3. 30 0 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  4. 30 5 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  5. 0 6 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  6. 50 7 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  7. 0 8 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  8. 20 10 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  9. 0 12 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  10. 50 12 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  11. 0 13 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  12. 40 17 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  13. 0 18 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  14. 0 21 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  15.  
  16. # Time Test #
  17. #28 13 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  18. #29 13 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  19. #30 13 * * 1-6 /usr/bin/php /var/www/bell-warn.php
  20.  
  21.  
  22. # Time Holiday #
  23.  
  24. 0 0 * * 7 /usr/bin/php /var/www/bell-warn.php
  25. 30 0 * * 7 /usr/bin/php /var/www/bell-warn.php
  26. 30 5 * * 7 /usr/bin/php /var/www/bell-warn.php
  27. 0 6 * * 7 /usr/bin/php /var/www/bell-warn.php
  28. 50 7 * * 7 /usr/bin/php /var/www/bell-warn.php
  29. 0 8 * * 7 /usr/bin/php /var/www/bell-warn.php
  30. 20 10 * * 7 /usr/bin/php /var/www/bell-warn.php
  31. 0 12 * * 7 /usr/bin/php /var/www/bell-warn.php
  32. 50 12 * * 7 /usr/bin/php /var/www/bell-warn.php
  33. 0 13 * * 7 /usr/bin/php /var/www/bell-warn.php
  34. 0 17 * * 7 /usr/bin/php /var/www/bell-warn.php
  35. 0 18 * * 7 /usr/bin/php /var/www/bell-warn.php


หรือ เรียกใช้ python ตรง ๆ เลยก็ได้ถ้าไม่ต้องการใช้ apache
  1. # Time Normall #
  2. 0 0 * * 1-6 python /home/pi/relay.py
  3. 30 0 * * 1-6 python /home/pi/relay.py
  4. 30 5 * * 1-6 python /home/pi/relay.py
  5. 0 6 * * 1-6 python /home/pi/relay.py
  6. 50 7 * * 1-6 python /home/pi/relay.py
  7. 0 8 * * 1-6 python /home/pi/relay.py
  8. 20 10 * * 1-6 python /home/pi/relay.py
  9. 0 12 * * 1-6 python /home/pi/relay.py
  10. 50 12 * * 1-6 python /home/pi/relay.py
  11. 0 13 * * 1-6 python /home/pi/relay.py
  12. 40 17 * * 1-6 python /home/pi/relay.py
  13. 0 18 * * 1-6 python /home/pi/relay.py
  14. 0 21 * * 1-6 python /home/pi/relay.py
  15.  
  16. # Time Test #
  17. 44 13 * * 1-6 python /home/pi/relay.py
  18. 45 13 * * 1-6 python /home/pi/relay.py
  19. 46 13 * * 1-6 python /home/pi/relay.py
  20.  
  21.  
  22. # Time Holiday #
  23.  
  24. 0 0 * * 7 python /home/pi/relay.py
  25. 30 0 * * 7 python /home/pi/relay.py
  26. 30 5 * * 7 python /home/pi/relay.py
  27. 0 6 * * 7 python /home/pi/relay.py
  28. 50 7 * * 7 python /home/pi/relay.py
  29. 0 8 * * 7 python /home/pi/relay.py
  30. 20 10 * * 7 python /home/pi/relay.py
  31. 0 12 * * 7 python /home/pi/relay.py
  32. 50 12 * * 7 python /home/pi/relay.py
  33. 0 13 * * 7 python /home/pi/relay.py
  34. 0 17 * * 7 python /home/pi/relay.py
  35. 0 18 * * 7 python /home/pi/relay.py
  36.  



5. รอเวลาสั่งเมื่อถึงเวลา Relay จะดังตามเวลาที่ตั้งไว้
6. ตั้งค่าเวลาของ Raspberry PI ให้ตรง โดยทำตาม Blogs

No comments:

Post a Comment