树莓派3B+串口图
远程控制小灯
Flask创建服务器
from flask import Flask
import RPi.GPIO as GPIO #引入函数库
import time
app = Flask(__name__)
channel=5
GPIO.setmode(GPIO.BCM) #设置引脚编号规则
GPIO.setup(channel, GPIO.OUT) #将11号引脚设置成输出模式
@app.route("/on")
def On():
GPIO.output(channel, 1)
return "Hello! Flask! On"
@app.route("/off")
def Off():
GPIO.output(channel, 0)
return "Hello! Flask! Off"
if __name__ =="__main__":
app.run(host='0.0.0.0',port=5000)
GPIO.cleanup()
树莓派直接控制小灯
import RPi.GPIO as GPIO #引入函数库
import time
channel=5
GPIO.setmode(GPIO.BCM) #设置引脚编号规则
GPIO.setup(channel, GPIO.OUT) #将11号引脚设置成输出模式
while True:
GPIO.output(channel, 1) #将引脚的状态设置为高电平,此时LED亮了
time.sleep(1) #程序休眠1秒钟,让LED亮1秒
GPIO.output(channel, 0) #将引脚状态设置为低电平,此时LED灭了
time.sleep(1) #程序休眠1秒钟,让LED灭1秒
继电器
from flask import Flask
import RPi.GPIO as GPIO #引入函数库
import time
from concurrent.futures import ThreadPoolExecutor
app = Flask(__name__)
channel=5
GPIO.setmode(GPIO.BCM) #设置引脚编号规则
GPIO.setup(channel, GPIO.OUT) #将5号引脚设置成输出模式
# 创建线程池执行器
executor = ThreadPoolExecutor(2)
shuibengState=False
@app.route("/on")
def On():
# 交由线程去执行耗时任务
if shuibengState == True:
return 'shuibeng not ready'
else:
executor.submit(long_task, 'hello', 123)
return 'shuibeng go.'
# 耗时任务
def long_task(arg1, arg2):
print("args: %s %s!" % (arg1, arg2))
shuibengState=True
GPIO.output(channel, 0)
time.sleep(8)
GPIO.output(channel, 1)
shuibengState=False
print("Task is done!")
@app.route("/off")
def Off():
GPIO.output(channel, 1)
return "Hello! Flask! Off"
if __name__ =="__main__":
app.run(host='0.0.0.0',port=5000)
GPIO.cleanup()