Системы умного дома с каждым годом становятся все более популярными в современном мире. В данной статье мы рассмотрим одну из перспективных платформ для создания умного дома – под названием Tasmota. Мы рассмотрим основные принципы ее работы и будем загружать ее прошивку (firmware) в микроконтроллер ESP-01 (ESP8266) с помощью платы Arduino. После этого загруженная в ESP-01 прошивка Tasmota будет управлять включением/выключением светодиода и считывать данные с датчика температуры и влажности DHT11.
Ранее на нашем сайте мы уже рассматривали различные проекты автоматизации дома, наиболее популярными среди которых стали следующие проекты:
- автоматизация дома на Raspberry Pi с управлением с веб-страницы;
- управление светом в доме с помощью сенсорного датчика и Arduino;
- автоматическая регулировка температуры в доме с помощью терморезистора и Arduino;
- автоматизация дома на Arduino под управлением смартфона.
Основные принципы системы 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 и т.д.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Микроконтроллер ESP-01 (ESP8266) (купить на AliExpress).
- Датчик температуры и влажности DHT11 (купить на AliExpress).
- Светодиод (купить на AliExpress).
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Загрузка 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” – он содержит все необходимое для того, чтобы управлять большинством доступных вам устройств.
Шаг 2. Подготовка аппаратного обеспечения
В данном проекте бы будем использовать плату Arduino Uno в качестве программатора для загрузки прошивки в микроконтроллер ESP-01. Схема подключения 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".
После выбора порта и файла нажмите кнопку ‘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 сети, обеспечиваемой вами.
Итак, мы загрузили Tasmota в микроконтроллер и настроили ее, теперь настало время добавить умные устройства (smart devices) используя Tasmota Web UI (графический веб-интерфейс пользователя). Для этого сначала определите IP адрес вашего ESP8266 и используйте его чтобы получить доступ к Tasmota UI.
Управление устройствами с помощью Tasmota
Tasmota позволяет вам настраивать и управлять любыми устройствами, которые используют ESP Wi-Fi чип. В нашем проекте мы используем чип ESP-01, будем управлять светодиодом и считывать данные с датчика DHT11. Для этого нам сначала нужно настроить Tasmota – нажмите на кнопку ‘Configuration’ и затем на следующем шаге нажмите на ‘Configure Module.’
На странице конфигурации модуля (‘Configure Module’ page) по умолчанию тип нашего модуля будет определяться как ‘Generic (0)’. Измените его на ‘Generic (18)’ и сохраните изменения.
Снова вернитесь на страницу конфигурации модуля (configure module page) и выберите ‘PWM’ (ШИМ, широтно-импульсная модуляция) чтобы управлять светодиодом на GPIO2 и датчиком DHT11 на GPIO0.
Затем нажмите на кнопку ‘Save’ чтобы сохранить сделанные изменения, после чего модуль ESP-01 начнет перезагрузку. После этого перейдите в главное меню (Main Menu), где вы увидите переключатель (toggle button) со слайдером, с помощью которых вы будете управлять яркостью свечения светодиода и считыванием данных с датчика в вашем Tasmota Web UI (графическом веб-интерфейсе пользователя).
Теперь настало время проверить работу проекта. Подключите светодиод к контакту GPIO2 и датчик DHT11 к контакту GPIO 0 модуля ESP-01 как показано на следующем рисунке.
Если все работает так, как надо, то вы увидите считываемые с датчика DHT11 данные в интерфейсе Tasmota Web UI и вы сможете использовать переключатель чтобы включать/выключать светодиод и слайдер чтобы изменять яркость его свечения.
Как настроить интервальный таймер например: включать в 21:00 - выключить в 02:00
Ну а вы не пробовали опцию Configure Timer из меню?
Здрасте, что делать если Tasmotizer пишет ошибкуFailed to connect esp8266?
Сложно сказать однозначно, ошибки могут быть разные начиная от плохого контакта и заканчивая конфликтами программ. Попробуйте переподключить модуль, а если не поможет выполните аппаратный сброс модуля если в его текущей прошивке для вас нет ничего ценного