Skip to content

altJSV/Airwick-ESP8266

Repository files navigation

Airwick-ESP8266

Порт проекта модернизации автоматического освежителя Airwick на ESP8266 В основном повторяет предыдущий проект, но с добавлением фишек ESP8266.

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

  • Управление освежителем воздуха по WiFI
  • Веб интерфейс
  • Управление через MQTT
  • Включение мотора освежителя кнопкой
  • Питание от аккумулятора
  • Энергосберегающий режим
  • OTA обновление прошивки

Необходимые компоненты и схема подключения

Для сборки проекта вам необходимы следующие компоненты:

  • Автоматический освежитель Airwick
  • Фоторезистор
  • Mosfet транзистор IRF3205 или аналог
  • 2 Резистора на 10 кОм
  • 1 резистор на 100 Ом
  • Тактовая кнопка без фиксации нажатия
  • Wemos D1 Mini или аналог
  • Плата зарядки для Li-ION аккумуляторов TP4056 или аналог
  • Li-ION аккумулятор 3.7 в 1000 mAh

Схема подключения представлена ниже:

Компиляция и сборка

Все необходимые для сборки библиотеки лежат в папке libraries архива проекта. Сборка осуществляется в среде Arduino IDE версии 1.8.x и выше. После загрузки прошивки в плату, необходимо загрузить файловую систему. Для этого вы можете воспользоваться инструкцией. ВАЖНАЯ ИНФОРМАЦИЯ!!!. Перед прошивкой перемычку между пинами RST и D0 необходимо выпаять. Иначе загрузка прошивки не запустится.

Подключение и первичная настройка

При первом запуске устройства автоматически создается точка доступа WiFi Airwick с паролем 12345678. Подключитесь к ней с ноутбука или смартфона и перейдите в браузере по адресу http://192.168.4.1 Откроется окно веб интерфейса: Перейдите по ссылке Конфигурация. Откроется окно настроек: Настройте параметры подключения к WiFi роутеру, нажмите кнопку Сохранить. Затем пролистайте страницу настроек вниз и нажмите на кнопку Перезагрузить устройство. Далее подключиться к устройству можно, войдя в Сетевое окружение Windows, и выбрав Airwick ESP8266: Либо ввести присвоенный ему IP адрес в браузере.

Управление по протоколу MQTT

Настройки протокола MQTT доступны в веб интерфейсе: Для публикации статусной информации и получения управляющих команд доступны 2 топика. По умолчанию это /status и /command. В статусном топике публикуется информация о любом изменении состояния устройства: включение, отключение, распыление аэрозоля, изменение параметров и т.п. Комндный топик служит для получения управляющих команд. Формат команд: команда(5 символов) параметр(число) Например, для установки интервала срабатывания распылителя 5 минут, вам необходимо отправить в топик /command следующее сообщение: timer 5

Список управляющих команд

Команда Параметр (интервал значений) Описание
motor - Запуск расплителя на 1 секунду
light 1-1024 Порог срабатывания датчика света
pretm 1-10 Установка интервала предварительного таймера
timer 1-60 Установка интервала срабатывания распылителя
lowpw 0,1 Включение и отключение режима низкого энергопотребления

Управление освежителем воздуха через HTTP GET запросы

Для управления освежителем воздуха также можно использовать и разнообразные HTTP GET запросы. Формат запроса: http://192.168.0.101/setTimers?pretimer=1&interval=4

Где http://192.168.0.101 - IP адрес устройства;

/setTimers - сам запрос; ?pretimer=1&interval=4 - передаваемые параметры.

Список всех запросов и передаваемые параметры в таблице ниже. Список всех запросов и передаваемые параметры в таблице ниже.

Запрос Параметры Описание
/Time отсутствуют Синхронизировать время устройства
/timeZone timeZone Установка часового пояса. Значение от -12 до 14
/setTimers pretimer, interval Установка значений таймеров в минутах. pretimer (1-10) - предварительный таймер. interval (1-60) - основной таймер
/ssid ssid, password Установка параметров подключения к WiFi. ssid - имя точки доступа, password - пароль
/ssidap ssidAP, passwordAP Установка параметров точки доступа ESP8266. ssidAP - имя точки доступа, passwordAP - пароль
/ssdp ssdp Имя устройства в сетевом окружении для службы SSDP
/mqtt_save mq_on, mq_ip, mq_port, mq_ssid, mq_pass, mq_id, mq_status, mq_cmd Параметры MQTT. mq_on - включение mqtt(0,1); mq_ip - адрес брокера; mq_port - порт подключения; mq_ssid - логин; mq_pass - пароль; mq_id - id клиента; mq_status - топик статуса; mq_cmd - топик управления
/set_lightTreshold val Значение порога освещения после которого включается таймер (1-1024)
/lowpwr onoff Включение и отключение режима энергосбережения (1 - включить ,0 - выключить)
/restart device При значении параметра Ок происходит перезагрузка устройства
/motor отсутствует Запуск мотора распылителя

Алгоритм работы программы

В целом он практически ничем не отличается от версии для Arduino. При старте инициализируются глобальные переменные и выполняется подключение к WiFi. Далее запускается веб сервер и выполняется подключение к MQTT брокеру. В основном цикле запускается три системных таймера:

Interval - равен 10 секунд. Отвечает за опрос датчика освещения. Если полученное значение выше установленного порога, то запускается предварительный таймер.

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

timerDuration - по умолчанию равен 1 минуте. Это интервал срабатывания распылителя. При его срабатывании включается мотор распылителя и, если уровень освещения все еще выше порогового значения, таймер перезапускается. Если ниже, то также включается мотор распылителя и таймер останавливается.

Режим энергосбережения

При включении режима энергосбережения алгоритм несколько меняется. После первичной инициализации и запуска всех служб производится опрос датчика освещения. Если его значение выше порогового значения, то устройство работает как обычно. Запускаются таймеры, проверяются условия срабатывания мотора распылителя, работает веб интерфейс и т.п. Если значение полученное с датчика освещения ниже порогового, то устройство уходит в глубокий сон (Deep Sleep mode). Отключается процессор, память, wifi и т.д. Работает только системный таймер RTC.

В данном режиме устройство потребляет около 0.1 мА. В обычном рабочем режиме потребление около 80 мА. Через 20 секунд срабатывает системный таймер и на пин D0, соединенный с пином RST подается высокий уровень сигнала и ESP8266 перезагружается. В этот момент наблюдается кратковрменный всплеск энергопотребления до 100 мА, длительностью 1-2 секунды. Снова инициализируются все службы и цикл повторяется. Также при старте опрашивается топик MQTT /command. Если будет обнаружена команда lowpw 0, то режим низкого энергопотребления отключается и устройство работает в обычном режиме.

Настройка интервала нахождения в спящем режиме производится правкой в исходниках программы параметра вызова функции: ESP.deepSleep(20e6);. Цифра 20 это и есть число секунд сна.

Благодарности

MishanyaTS - за идею доработки проекта и первичную работу над исходниками.

Renats K. - за разработку удобного интерфейса фаловой системы использованной в проекте.

About

Порт проекта модернизации автоматического освежителя Airwick на ESP8266

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published