Оглавление:

IoT Moon Lamp: 5 шагов
IoT Moon Lamp: 5 шагов

Видео: IoT Moon Lamp: 5 шагов

Видео: IoT Moon Lamp: 5 шагов
Видео: Наушники TWS не работает один из наушников 2024, Ноябрь
Anonim
IoT Moon Lamp
IoT Moon Lamp

В этом руководстве я покажу, как превратить простую светодиодную лампу с батарейным питанием в устройство IoT.

Этот проект включает:

  • пайка;
  • программирование ESP8266 с помощью Arduino IDE;
  • создание приложения для Android с помощью MIT App Inventor.

Объектом интереса является лампа в форме луны, которую я купил у gearbest. Но на самом деле это руководство можно адаптировать к любому устройству с низким напряжением постоянного тока (устройства с питанием от переменного тока требуют дополнительных схем).

Запасы

  1. Смартфон Android (протестированы версии Android 7-9).
  2. Паяльные инструменты.
  3. Изготовление прототипа печатной платы (макетной платы).
  4. Плата ESP-12E (или другая отладочная плата с микроконтроллером ESP8266).
  5. USB-последовательный преобразователь для программирования.
  6. Несколько разных номиналов пассивных компонентов (резисторов и конденсаторов).

(Необязательно. См. Раздел «Блок-схема»)

  1. 3.3 В при 500 мА LDO IC.
  2. Плата преобразователя логического уровня 3.3V-5V.
  3. Источник питания 5В постоянного тока.

Шаг 1. Идея

Идея
Идея

Лунная лампа питается от одного Li-ION 18650 элемента и имеет 3 режима работы:

  • выключенный;
  • руководство по эксплуатации;
  • авто.

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

Я решил добавить ESP8266 в качестве веб-сервера, который прослушивает запросы и соответственно имитирует нажатия кнопок. Я не хотел нарушать исходную функциональность лампы, просто хотел добавить дополнительные функции управления через Wi-Fi, поэтому я выбрал ESP для имитации нажатия кнопок вместо прямого управления светодиодами. Также это позволило мне минимально взаимодействовать с оригинальной схемой.

Когда прототип был готов, он постоянно потреблял ~ 80 мА от батареи в выключенном состоянии (~ 400 мА при полной яркости). Ток в режиме ожидания высокий, потому что ESP8266 работает как сервер, всегда подключен к Wi-Fi и прослушивает запросы. Батарея разряжалась через полтора дня только в выключенном состоянии, поэтому позже я решил использовать USB-порт для зарядки ламп для питания всей электроники от внешнего источника питания 5 В и отказался от батареи (но это необязательно).

Шаг 2: блок-схема

Блок-схема
Блок-схема

На блок-схеме вы можете увидеть, какие схемы будут добавлены и как будут изменены существующие схемы. В моем случае я полностью удалил аккумулятор и закоротил вход IC зарядного устройства с выходом (опять же, это необязательно). Прозрачные блоки на схеме обозначают компоненты, которые были обойдены (хотя кнопка по-прежнему работает так, как предполагалось).

Согласно документации, ESP8266 допускает только 3,3 В, однако существует множество примеров, когда ESP8266 полностью работает с 5 В, поэтому преобразователь логического уровня и LDO 3,3 В можно не учитывать, однако я придерживался передовой практики и добавил эти компоненты.

Я использовал 3 контакта ввода / вывода ESP8266 и контакт ADC. Один цифровой выходной контакт предназначен для имитации нажатия кнопок, два цифровых входа предназначены для определения того, какие светодиоды включены (по этому мы можем выяснить, в каком состоянии находится MCU и какое состояние будет следующим после нажатия кнопки). Вывод АЦП измеряет входное напряжение (через делитель напряжения), таким образом мы можем контролировать оставшийся уровень заряда батареи.

В качестве внешнего источника питания я использую старое зарядное устройство для телефона 5V @ 1A (не используйте быстрые зарядные устройства).

Шаг 3: программирование

Программирование
Программирование
Программирование
Программирование

В двух словах программа работает так (подробнее см. Сам код):

ESP8266 подключается к вашей точке доступа Wi-Fi, учетные данные которой вы должны ввести в начале кода перед программированием, он получает IP-адрес от DHCP-сервера вашего маршрутизатора, чтобы узнать IP, который вам понадобится позже, вы можете проверить настройки DHCP веб-интерфейса маршрутизатора или установить флаг отладки в коде равен 1, и вы увидите, какой IP-адрес ESP получил в последовательном мониторе (вы должны зарезервировать этот IP-адрес в настройках вашего маршрутизатора, чтобы ESP всегда получал один и тот же IP-адрес при загрузке).

При инициализации MCU всегда выполняет одну и ту же процедуру навсегда:

  1. Проверьте, все ли подключено к AP, если нет, попробуйте повторно подключиться до успеха.
  2. Подождите, пока клиент сделает HTTP-запрос. Когда происходит запрос:

    1. Проверить входное напряжение.
    2. Проверьте, в каком состоянии находятся светодиоды.
    3. Сопоставьте HTTP-запрос с известными состояниями светодиодов (синий включен, оранжевый включен, оба включены, выключены).
    4. Имитируйте столько нажатий кнопок, сколько необходимо для достижения запрошенного состояния.

Я кратко опишу инструкции по программированию, если вы впервые программируете ESP8266 MCU, ищите более подробные инструкции.

Вам понадобится Arduino IDE и преобразователь USB-последовательного интерфейса (например FT232RL). Чтобы подготовить IDE, следуйте этим инструкциям.

Следуйте принципиальной схеме для подключения модуля ESP-12E для программирования. Несколько советов:

  • использовать внешний блок питания 3.3V @ 500mA (в большинстве случаев USB-последовательного блока питания недостаточно);
  • проверьте, совместим ли ваш последовательный USB-преобразователь с логическим уровнем 3,3 В;
  • проверьте, успешно ли установлены драйверы преобразователя USB-последовательного порта (из диспетчера устройств Windows), также вы можете проверить, правильно ли он работает из IDE, просто закоротите контакты RX и TX, чем из IDE выберите COM-порт, откройте последовательный монитор и напишите что-нибудь, если все работает вы должны увидеть текст, который вы отправляете, в консоли;
  • по какой-то причине мне удалось запрограммировать ESP только тогда, когда я сначала подключил USB-последовательный преобразователь к ПК, а затем включил ESP от внешнего источника 3,3 В;
  • после успешного программирования не забудьте установить высокий уровень GPIO0 при следующей загрузке.

Шаг 4: Схема и пайка

Схема и пайка
Схема и пайка
Схема и пайка
Схема и пайка
Схема и пайка
Схема и пайка

Следуйте схеме, чтобы припаять все компоненты к макетной плате. Как упоминалось ранее, некоторые компоненты не являются обязательными. Я использовал микросхему LDO KA78M33 3.3V и эту плату преобразователя логического уровня от Sparkfun, в качестве альтернативы вы можете сделать преобразователь самостоятельно, как показано на схеме (вы можете использовать любой N-канальный MOSFET вместо BSS138). Если вы используете литий-ионный аккумулятор, сеть + 5В будет положительным полюсом аккумулятора. Опорное напряжение АЦП ESP8266 составляет 1 В, выбранные мной значения резисторного делителя позволяют измерять входное напряжение до 5,7 В.

К исходной плате лампы должно быть 5 подключений: + 5V (или + батарея), GND, кнопка, ШИМ-сигналы от MCU ламп для управления синими и оранжевыми светодиодами. Если вы запитываете лампу от источника 5 В, как я, вам нужно закоротить вывод IC VCC зарядного устройства на вывод OUTPUT, так вся электроника будет питаться напрямую от + 5V, а не от ВЫХОДА зарядного устройства.

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

ПРИМЕЧАНИЯ:

  1. Если вы решили замкнуть + 5V на выходе IC зарядного устройства, полностью извлеките аккумулятор перед этим, вы не хотите подключать + 5V напрямую к аккумулятору.
  2. Обратите внимание на то, к какому контакту кнопки вы припаиваете выход ESP, потому что 2 контакта кнопки подключены к земле, и вы не хотите короткого замыкания, когда выход ESP становится ВЫСОКИМ, лучше дважды проверьте с помощью мультиметра.

Шаг 5. Приложение для Android

Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android

Приложение Android было создано с помощью изобретателя приложений MIT, чтобы загрузить приложение и / или клонировать проект для себя, перейдите по этой ссылке (для доступа к нему вам потребуется учетная запись Google).

При первом запуске вам нужно будет открыть настройки и ввести свой IP-адрес ESP8266. Этот IP-адрес будет сохранен, поэтому нет необходимости вводить его снова после перезапуска программы.

Приложение протестировано на нескольких устройствах Android 9 и Android 7.

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