Оглавление:

ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации: 9 шагов (с изображениями)
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации: 9 шагов (с изображениями)

Видео: ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации: 9 шагов (с изображениями)

Видео: ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации: 9 шагов (с изображениями)
Видео: Собираем данные в умном доме по протоколу MQTT 2024, Июль
Anonim
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации
ESP8266-01 Интеллектуальный таймер Интернета вещей для домашней автоматизации

ОБНОВЛЕНИЯ

30.09.2018: Прошивка обновлена до версии 1.09. Теперь с базовой поддержкой Sonoff

10.01.2018: Пробная версия прошивки 1.10 доступна для тестирования на ESP8266-01 с проблемами

С новыми модными словечками «Интернет вещей» (IoT) и «Домашняя автоматизация» я решил взглянуть на текущие предметы в моем доме и вокруг него, которые управляются с помощью какого-то устройства. Среди них выделялись следующие:

  • Насос для бассейна
  • Наполнитель воды для бассейнов
  • Бассейн и окружающее освещение
  • Освещение шкафа ТВ / развлекательной системы

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

Что ж, жизнь в Южной Африке означает, что сбои в электроснабжении - обычное дело. Судя по статистике моего дома, за последний год у меня было 35 отключений электроэнергии, в общей сложности 40 часов. Обычно это не проблема, так как все установленные в настоящее время таймеры оснащены резервной батареей для отсчета времени во время сбоев питания. Но есть некоторые проблемы:

  • Эти резервные батареи служат всего год или два, затем необходимо заменить таймер. Таймеры сконструированы таким образом, что таймер необходимо разрушить, чтобы получить доступ к внутренней никель-кадмиевой батарее.
  • Каждый раз при отключении питания необходимо перепрограммировать таймеры с неисправными батареями и установить время.
  • Физическое расположение таймера, подключенного к розетке, делает практически невозможным считывание показаний ЖК-дисплеев при просмотре таймера сверху. Это означает, что таймер должен быть отключен от сети, или мне нужно лечь на пол, чтобы установить или настроить таймеры после сбоя питания.

По указанным выше причинам я решил проверить возможность замены таймеров на IoT Smart Timer, подключенный к моей локальной домашней сети.

Идея заключалась в разработке автономного таймера, который может:

  • Автоматически настраивать текущее время через Интернет (IoT)
  • Работает без каких-либо действий со стороны пользователя (Smart)
  • Включите / выключите выход в соответствии с установленным временем (таймер)
  • Программируемый и управляемый через сеть (домашняя автоматизация)

Шаг 1. Дизайн ESP8266-01

Дизайн ESP8266-01
Дизайн ESP8266-01
Дизайн ESP8266-01
Дизайн ESP8266-01

Дизайн был выполнен с использованием WiFi-модуля ESP8266-01, так как он у меня был в наличии. В простейшей форме ESP8266-01 имеет четыре контакта ввода / вывода:

  • GPIO0
  • GPIO2
  • Техас
  • RX

ESP8266-01 Режимы включения питания

Логическое состояние контактов ввода / вывода используется для определения того, в каком режиме будет загружаться ESP8266-01. Первым шагом было определить, какой из контактов ввода / вывода можно использовать для управления выходным реле.

  • Для нормального включения GPIO0 и GPIO2 должны быть установлены на ВЫСОКИЙ логический уровень. Таким образом, ясно, что эти два контакта не могут использоваться в качестве цифрового выхода.
  • Вывод Tx устанавливается как выход при включении питания, а выход устанавливается на высокий уровень. Этот вывод Tx также передает некоторые последовательные данные при включении питания. Таким образом, этот вывод также нельзя использовать как выход.

Единственный оставшийся вывод - это вывод Rx. Этот вывод устанавливается как вход при включении питания, и его не нужно подтягивать высоко во время включения. Таким образом, этот вывод является наиболее подходящим для использования в качестве выходного вывода.

Загрузка

Чтобы обеспечить правильный режим загрузки ESP8266-01 во время включения, следующие контакты подтянуты высоко с помощью резисторов 10K:

  • GPIO0
  • GPIO2
  • RST
  • CH_PD

Это гарантирует правильную загрузку устройства каждый раз.

Выходное реле

RX - единственный контакт, который можно использовать в качестве выхода. Таким образом, этот вывод используется для управления выходным реле через транзистор NPN. Добавлены стандартные резисторы маховика и базы транзистора.

Кнопка MODE / SET

Кнопка подключена к GPIO2, и когда кнопка отпущена, резистор 10K подтянет GPIO2 к высокому уровню. Когда кнопка нажата, GPIO2 подтягивается к 0В.

Эта кнопка используется для двух функций:

  • Первоначальная настройка для подключения устройства к локальной сети Wi-Fi
  • Для ручного управления выходом во время нормальной работы

Светодиод индикации

Светодиод подключен к GPIO0 и показывает следующее:

  • При первом включении мигает БЫСТРО, указывая на режим настройки Wi-Fi.
  • Медленно мигает, если время на устройстве не установлено
  • указывает состояние включения / выключения выходного реле

Шаг 2: блок питания

Источник питания
Источник питания
Источник питания
Источник питания
Источник питания
Источник питания

Я буду использовать интеллектуальный таймер IoT на разных уровнях напряжения, поэтому доступны два варианта питания:

12-24 В постоянного тока

Используемый преобразователь постоянного тока в постоянный подходит для питания до 28 В постоянного тока. Выход преобразователя регулируется и установлен на 5 В. Это необходимо сделать до подключения модуля ESP8266.

Добавлен диод для защиты от обратной полярности на входе питания.

220 В переменного тока Для этой опции я смог приобрести на eBay небольшой импульсный блок питания 220 В / 5 В.

Независимо от входного напряжения для интеллектуального таймера IoT требуются два источника питания:

5V Rail

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

3.3V Rail

3.3 В для ESP8266-01 поступает от регулятора ASM1117 3.3. ASM1117 3.3 - это линейный стабилизатор, способный выдерживать ток до 500 мА. Однако выделяемое тепло будет определяться входным напряжением ASM1117. Для уменьшения нагрева ASM1117 питается от шины 5 В.

Фильтрация шума

Чтобы уменьшить пульсации напряжения на ESP8266-01, шина 3,3 В оснащена конденсатором 100 - 1000 мкФ. Шины 5 В и 3,3 В также защищены от высокочастотных помех конденсаторами 0,1 мкФ.

Шаг 3: Сборка печатной платы

Сборка печатной платы
Сборка печатной платы
Сборка печатной платы
Сборка печатной платы
Сборка печатной платы
Сборка печатной платы

Плата ПК была разработана с использованием бесплатной версии Eagle. Это односторонняя доска, которую можно легко изготовить в домашних условиях методом переноса тонера.

После изготовления печатной платы соберите печатную плату в следующем порядке:

  • Припаяйте регулятор ASM1117 и три SMD-компонента 0,1 мкФ к припаянной стороне платы.
  • Добавьте одиночную перемычку на компонентную сторону платы.
  • Припаиваем резисторы и диоды на место
  • Добавьте заголовки для модуля ESP8266-01
  • Добавьте контакты заголовка для светодиода и кнопки
  • Добавьте винтовые клеммы
  • Используя контакты заголовка, подключите преобразователь DC / DC к плате.
  • Припаиваем реле на место
  • Завершите плату, припаяв транзистор и конденсатор 100 мкФ.

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

! ! ! ВАЖНАЯ ЗАМЕТКА ! ! ! Чтобы печатная плата могла выдерживать большие токи на выходных контактах, нанесите приличное количество припоя на дорожки между контактами реле и винтовыми клеммами

Шаг 4: Тестирование печатной платы

Тестирование печатной платы
Тестирование печатной платы

! ! ! Перед подачей питания! ! !

Снимите модуль ESP8266-01 с блока. Это сделано для предотвращения перегрева регулятора ASM1117 до регулировки напряжения питания 5 В.

Тестов, которые можно провести после сборки, не так много. Самый важный шаг - обеспечить правильный уровень напряжения.

  • Подайте на блок 12–24 В постоянного тока.
  • Измерьте выходное напряжение преобразователя постоянного тока в постоянный.
  • Отрегулируйте выход преобразователя в диапазоне от 5,0 до 5,5 В.
  • Затем измерьте напряжение питания 3,3 В.
  • Если с источниками все в порядке, отключите питание от устройства.

Теперь вы можете вставить модуль ESP8266-01 в предоставленные заголовки.

! ! ! Примечание !

После того, как вы проверили IoT-таймер и он заработал, используйте прозрачный лак, чтобы покрыть припаянную сторону печатной платы. Это предотвратит окисление дорожек и обеспечит дополнительную изоляцию между контактами реле и остальной частью цепи

Шаг 5: Корпус

Вложение
Вложение
Вложение
Вложение
Вложение
Вложение

Корпус не так важен, если плата и вся проводка аккуратно и безопасно в него помещаются.

Чтобы упростить конструкцию, я сделал кабель с подключенными к нему светодиодом и кнопкой MODE / SETUP. Это дало мне больше гибкости в установке светодиода и кнопки на корпусе. Затем этот кабель вставляется в разъем на печатной плате.

На фотографиях показан один из блоков 12 В, используемых для светодиодных фонарей.

Шаг 6: Программирование ESP8266-01 / NodeMCU

Программирование ESP8266-01 / NodeMCU
Программирование ESP8266-01 / NodeMCU
Программирование ESP8266-01 / NodeMCU
Программирование ESP8266-01 / NodeMCU
Программирование ESP8266-01 / NodeMCU
Программирование ESP8266-01 / NodeMCU

Чтобы запрограммировать ESP8266-01, вам необходимо сначала настроить Arduino IDE. Я не буду вдаваться в подробности, так как по этой теме доступно множество отличных инструкций. Я выбрал следующие ссылки на Instructables для справки, без указания авторов. Спасибо за их индивидуальные инструкции.

Следуйте инструкциям ESP8266 и Arduino IDE, чтобы настроить Arduino IDE для модуля ESP8266.

Далее вам понадобится программист, чтобы запрограммировать ESP8266. Вот две ссылки:

Использование Arduino Uno

Доска для программирования своими руками

Библиотеки

Вам нужно будет установить дополнительные библиотеки, чтобы можно было скомпилировать код. Опять же, обратитесь к этому Руководству:

Установите и используйте библиотеки Arduino

Я не могу вспомнить, какие библиотеки мне нужно было установить, но знаю, что WiFiManager нужно загружать отдельно.. Я включил их в файл Libraries.zip.

Шаг 7. Первоначальная настройка

Первая настройка
Первая настройка
Первая настройка
Первая настройка
Первая настройка
Первая настройка

При первом использовании IoT Smart Timer необходимо подключить к сети Wi-Fi. Эта задача выполняется с помощью библиотеки WiFiManager, поэтому вводить SSID или пароли в код не требуется.

Выполните следующие несколько шагов:

  • Включите устройство
  • Светодиод начнет быстро мигать.
  • Нажмите кнопку MODE / SETUP.
  • Когда светодиод погаснет, отпустите кнопку
  • Подождите несколько секунд, затем откройте соединение Wi-Fi на смартфоне или устройстве.
  • Будет видно новое сетевое слово Wi-Fi под названием IoT Timer
  • Выберите эту точку доступа
  • Войдите в IoT Timer (пароль не требуется)
  • Подождите, пока ваше устройство не подключится к сети IoT Timer.
  • Откройте любой интернет-браузер
  • В адресной строке введите следующий IP-адрес - 192.168.4.1.
  • Консоль WiFiManager откроется
  • Выберите Настроить WiFi.
  • Будет отображен список с доступными точками сетей Wi-Fi.
  • Выберите нужную сеть Wi-Fi и введите пароль.
  • Затем введите IP-адрес, который вы хотите использовать для подключения к таймеру IoT.
  • Введите IP-адрес шлюза по умолчанию, а затем маску.
  • Когда все настройки будут выполнены, нажмите кнопку «Сохранить».
  • Откроется новое окно, чтобы подтвердить, что новые учетные данные были сохранены.
  • Закройте ваш браузер

После сохранения сеть IoT Timer отключится, и устройство попытается подключиться к вашей сети Wi-Fi.

  • Подключите смартфон или устройство к той же сети Wi-Fi, которая используется для таймера Интернета вещей.
  • Откройте ваш браузер
  • В адресной строке введите IP-адрес своего таймера Интернета вещей.
  • Откроется страница конфигурации IoT Timer.

Теперь ваш IoT-таймер готов к использованию

Шаг 8: Настройка таймера Интернета вещей

Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей
Настройка таймера Интернета вещей

Встроенная веб-страница IoT Timer состоит из пяти разделов:

Положение дел

Здесь отображается имя устройства, а также текущее время и состояние выхода таймера.

Дополнительно в этом разделе задается режим работы таймера. Есть три режима:

  • Авто - выход будет контролироваться разными программами таймера.
  • On - выход принудительно включен и будет оставаться включенным до тех пор, пока режим не будет изменен.
  • Выкл. - Выход принудительно ВЫКЛЮЧЕН и останется выключенным, пока режим не будет изменен.

Программ

Этот раздел содержит время включения и выключения таймера. Доступно семь программ, и каждую программу можно настроить индивидуально.

Перед изменением следующей программы нажмите кнопку СОХРАНИТЬ, чтобы сохранить любые изменения, внесенные в текущую программу.

Кнопка Функция

Кнопку MODE / SETUP можно использовать для управления выходным реле во время нормальной работы. Здесь выберите, что должна делать кнопка при нажатии.

Установите флажок «Обновить функцию кнопки» перед нажатием кнопки «Сохранить», чтобы сохранить новые настройки.

Конфигурация

Здесь вы можете изменить имя таймера IoT. Это упрощает идентификацию нескольких таймеров.

Время на устройстве получается из Интернета через сервер времени NTP. Чтобы отображалось правильное время, обновите часовой пояс для своего региона.

Если вы хотите использовать другой сервер времени NTP, введите новый IP-адрес в отведенное место.

Установите флажок «Обновить конфигурацию» перед нажатием кнопки «Сохранить», чтобы сохранить новые настройки.

ПРИМЕЧАНИЕ

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

Регулировка времени

Иногда бывает, что сервер времени NTP не отвечает на каждый запрос времени. Если установка времени через сервер NTP занимает слишком много времени, вы можете ввести время и дату вручную.

Установите флажок «Обновить время» перед нажатием кнопки «Сохранить», чтобы сохранить новое время и дату.

Синхронизация времени

Последняя часть страницы указывает время и дату последней синхронизации времени через сервер времени NTP.

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