Рубрики
Проекты на Raspberry Pi

Веб-сервер мониторинга температуры и влажности на Raspberry Pi Pico W и датчике DHT11

В данной статье мы рассмотрим, как создать веб-сервер реального времени с использованием микроконтроллера Raspberry Pi Pico W и датчика температуры и влажности DHT11. Объединив возможности микроконтроллера Raspberry Pi Pico и способность датчика DHT11 измерять температуру и влажность, мы можем создать простую, но эффективную систему для мониторинга условий окружающей среды. Мы рассмотрим процесс настройки оборудования, написания кода и создания веб-сервера, который отображает данные о температуре и влажности в режиме реального времени.

В предыдущей статье на нашем сайте мы рассматривали веб-сервер на Raspberry Pi Pico W для мигания светодиодом.

Также на нашем сайте мы рассматривали подключение датчика температуры и влажности DHT11 к другим микроконтроллерам (платам):

Необходимые компоненты

  1. Плата Raspberry Pi Pico W (купить на AliExpress).
  2. Датчик температуры и влажности DHT11 (купить на AliExpress).

Датчик влажности и температуры DHT11

Датчик DHT11 — популярный и недорогой цифровой датчик температуры и влажности. Он обычно используется в различных проектах и ​​приложениях, требующих мониторинга или контроля уровня температуры и влажности в окружающей среде. Датчик обеспечивает надежные и точные измерения, что делает его подходящим как для любителей, так и для профессиональных проектов.

Распиновка модуля DHT11

VCC — этот вывод используется для подачи питания на датчик. Обычно он подключается к источнику питания 5 В.

Data — вывод данных используется для двунаправленной связи между датчиком и микроконтроллером. Для передачи данных используется однопроводной последовательный интерфейс.

GNDподключается к земле или опорному сигналу 0 В источника питания.

Компоненты модуля DHT11

В модуле DHT11 очень мало деталей, включая сам датчик DHT11, подтягивающий резистор, который не виден под этим углом, и светодиод питания.

Принципиальная схема модуля DHT11

DHT11 состоит из подтягивающего резистора, который добавлен к выводу данных. Один светодиод используется с токоограничивающим резистором 1 кОм, а конденсатор используется для фильтрации сигналов от датчика dht11.

Работа датчика влажности и температуры DHT11

Датчик DHT11 работает с использованием емкостного датчика влажности и датчика температуры на основе термистора. Микроконтроллер инициирует измерение, отправляя сигнал запуска сенсорному модулю. Модуль реагирует и передает на микроконтроллер 40-битный поток данных, содержащий показания влажности и температуры. Микроконтроллер вычисляет контрольную сумму для проверки целостности данных, интерпретирует полученные данные и преобразует их в реальные значения температуры и влажности. Сенсорный модуль DHT11 упрощает интеграцию, обеспечивая цифровой выход, устраняя необходимость аналого-цифрового преобразования и абстрагируя сложность протокола связи, что упрощает его использование для приложений измерения температуры и влажности.

Часто задаваемые вопросы о DHT11

Как следует обрабатывать ошибки или несоответствия показаний датчика DHT11?

Датчик DHT11 может иногда давать неправильные или противоречивые показания. Чтобы повысить точность, вы можете реализовать методы проверки ошибок и усреднения, такие как получение нескольких показаний и вычисление среднего значения или сравнение показаний с заранее заданными пороговыми значениями для выявления аномалий.

Как часто я могу считывать данные с датчика DHT11?

Датчик DHT11 имеет ограниченную частоту обновления, обычно около 1 Гц. Это означает, что вы можете считывать данные с датчика раз в секунду. Более частое считывание данных может привести к неточным показаниям.

Могу ли я использовать датчик DHT11 вне помещения?

Датчик DHT11 не предназначен для использования вне помещений или воздействия агрессивных сред. Рекомендуется использовать его внутри помещений, где он может быть защищен от влаги и экстремальных температур.

Схема проекта

Схема веб-сервера мониторинга температуры и влажности на Raspberry Pi Pico W и датчике DHT11 приведена на следующем рисунке.

Чтобы подключить датчик DHT11 к Raspberry Pi Pico вам потребуется установить необходимые соединения. Начните с подключения контакта Vcc (питание) датчика DHT11 к выходному контакту 3V3 Raspberry Pi Pico. Это соединение обеспечивает датчик необходимым питанием.

Затем подключите контакт Gnd (земля) датчика DHT11 к контакту заземления (GND) Raspberry Pi Pico. Это соединение обеспечивает общее заземление между датчиком и микроконтроллером, обеспечивая правильную привязку сигнала.

Наконец, подключите контакт данных датчика DHT11 к контакту 16 платы Raspberry Pi Pico. Этот контакт будет использоваться для связи с датчиком и получения данных о температуре и влажности. Он служит интерфейсом между датчиком и микроконтроллером.

Объяснение кода программы

Сначала вам нужно скачать файл dht.py и открыть его в Thonny IDE. Потом нажмите File>Save as («Файл» > «Сохранить как»). Когда появится диалог, показанный на рисунке ниже, нажмите raspberry pi pico W и сохраните файл с именем «dht.py».

Файловая система должна выглядеть так, как показано на рисунке ниже. Main.py  это файл веб-сервера, который вам необходимо сохранить таким же образом. Сейчас мы углубимся в объяснение его кода.

Замена SSID и паролей в следующей строке на значения для своей WiFi сети.

Веб-серверу необходимо подключиться к точке доступа вашего телефона, чтобы отобразить значения dht11, и для этого вам необходимо заменить SSID и пароль на свои собственные.

Сначала импортируем модули и библиотеки, необходимые для работы программы.

Следующий код устанавливает и подключается к сети Wi-Fi с указанными SSID и паролем.

В нашем проекте мы используем контакт 16 как контакт GPIO для подключения датчика DHT11. Затем создается экземпляр класса DHT11, которому передается используемый контакт в качестве параметра.

Следующий цикл ожидает установления соединения с Wi-Fi. Он проверяет состояние соединения Wi-Fi и ждет максимум 10 секунд.

Если соединение Wi-Fi установлено успешно, производится получение IP-адреса и вывод его значения на экран.

Следующая функция считывает значения температуры и влажности с датчика DHT11.

Следующая функция создает веб-страницу HTML, содержащую заполнители для значений температуры и влажности. Он также включает код JavaScript для динамического обновления значений каждые 5 секунд с использованием запроса на выборку к конечной точке ‘/data’.

Следующая функция обрабатывает клиентские соединения и выдает соответствующий ответ на основе полученного HTTP-запроса. Если запрос «/data», он считывает температуру и влажность.

Доступ к веб-серверу Raspberry Pi

Сначала вам нужно запустить код, открыв main.py в Thonny IDE, затем нажать кнопку run current script («Запустить текущий скрипт») в левом верхнем углу и запустить точку доступа вашего телефона. Не забудьте заменить «SSID» и пароль вашей точки доступа WiFi в коде программы.

В окне вывода данных после этого вы можете видеть, что Pico W подключена к вашему смартфону. Он печатает ваш IP-адрес, а затем постоянно отправляет данные на веб-страницу HTML в режиме реального времени.

Теперь откройте свой смартфон и введите свой IP-адрес в адресную строку (каждый IP-адрес различен, поэтому сначала проверьте свой — его наша программа выводит в окне).

Экран вывода должен выглядеть следующим образом и обновляться в режиме реального времени каждые 5 секунд.

Следуя этому руководству, вы сможете создать систему мониторинга температуры и влажности в реальном времени с использованием платы Raspberry Pi Pico W и датчика DHT11. Этот проект демонстрирует мощность и универсальность микроконтроллера Raspberry Pi Pico W в сочетании с популярным датчиком, открывая возможности для различных приложений интернета вещей (IoT). С помощью веб-сервера, работающего в режиме реального времени, вы можете легко отслеживать условия окружающей среды и интегрировать эти данные в свои проекты или системы.

Исходный код программы

Все необходимые файлы для этого проекта вы можете скачать по следующей ссылке. Также код программы приведен в листинге ниже.

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *