Автоматизация дома на основе Arduino, ESP-01 и Tasmota


Системы умного дома с каждым годом становятся все более популярными в современном мире. В данной статье мы рассмотрим одну из перспективных платформ для создания умного дома – под названием Tasmota. Мы рассмотрим основные принципы ее работы и будем загружать ее прошивку (firmware) в микроконтроллер ESP-01 (ESP8266) с помощью платы Arduino. После этого загруженная в ESP-01 прошивка Tasmota будет управлять включением/выключением светодиода и считывать данные с датчика температуры и влажности DHT11.

Внешний вид проекта автоматизации дома на основе Arduino, ESP-01 и Tasmota

Ранее на нашем сайте мы уже рассматривали различные проекты автоматизации дома, наиболее популярными среди которых стали следующие проекты:

Основные принципы системы Tasmota

Tasmota – это весьма продвинутое программное обеспечение (прошивка) с открытым исходным кодом, которое может работать на любых "умных" (smart) домашних устройствах, которые используют ESP Wi-Fi чип. Оно обеспечивает локальное управление домашними устройствами с помощью таких протоколов как MQTT (пример использования данного протокола вместе с Raspberry Pi вы можете посмотреть в этой статье), HTTP, последовательный порт связи или WEB UI. Первоначально Tasmota разрабатывалось как программное обеспечение для устройств, которые можно только включать/выключать, но впоследствии ее разработчики решили расширить функционал системы до управления всеми устройствами, содержащими ESP чип.

Tasmota поставляется вместе с встроенными драйверами для управления многими популярными датчиками и чипами, такими как, например, продукты Tuya/Smart Life или Wemos D1 Mini. Если ваше устройство не относится к таковым, то Tasmota предоставляет возможность управления и другими устройствами. В Tasmota вы можете создать свою собственную конфигурацию и создать свое собственное устройство при помощи создания своего шаблона.

Кроме того, Tasmota сравнительно мало "весит" и легко устанавливается на различные устройства – сделать это можно одним из нескольких способов. К примеру, вы можете использовать Tasmotizer для загрузки прошивки Tasmota в устройство через последовательный порт или USB. Также для этой цели вы можете использовать ESPTool, который представляет собой скрипт на Python и позволяет загружать прошивку (программное обеспечение) в устройства из таких платформ как Mac, Linux и Raspberry Pi. Также вы можете загружать прошивку в устройства "по воздуху" (over the air) используя технологию OTA.

Теперь рассмотрим что полезного для нашего умного дома сможет сделать платформа Tasmota. Прежде всего, она сможет разблокировать ваши умные устройства, позволяя им взаимодействовать с системами и устройствами, для взаимодействия с которыми они не были изначально предназначены. Все это позволяет объединить все ваши умные устройства в вашем доме в единую платформу. Система Tasmota также может быть интегрирована с любыми платформами поддерживающими MQTT (например, Domoticz), Home Assistant, NodeRed, OpenHAB и т.д.

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Микроконтроллер ESP-01 (ESP8266) (купить на AliExpress).
  3. Датчик температуры и влажности DHT11 (купить на AliExpress).
  4. Светодиод (купить на AliExpress).

Загрузка Tasmota в ESP-01

Существует два способа загрузки Tasmota в микроконтроллер ESP-01 – "по воздуху" (over the air, OTA) или с помощью использования платы Arduino Uno в качестве FTDI программатора. В данном проекте мы будем использовать второй способ (на основе платы Arduino Uno).

Для загрузки прошивки Tasmota в микроконтроллер ESP-01 выполните следующую последовательность шагов.

Шаг 1. Скачайте программное обеспечение Tasmota

Загрузите программное обеспечение Tasmota по адресу http://ota.tasmota.com/tasmota/release/. Tasmota содержит большой список файлов с различными встроенными драйверами для взаимодействия с разнообразными датчиками и другими устройствами. Если вы начинающий в этой тематике и вы не знаете какие из этих файлов вам пригодятся, просто начните с файла tasmota.bin” – он содержит все необходимое для того, чтобы управлять большинством доступных вам устройств.

Доступные варианты Tasmota

Шаг 2. Подготовка аппаратного обеспечения

В данном проекте бы будем использовать плату Arduino Uno в качестве программатора для загрузки прошивки в микроконтроллер ESP-01. Схема подключения ESP-01 к плате Arduino Uno для данного случая представлена на следующем рисунке.

Схема подключения ESP-01 к плате Arduino UnoВ схеме необходимо сделать следующие соединения между ESP-01 и платой Arduino Uno.

ESP-01 Arduino Uno
VCC 3.3V
GND GND
CH-PD 3.3V
RX RX
TX TX
GPIO-0 GND
GPIO-2 не подключен
RST первоначально не подключен, перед загрузкой прошивки в микроконтроллер подключите RST на землю и затем через полсекунды отключите его от земли

Кроме этого, подключите контакт сброса (Reset pin) платы Arduino к земле (GND) чтобы обойти плату Arduino. Это позволит отключить плату Arduino и загружать код напрямую в плату ESP8266. После того как все соединения в схеме будут сделаны, подайте питание на плату Arduino Uno и откройте Arduino IDE. Выберите “Generic ESP8266 Module” в пункте меню Board. Перед тем как нажимать на Upload, нам необходимо загрузить ESP-01 в режиме программирования. Для этого замкните на землю (Ground) контакт RST и затем нажмите на Upload в вашей Arduino IDE.

Шаг 3. Скачивание и установка Tasmotizer

Теперь, когда аппаратное и программное обеспечение нашего проекта готовы, настало время загрузить файлы прошивки в ESP-01 – для этого мы будем использовать инструмент под названием Tasmotizer, который был специально спроектирован для загрузки Tasmota в устройства. Вы можете скачать его самую свежую версию по следующей ссылке. После скачивания произведите его установку.

Шаг 4. Загрузка прошивки в ESP-01

Выберите порт, к которому подключена плата Arduino Uno. Затем выделите файл прошивки Tasmota, который вы скачали ранее. Tasmotizer также предоставляет вам возможность сохранения старой прошивки, которая находится в ESP-01 в данный момент. Если вы хотите сохранить старую прошивку ESP-01, выберите опцию "Save original firmware".

Главный экран программы Tasmotizer

После выбора порта и файла нажмите кнопку ‘Tesmotize!’ и дождитесь завершения процесса записи прошивки в ESP-01.

Шаг 5. Настройте Wi-Fi

После завершения процесса прошивки полностью отсоедините микроконтроллер ESP-01, затем заново подключите его контакты VCC, GND и CH_EN. Когда прошивка Tasmota загрузится в первый раз, она обеспечивает беспроводную точку доступа для осуществления конфигурации Wi-Fi.

Затем с помощью своего ноутбука или смартфона подключитесь к сети Wi-Fi Tasmota, ее название будет начинаться с символов “tasmota_XXXXXX-####”. После подключения к сети Wi-Fi Tasmota вы будете автоматически перенаправлены на страницу конфигурации Tasmota, где вы можете установить необходимые настройки и разрешения для Wi-Fi. После завершения настроек нажмите ‘Save’ микроконтроллер ESP перезагрузится и подключится к Wi-Fi сети, обеспечиваемой вами.

Настройка параметров Wi-Fi соединения

Итак, мы загрузили Tasmota в микроконтроллер и настроили ее, теперь настало время добавить умные устройства (smart devices) используя Tasmota Web UI (графический веб-интерфейс пользователя). Для этого сначала определите IP адрес вашего ESP8266 и используйте его чтобы получить доступ к Tasmota UI.

Внешний вид запущенной Tasmota

Управление устройствами с помощью Tasmota

Tasmota позволяет вам настраивать и управлять любыми устройствами, которые используют ESP Wi-Fi чип. В нашем проекте мы используем чип ESP-01, будем управлять светодиодом и считывать данные с датчика DHT11. Для этого нам сначала нужно настроить Tasmota – нажмите на кнопку ‘Configuration’ и затем на следующем шаге нажмите на ‘Configure Module.’

Настройка основных параметров Tasmota

На странице конфигурации модуля (‘Configure Module’ page) по умолчанию тип нашего модуля будет определяться как ‘Generic (0)’. Измените его на ‘Generic (18)’ и сохраните изменения.

Изменение типа нашего модуля в Tasmota

Снова вернитесь на страницу конфигурации модуля (configure module page) и выберите ‘PWM’ (ШИМ, широтно-импульсная модуляция) чтобы управлять светодиодом на GPIO2 и датчиком DHT11 на GPIO0.

Настройка управления контактами в Tasmota

Затем нажмите на кнопку ‘Save’ чтобы сохранить сделанные изменения, после чего модуль ESP-01 начнет перезагрузку. После этого перейдите в главное меню (Main Menu), где вы увидите переключатель (toggle button) со слайдером, с помощью которых вы будете управлять яркостью свечения светодиода и считыванием данных с датчика в вашем Tasmota Web UI (графическом веб-интерфейсе пользователя).

Tasmota, настроенная для нашего проекта

Теперь настало время проверить работу проекта. Подключите светодиод к контакту GPIO2 и датчик DHT11 к контакту GPIO 0 модуля ESP-01 как показано на следующем рисунке.

Схема проекта умного дома на основе ESP-01 и Tasmota

Внешний вид собранной конструкции проекта

Если все работает так, как надо, то вы увидите считываемые с датчика DHT11 данные в интерфейсе Tasmota Web UI и вы сможете использовать переключатель чтобы включать/выключать светодиод и слайдер чтобы изменять яркость его свечения.

Тестирование работы проекта

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
8 787 просмотров

Комментарии

Автоматизация дома на основе Arduino, ESP-01 и Tasmota — 4 комментария

  1. Как настроить интервальный таймер например: включать в 21:00 - выключить в 02:00

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

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

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