- 기존에는 putty로 접속해서 nohup ~~&으로 실행함
- 정전 or 부주의로 인한 재부팅시 매번 직접 해당 구문을 해줘야하는 불편함이 있음
- 자동실행 실시(데비안 계열이지만 해당 파일과 경로가 다르다 참고하도록)
- 동작하는 코드는 다음과 같다
1 import RPi.GPIO as GPIO
2 import time
3
4 #en_pin = 18
5 pwm_pin = 23
6
7 GPIO.setmode(GPIO.BCM)
8 #GPIO.setup(en_pin, GPIO.OUT)
9 GPIO.setup(pwm_pin, GPIO.OUT)
10
11 p = GPIO.PWM(pwm_pin, 50)
12
13 p.start(0)
14 # GPIO.output(en_pin, GPIO.HIGH)
15 p.ChangeDutyCycle(12)
16 time.sleep(2)
17 p.ChangeDutyCycle(0.5)
18 time.sleep(2)
19 p.stop()
20 GPIO.cleanup()
1 import RPi.GPIO as GPIO
2 from flask import Flask
3 from flask import request
4 import random
5 import os
6
7 HOST = "165.194.27.172"
8
9 app = Flask(__name__)
10
11 @app.route('/', methods = ['POST'])
12 def openDoor():
13 id = request.form['id']
14 print id
15 if id == 'ZeroPage':
16 os.system("aplay /home/pi/sound/and_open.wav &")
17 execfile("open.py")
19 return 'Ok'
20 else:
21 a = random.random()%1
22
23 if a == 0:
24 os.system("aplay /home/pi/sound/no_doing1.wav &")
25 else:
26 os.system("aplay /home/pi/sound/no_doing2.wav &")
27
28 return 'access denied'
29
30 if __name__ == '__main__':
31 app.run(HOST,5000)
- 문제를 해결하기 위해 재부팅시 데몬으로 돌린다(윈도우-시작프로그램 같은 것)
- /etc/rc.local 에서 fi ~~ exit 0 사이에 실행할 명령어 입력하면 됨
- 실제 적용 코드
16 if [ "$_IP" ]; then
17 printf "My IP address is %s\n" "$_IP"
18 fi
19 sudo python /home/pi/zerobot/openDoor.py &
20 exit 0
- 이제 재부팅해도 알아서 잘된다 + 열린건가?에 대한 에러 사운드도 추가(망했어요~!)