Оглавление:
- Запасы
- Шаг 1. Идея
- Шаг 2: блок-схема
- Шаг 3: программирование
- Шаг 4: Схема и пайка
- Шаг 5. Приложение для Android
Видео: IoT Moon Lamp: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом руководстве я покажу, как превратить простую светодиодную лампу с батарейным питанием в устройство IoT.
Этот проект включает:
- пайка;
- программирование ESP8266 с помощью Arduino IDE;
- создание приложения для Android с помощью MIT App Inventor.
Объектом интереса является лампа в форме луны, которую я купил у gearbest. Но на самом деле это руководство можно адаптировать к любому устройству с низким напряжением постоянного тока (устройства с питанием от переменного тока требуют дополнительных схем).
Запасы
- Смартфон Android (протестированы версии Android 7-9).
- Паяльные инструменты.
- Изготовление прототипа печатной платы (макетной платы).
- Плата ESP-12E (или другая отладочная плата с микроконтроллером ESP8266).
- USB-последовательный преобразователь для программирования.
- Несколько разных номиналов пассивных компонентов (резисторов и конденсаторов).
(Необязательно. См. Раздел «Блок-схема»)
- 3.3 В при 500 мА LDO IC.
- Плата преобразователя логического уровня 3.3V-5V.
- Источник питания 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 всегда выполняет одну и ту же процедуру навсегда:
- Проверьте, все ли подключено к AP, если нет, попробуйте повторно подключиться до успеха.
-
Подождите, пока клиент сделает HTTP-запрос. Когда происходит запрос:
- Проверить входное напряжение.
- Проверьте, в каком состоянии находятся светодиоды.
- Сопоставьте HTTP-запрос с известными состояниями светодиодов (синий включен, оранжевый включен, оба включены, выключены).
- Имитируйте столько нажатий кнопок, сколько необходимо для достижения запрошенного состояния.
Я кратко опишу инструкции по программированию, если вы впервые программируете 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, а не от ВЫХОДА зарядного устройства.
Следуйте второму изображению для всех точек пайки, которые вам нужно будет сделать на печатной плате лампы.
ПРИМЕЧАНИЯ:
- Если вы решили замкнуть + 5V на выходе IC зарядного устройства, полностью извлеките аккумулятор перед этим, вы не хотите подключать + 5V напрямую к аккумулятору.
- Обратите внимание на то, к какому контакту кнопки вы припаиваете выход ESP, потому что 2 контакта кнопки подключены к земле, и вы не хотите короткого замыкания, когда выход ESP становится ВЫСОКИМ, лучше дважды проверьте с помощью мультиметра.
Шаг 5. Приложение для Android
Приложение Android было создано с помощью изобретателя приложений MIT, чтобы загрузить приложение и / или клонировать проект для себя, перейдите по этой ссылке (для доступа к нему вам потребуется учетная запись Google).
При первом запуске вам нужно будет открыть настройки и ввести свой IP-адрес ESP8266. Этот IP-адрес будет сохранен, поэтому нет необходимости вводить его снова после перезапуска программы.
Приложение протестировано на нескольких устройствах Android 9 и Android 7.
Рекомендуемые:
Como Hacer Una Mood Lamp (proyecto Uvg): 5 шагов (с изображениями)
Лампа настроения Como Hacer Una Mood Lamp (проект Uvg): Это лампа настроения, которая функционирует на базе датчика DHT11 и 3 потенциометра. 2 режима: пример цветовой гаммы с потенциалом, и вторая часть камбии на основе сенсорных лекций DHT11
Система освещения Smart Walkway - Team Sailor Moon: 12 шагов
Система освещения Smart Walkway - Team Sailor Moon: Привет! Это Грейс Ри, Сриджеш Конаканчи и Хуан Ланди, и вместе мы команда Сэйлор Мун! Сегодня мы представим вам проект DIY, состоящий из двух частей, который вы можете реализовать прямо у себя дома. Наша последняя интеллектуальная система освещения пешеходных дорожек включает в себя улицу
Радиоуправляемый автомобиль с управлением от Интернета вещей с пультом дистанционного управления или шлюзом Smart Lamp: 8 шагов (с изображениями)
Автомобиль с дистанционным управлением для Интернета вещей с пультом дистанционного управления или шлюзом Smart Lamp: для несвязанного проекта я написал код Arduino для связи с интеллектуальными лампами MiLight и пультами дистанционного управления для ламп, которые есть у меня дома. Я решил сделать маленькую радиоуправляемую машинку для тестирования
Tweeting Lamp Bot: 5 шагов (с изображениями)
Tweeting Lamp Bot: это руководство научит вас создавать твиты - Lamp, управляемые мобильным телефоном. Это простой классный проект, который использует изобретателя приложения MIT, а также среду кодирования частиц для создания лампы, управляемой мобильным телефоном, через IoT, которая пишет в Твиттере
Tiny Moon Tide Clock: 5 шагов (с изображениями)
Tiny Moon Tide Clock: это проект, выполняемый Центром морской жизни на Аляске. Их интересовал проект, связанный с морем, который вовлек бы их студентов в электронное строительство и мониторинг окружающей среды океана. Конструкция относительно дешевая в строительстве