Оглавление:
- Шаг 1. Подготовка оборудования
- Шаг 2. Включение SSH
- Шаг 3. Установка Cloud4RPi
- Шаг 4: Подключение датчика
- Шаг 5: Отправка показаний датчика в облако
- Шаг 6: графики и сигналы тревоги
Видео: Мониторинг температуры и влажности с помощью Raspberry Pi: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Приближается лето, и те, у кого нет кондиционера, должны быть готовы контролировать атмосферу в помещении вручную. В этом посте я описываю современный способ измерения самых важных параметров комфорта человека: температуры и влажности. Собранные данные отправляются в облако и там обрабатываются.
Я использую плату Raspberry Pi 1 и датчик DHT22. Вы можете сделать то же самое на любом компьютере, на котором есть Интернет, GPIO и Python. Более дешевый датчик DHT11 тоже работает нормально.
Шаг 1. Подготовка оборудования
Начнем с самого начала, так как я довольно давно не использовал свой Raspberry Pi.
Нам понадобится:
- Плата Raspberry Pi (или другая платформа, ориентированная на IoT).
- Карта SD или microSD (в зависимости от платформы).
- 5 В / 1 А через micro-USB.
- Кабель LAN, обеспечивающий подключение к Интернету.
- Дисплей HDMI, дисплей RCA или порт UART (для включения SSH).
Самый первый шаг - это загрузка Raspbian. Я выбрал версию Lite, так как собираюсь использовать SSH вместо дисплея. Все изменилось с тех пор, как я последний раз это делал: теперь есть отличное программное обеспечение для записи под названием Etcher, которое отлично работает и имеет потрясающий дизайн..
После завершения записи образа я вставил SD-карту в свой Pi, подключил LAN и кабели питания, и через некоторое время мой маршрутизатор зарегистрировал новое устройство.
Шаг 2. Включение SSH
По умолчанию SSH отключен. Я могу использовать либо конвертер UART-USB, либо просто подключить дисплей, чтобы получить доступ к оболочке и включить SSH.
После перезагрузки я наконец-то в деле. Перво-наперво, давайте обновим:
sudo apt update && sudo apt upgrade -y
Теперь давайте подключим это новое устройство к облаку.
Шаг 3. Установка Cloud4RPi
Я решил попробовать облачную платформу Cloud4RPi, предназначенную для Интернета вещей.
Согласно документации, для его запуска нам понадобятся следующие пакеты:
sudo apt install git python python-pip -y
Клиентскую библиотеку можно установить одной командой:
sudo pip установить cloud4rpi
Теперь нам нужен образец кода, чтобы убедиться, что он работает.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e / minimal.py minimal.py && rmdir -re
Я решил запустить Minimal.py, но мне не нравятся фальшивые данные. К счастью, в этом примере я заметил простой способ сделать диагностические данные реальными: добавить еще один импорт в раздел импорта:
из импорта rpi *
Затем удалите эти функции, которые предоставляют поддельные данные (теперь их определяет rpi.py):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Теперь нам нужен токен, который позволяет Cloud4RPi связывать устройства с учетными записями. Чтобы получить его, создайте учетную запись на cloud4rpi.io и нажмите кнопку «Новое устройство» на этой странице. Замените строку _YOUR_DEVICE_TOKEN_ в файле minimal.py на токен вашего устройства и сохраните файл. Теперь мы готовы к первому запуску.
Python Minimal.py
Откройте страницу устройства и проверьте наличие данных.
Теперь перейдем к реальным данным.
Шаг 4: Подключение датчика
Нам понадобится:
- Датчик влажности DHT22 или DHT11
- Подтягивающий резистор (5-10 кОм)
- Провода
Датчик DHT22 одновременно измеряет температуру и влажность. Протокол связи не стандартизирован, поэтому нам не нужно включать его в raspi-config - простого вывода GPIO более чем достаточно.
Для сбора данных я буду использовать отличную библиотеку Adafruit для датчиков DHT, но она может не работать как есть. Однажды я обнаружил странную постоянную задержку в коде, которая не работала на моем оборудовании, и через два года мой запрос на перенос все еще ожидает обработки. Я также изменил константы обнаружения платы, потому что мой Raspberry Pi 1 с BCM2835 был неожиданно обнаружен как Raspberry Pi 3. Я бы хотел, чтобы это было правдой… Таким образом, я рекомендую использовать свою вилку. Если у вас возникнут проблемы с этим, попробуйте исходный репозиторий, возможно, он у кого-то работает, но я не один из них.
git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Поскольку библиотека написана на C, она требует компиляции, поэтому вам понадобятся пакеты build-essential и python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Пока пакеты устанавливаются, подключите DHT22, как показано на рисунке.
И протестируем это:
cd ~ python -c "импортировать Adafruit_DHT как d; распечатать d.read_retry (d. DHT22, 4)"
Если вы видите что-то вроде (39.20000076293945, 22.600000381469727), знайте, что это влажность в процентах и температура в градусах Цельсия.
А теперь соберем все вместе!
Шаг 5: Отправка показаний датчика в облако
Я буду использовать Minimal.py в качестве основы и добавлю к нему взаимодействие DHT22.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~ / cloud_dht22.py cp rpi.py ~ / rpi.py cd vi cloud_dht22.py
Поскольку DHT22 возвращает и температуру, и влажность за один вызов, я сохраняю их глобально и обновляю только один раз в запросе, предполагая, что задержка между ними составляет более 10 секунд. Рассмотрим следующий код, который получает данные DHT22:
импортировать Adafruit_DHT
temp, hum = None, None last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () return round (temp, 2) if temp is not none else None def get_h (): update_data () return round (гул, 2) если гул нет Никто другой нет
Вставьте этот код после существующего импорта и отредактируйте раздел переменных, чтобы он использовал новые функции:
переменные = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': cpu_temp}}
Нажмите красную кнопку, чтобы начать передачу данных:
python cloud_dht22.py
Затем вы можете проверить страницу устройства.
Вы можете оставить все как есть, но я предпочитаю иметь сервис для всего. Это гарантирует, что сценарий всегда выполняется. Создание сервиса с полностью автоматизированным скриптом:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Запуск службы:
sudo service cloud4rpi start
И проверяем это:
pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - демон Cloud4RPi Загружен: загружен (/lib/systemd/system/cloud4rpi.service; включен) Активен: активен (работает) с 17.05.2017, 20:22:48 UTC; 1мин назад Основной PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.py 17 мая 20:22:51 raspberrypi python [560]: публикация iot -hub / messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 мая 20:22:53 raspberrypi python [560]: публикация iot-hub / messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 мая 20:22:53 raspberrypi python [560]: публикация iot-hub / messages: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Если все работает, как ожидалось, мы можем продолжить и использовать возможности платформы Cloud4RPi для манипулирования данными.
Шаг 6: графики и сигналы тревоги
Прежде всего, давайте изобразим переменные, чтобы увидеть, как они меняются. Это можно сделать, добавив новую панель управления и поместив в нее необходимые диаграммы.
Еще одна вещь, которую мы можем сделать здесь, - это установить оповещение. Эта функция позволяет вам настроить безопасный диапазон для переменной. Как только диапазон выходит за рамки, он отправляет уведомление по электронной почте. На странице редактирования Панели управления вы можете переключиться на Оповещения и настроить их.
Сразу после этого влажность в моей комнате начала быстро падать без какой-либо заметной причины, и вскоре последовала тревога.
Вы можете использовать Cloud4RPi бесплатно с любым оборудованием, способным выполнять Python. Что касается меня, теперь я всегда знаю, когда включить увлажнитель воздуха, и я даже могу подключить его к реле для удаленного управления через Cloud4RPi. Я готов к жаре! Добро пожаловать, лето!
Рекомендуемые:
Мониторинг температуры и влажности с помощью NODE MCU И BLYNK: 5 шагов
Мониторинг температуры и влажности с использованием NODE MCU и BLYNK: Привет, ребята В этом руководстве мы узнаем, как получить температуру и влажность атмосферы с помощью датчика температуры и влажности DHT11 с помощью Node MCU и приложения BLYNK
Мониторинг температуры и влажности в помещении с помощью ESP32 и AskSensors Cloud: 6 шагов
Мониторинг температуры и влажности в помещении с помощью ESP32 и AskSensors Cloud: в этом руководстве вы узнаете, как контролировать температуру и влажность в вашей комнате или на столе с помощью DHT11 и ESP32, подключенных к облаку. Обновления наших руководств можно найти здесь. Технические характеристики: Датчик DHT11 может измерять температуру
Мониторинг температуры и влажности DHT с помощью ESP8266 и платформы AskSensors IoT: 8 шагов
Мониторинг температуры и влажности DHT с использованием ESP8266 и платформы AskSensors IoT: в предыдущих инструкциях я представил пошаговое руководство по началу работы с ESP8266 nodeMCU и платформой AskSensors IoT. В этом руководстве я подключаю датчик DHT11 к узлу MCU. DHT11 обычно используется для измерения температуры и влажности
Мониторинг температуры и влажности с помощью ESP-01 и DHT и облака AskSensors: 8 шагов
Мониторинг температуры и влажности с использованием ESP-01 и DHT и облака AskSensors: в этом руководстве мы узнаем, как отслеживать измерения температуры и влажности с помощью платы IOT-MCU / ESP-01-DHT11 и платформы AskSensors IoT. .Я выбираю модуль IOT-MCU ESP-01-DHT11 для этого приложения, потому что он
Мониторинг температуры и влажности с помощью Blynk: 6 шагов
Мониторинг температуры и влажности с помощью Blynk: в этом руководстве мы собираемся отслеживать температуру и влажность с помощью DHT11 и отправлять данные в облако с помощью Blynk. Компоненты, необходимые для этого учебного пособия: Датчик температуры и влажности Arduino UnoDHT11 Модуль Wi-Fi ESP8266-01