使用樹莓派遠程控制燈繼電器開關,dht11溫溼度網頁顯示,樹莓派物聯網

前段時間使用esp8266搞了個智能家居,通過網頁控制,但是沒有辦法實現遠程控制,只能局域網控制,因爲我沒有平臺,使用機制雲等平臺還需要開發app

使用chatgpt生成的main.py程序

from flask import Flask, render_template, request
import Adafruit_DHT
import RPi.GPIO as GPIO

app = Flask(__name__)

# 設置LED引腳和DHT11傳感器引腳
LED_PIN = 18
DHT_PIN = 4

# 初始化GPIO引腳
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)

GPIO.output(LED_PIN, GPIO.HIGH)
# 獲取DHT11溫溼度傳感器數據
def get_dht_data():
    humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, DHT_PIN)
    return {
        'temperature': temperature,
        'humidity': humidity
    }

# 網頁主頁
@app.route('/')
def index():
    led_status = GPIO.input(LED_PIN)
    dht_data = get_dht_data()
    return render_template('index.html', led_status=led_status, dht_data=dht_data)

# 處理LED控制請求
@app.route('/led', methods=['POST'])
def control_led():
    action = request.form['action']
    if action == 'on':
        GPIO.output(LED_PIN, GPIO.LOW)
    elif action == 'off':
        GPIO.output(LED_PIN, GPIO.HIGH)
    # return 'success'
    led_status = GPIO.input(LED_PIN)
    dht_data = get_dht_data()
    return render_template('index.html', led_status=led_status, dht_data=dht_data)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

  index.html程序,注意flask要求靜態模版放在templates下面

<!DOCTYPE html>
<html>
<head>
    <title>Raspberry Pi LED Control</title>
    <style>
        body {
            text-align: center;
        }
    </style>
</head>
<body>
    <h1>Raspberry Pi LED Control</h1>
    <h2>LED Status: {% if led_status %}On{% else %}Off{% endif %}</h2>
    <form method="POST" action="/led">
        <button type="submit" name="action" value="on">Turn On</button>
        <button type="submit" name="action" value="off">Turn Off</button>
    </form>
    <h2>DHT11 Temperature: {{ dht_data.temperature }}°C</h2>
    <h2>DHT11 Humidity: {{ dht_data.humidity }}%</h2>
</body>
</html>

  

效果:

 

 

如果需要遠程控制,可以註冊一個小米球,很好用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章