树莓派:实现物联网第一步之控制LED

硬件部分

准备材料:

  • 树莓派
  • 面包板(可选)
  • 杜邦线(可选)
  • LED
  • 继电器

LED、继电器等连接到面包板上,继电器连接到树莓派的GPIO11和GPIO13,LED连接到继电器,具体链接方法不再详述;


硬件连接
  1. 安装FLask(Flask安装教程)
  2. 创建led.py,相同目录下创建templates文件夹,里面放一个led.html,代码分别如下:
from flask import Flask, render_template , request
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(3, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)

GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.HIGH)
GPIO.output(3, GPIO.LOW)

time.sleep(1)

GPIO.output(3, GPIO.HIGH)
GPIO.output(5, GPIO.LOW)

time.sleep(1)

GPIO.output(5, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(5, GPIO.LOW)
GPIO.output(3, GPIO.LOW)
GPIO.output(13, GPIO.LOW)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
GPIO.output(5, GPIO.HIGH)
GPIO.output(3, GPIO.HIGH)
GPIO.output(13, GPIO.HIGH)
GPIO.output(11, GPIO.HIGH)

app = Flask(__name__)
a = 'checked'
@app.route('/',methods=['GET','POST'])
def index():
    if request.method =='POST':
        GPIO.output(5, GPIO.LOW)
        time.sleep(0.001)
        GPIO.output(5, GPIO.HIGH)
        a = request.form["on2"]
        b = request.form["radio"]
        if b == 'one':
            if a == 'on':
                GPIO.output(11, GPIO.LOW)
                return render_template('led.html',i = 'ON',a = 'checked')
            else:
                GPIO.output(11, GPIO.HIGH)
                return render_template('led.html',i = 'OFF',a = 'checked')
        if b == 'two':
                if a == 'on':
                        GPIO.output(13, GPIO.LOW)
                        return render_template('led.html',j = 'ON',b = 'checked')
                else:
                        GPIO.output(13, GPIO.HIGH)
                        return render_template('led.html',j = 'OFF',b = 'checked')
        else:
            return render_template('led.html',w = 'please choose the botton!')
    else:
        GPIO.output(3, GPIO.LOW)
        time.sleep(0.1)
        GPIO.output(3, GPIO.HIGH)
        return render_template('led.html')

if __name__ == "__main__":
        app.run(host='0.0.0.0', port=8888, debug=True)



    
        
        led开关
        
    
    

    
        

led控制

{{w}}

开关1 开关2

状态:{{i}} 状态:{{j}}

在同一局域网中的其他手机或电脑中输入树莓派的IP地址:8888,即可看到效果:


树莓派:实现物联网第一步之控制LED_第1张图片
网页效果图

最后,选择开关1或者开关2,然后点击on或者off,即可看到LED灯会点亮或熄灭。

你可能感兴趣的:(树莓派:实现物联网第一步之控制LED)