Оглавление:

Автоматизация зеленого дома: 11 шагов
Автоматизация зеленого дома: 11 шагов

Видео: Автоматизация зеленого дома: 11 шагов

Видео: Автоматизация зеленого дома: 11 шагов
Видео: Home Assistant, практика - автоматизация работы вытяжки в ванной 2024, Июль
Anonim
Автоматизация Зеленого Дома
Автоматизация Зеленого Дома

Автоматизация теплицы - это проект, в котором три параметра теплицы, то есть влажность почвы, температура и влажность, отслеживаются пользователем удаленно, просто с помощью веб-браузера.

Шаг 1. Необходимые компоненты

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

Некоторые необходимые компоненты перечислены ниже.

1. Raspberry PI, модель B

2. Совет по развитию NodeMCU

3. Модуль Wi-Fi ESP8266

4. Датчик влажности

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

6. Одноканальное реле 5 В

7. Погружной водяной насос 5 В

8. Хлебная доска.

9. Модуль питания платы для хлеба.

Шаг 2. Язык и протокол

Язык и протокол
Язык и протокол
Язык и протокол
Язык и протокол
Язык и протокол
Язык и протокол
  • Язык C используется для микроконтроллеров.
  • Обмен сообщениями MQTT: MQTT означает MQ Telemetry Transport. Это чрезвычайно простой и легкий протокол обмена сообщениями для публикации / подписки, разработанный для устройств с ограниченными возможностями и сетей с низкой пропускной способностью, высокой задержкой или ненадежностью. Принципы проектирования состоят в том, чтобы минимизировать требования к пропускной способности сети и ресурсам устройства, одновременно пытаясь обеспечить надежность и некоторую степень уверенности в доставке. Эти принципы также делают протокол идеальным для развивающегося мира подключенных устройств «машина-машина» (M2M) или «Интернета вещей», а также для мобильных приложений, где пропускная способность и мощность аккумулятора имеют первостепенное значение.
  • Программа Python используется для автоматизации потока воды и подключения к базе данных.

Шаг 3. Брокер Eclipse Mosquitto MQTT

Брокер Eclipse Mosquitto MQTT
Брокер Eclipse Mosquitto MQTT

Здесь я использовал Mosquitto MQTT Broker для упрощения обмена сообщениями между узлами.

Eclipse Mosquitto - это брокер сообщений с открытым исходным кодом (под лицензией EPL / EDL), который реализует протокол MQTT версий 5.0, 3.1.1 и 3.1. Mosquitto легкий и подходит для использования на всех устройствах, от одноплатных компьютеров с низким энергопотреблением до полноценных серверов.

Протокол MQTT обеспечивает легкий метод обмена сообщениями с использованием модели публикации / подписки. Это делает его подходящим для обмена сообщениями Интернета вещей, например, с маломощными датчиками или мобильными устройствами, такими как телефоны, встроенные компьютеры или микроконтроллеры.

Проект Mosquitto также предоставляет библиотеку C для реализации клиентов MQTT и очень популярные клиенты MQTT командной строки mosquitto_pub и mosquitto_sub.

Шаг 4: поток данных во всем проекте

На изображении выше узлы

  1. NodeMCU
  2. Raspberry Pi
  3. ESP8266

NodeMCU - это чувствительная часть Зеленого дома, а ESP8266 - это исполнительная часть, которая подает воду, когда земля нуждается в воде в соответствии с датчиками.

Raspberry PI содержит брокера Mosquitto и клиента Python, который подписывается на сообщения, поступающие от брокера MQTT, и сохраняет данные на сервере SQL.

Шаг 5: Подключение датчиков к NodeMCU

Подключение датчиков к NodeMCU
Подключение датчиков к NodeMCU

Датчик температуры и влажности DHT11 и датчик влажности воды могут работать от 3,3 В.

NodeMCU не может обеспечить напряжение более 3,3 В. Таким образом, датчики могут напрямую подключаться к плате микроконтроллера NodeMCU.

Шаг 6: Подключение погружного водяного насоса к ESP8266

Подключение погружного водяного насоса к ESP8266
Подключение погружного водяного насоса к ESP8266
Подключение погружного водяного насоса к ESP8266
Подключение погружного водяного насоса к ESP8266

Погружной водяной насос используется для подачи воды по мере необходимости.

Для работы водяного насоса необходимо питание 5 Вольт.

Для подключения двигателя необходимо одноканальное реле. Когда контакт GPIO2 ESP8266 активирован, реле включается и автоматически подает воду с помощью погружного водяного насоса.

Здесь внешнее питание подается на плату ESP8266, реле и погружной водяной насос.

Мое полное подключение к оборудованию показано на изображении выше.

Шаг 7: Установка Mosquitto Broker и запуск программы Python в Raspberry Pi

Ниже приведены шаги по установке брокера Mosquitto в Raspberry PI.

Откройте терминал и введите следующие команды

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

Он должен автоматически запустить москит.

Чтобы остановить и запустить службу, которую мне нужно было использовать

sudo сервис остановить москит

sudo сервис запускает москит

Большинство сайтов, которые я обнаружил, используют этот формат.

sudo /etc/init.d/mosquitto stop

Шаг 8: Как работает MQTT?

Как работает MQTT?
Как работает MQTT?

MQTT - один из наиболее часто используемых протоколов в проектах IoT. Это расшифровывается как передача телеметрии очереди сообщений.

Кроме того, он разработан как облегченный протокол обмена сообщениями, который использует операции публикации / подписки для обмена данными между клиентами и сервером. Кроме того, его небольшой размер, низкое энергопотребление, минимальное количество пакетов данных и простота реализации делают этот протокол идеальным для мира «машина-машина» или «Интернета вещей».

Как и любой другой интернет-протокол, MQTT основан на клиентах и сервере. Точно так же сервер - это парень, который отвечает за обработку клиентских запросов на получение или отправку данных между собой. Сервер MQTT называется брокером, а клиенты - просто подключенными устройствами. Итак:

* Когда устройство (клиент) хочет отправить данные брокеру, мы называем эту операцию «публикацией».

* Когда устройство (клиент) хочет получить данные от брокера, мы называем эту операцию «подпиской».

Шаг 9: Программирование NodeMCU и ESP8266

Ниже приведен исходный код платы микроконтроллера NodeMCU и ESP8266.

Шаг 10: Создание веб-страницы и подключение к базе данных SQL

Веб-страница разработана с использованием языков HTML, CSS и PHP.

PHP используется для извлечения показаний датчиков из базы данных и отображения их на HTML-странице.

В основе этого проекта лежит программа на Python.

Работы, выполняемые программой на Python, следующие.

  1. Он подписывается на тему, в которой датчик отправляет показания датчика.
  2. Он передает команду включения / выключения водяного насоса брокеру MQTT.
  3. Он сохраняет показания датчика в базе данных SQL.

Здесь в моем случае программа python и база данных SQL присутствуют в портативном компьютере. Веб-страница, работающая через локальный хост.

Ниже приведен исходный код моей программы на Python.

Шаг 11: Завершите работу

Полная работа
Полная работа

Ниже приведены шаги, по которым происходит этот процесс.

  1. NodeMCU работает как чувствительный элемент и считывает температуру, влажность и уровень влажности почвы.
  2. Он отправляет показания брокеру MQTT с темой «Тема 1».
  3. В портативном компьютере запущена программа python, и она подписывается на тему «Тема 1» с помощью брокера MQTT.
  4. Когда NodeMCU отправляет показания, Mosquitto MQTT Broker немедленно отправляет данные программе python.
  5. Затем программа Python рассчитывает, нужна ли вода в Зеленом доме. Затем он сохраняет показания в базе данных SQL.
  6. Если в Зеленом доме требуется вода, программа на Python отправляет сообщение о включении / выключении водяного насоса брокеру Mosquitto MQTT с темой «Тема 2».
  7. ESP8266 работает как исполнительный механизм. Он подписывается в теме «Тема 2», в которой программа python публикует сообщение. Когда программа python публикует какое-либо сообщение, оно немедленно передается на ESP8266. По сообщению вкл / выкл включил / выключил погружной водяной насос.
  8. Последний этап отображения текущих показаний на веб-странице. Веб-страница извлекает данные из базы данных SQL, в которой программа Python хранит данные напрямую и отображает показания на странице.

Рекомендуемые: