Реально-временный мониторинг температуры и влажности через веб на Raspberry Pi 4
В этом проекте Raspberry Pi 4 хостит легкий веб-сервер Bottle, читающий данные с датчика температуры-влажности Adafruit DHT11 и возвращающий значения в реальном времени. RGB LED на плате загорается разным цветом для каждого запроса, давая мгновенную визуальную обратную связь о работе сервера.
Как это работает
- Перейдите на
https://pi‑address:6789/для триггера корневого маршрута. Красный LED включается во время загрузки страницы. - После загрузки можно нажать одну из трех кнопок:
- Синяя — показывает текущую влажность и зажигает LED синим.
- Зеленая — показывает текущую температуру и зажигает LED зеленым.
- Красная (Stop) — очищает дисплей, сбрасывает LED на красный и останавливает непрерывные обновления.
- Каждая кнопка отправляет GET-запрос каждую секунду до нажатия стоп-кнопки или закрытия окна браузера.
- Остановка сервера
Ctrl+Cгасит все LED и чистит GPIO пины.
Схема железа
Код сервера
from bottle import route, run, template, request
import RPi.GPIO as GPIO
import Adafruit_DHT
# Configure GPIO mode
GPIO.setmode(GPIO.BCM)
# Sensor configuration – DHT11 connected to GPIO 25
sensor_type = Adafruit_DHT.DHT11
sensor_pin = 25
GPIO.setup(sensor_pin, GPIO.IN)
# RGB LED pins
GPIO.setup(14, GPIO.OUT) # Red
GPIO.setup(15, GPIO.OUT) # Green
GPIO.setup(18, GPIO.OUT) # Blue
# Helper to turn all LEDs off
def set_leds_off():
GPIO.output(14, GPIO.LOW)
GPIO.output(15, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
# Routes
@route('/')
def index():
set_leds_off()
GPIO.output(14, GPIO.HIGH)
return template('index.html')
@route('/humidity')
def humidity():
set_leds_off()
GPIO.output(18, GPIO.HIGH)
humidity, temperature = Adafruit_DHT.read(sensor_type, sensor_pin)
return {'humidity': humidity}
@route('/temperature')
def temperature_route():
set_leds_off()
GPIO.output(15, GPIO.HIGH)
humidity, temperature = Adafruit_DHT.read(sensor_type, sensor_pin)
return {'temperature': temperature}
@route('/stop')
def stop():
set_leds_off()
GPIO.output(14, GPIO.HIGH)
return {'stop': 'No further updates.'}
# Start the Bottle server
run(host='0.0.0.0', port='6789')
# Clean up on exit
set_leds_off()
GPIO.cleanup()
Источник: Get Humidity/Temperature from Web
Производственный процесс
- Raspberry Pi сетевой монитор температуры и влажности — руководство по DIY сборке
- Домашний монитор температуры и влажности на Raspberry Pi с веб-дашбордом — удаленный трекинг в реальном времени
- Бесшовный мониторинг температуры и влажности на Raspberry Pi с EzTemp
- Учебник для начинающих по IoT: стриминг данных температуры с Raspberry Pi
- Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
- Создание сетевой лабораторной метеостанции на Raspberry Pi
- Превратите Raspberry Pi 4 в веб-сервер и создайте свой сайт
- От данных к графику: создание IoT-панели на Flask‑SQLite с Raspberry Pi
- Максимизируйте ROI от инвестиций в генерацию лидов
- Новая носимая технология маскирует пользователей от тепловых сенсоров, адаптируясь к температуре за минуты