Блог 2Smart (RU)

Как создать Wi-Fi реле с управлением через мобильное приложение и Telegram бота

Wi-Fi реле управляемое через платформу 2Smart Cloud
IoT платформа 2Smart Cloud позволяет создать любое умное устройство. Для этого доступны все необходимые инструменты: сервисы для создания прошивки и мобильного приложения, тестовая среда для проверки работоспособности устройства, инструменты обновления функционала устройства и мобильного приложения, инструменты аналитики и сбора статистики. Платформа открыта как для крупных производителей, так и для сообщества DIY пользователей. На примере простого продукта – Wi-Fi реле – рассказываем, как всего за один час создать собственное умное устройство на базе IoT платформы 2Smart Cloud.

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

Собираем устройство


В качестве примера будет рассмотрено умное реле, управляемое из мобильного приложения. Через реле будет подключена обычная настольная лампа, что сделает ее умной. Лампой можно будет управлять со смартфона – с помощью приложения 2Smart Cloud и дополнительных способов: голосовыми командами, телефонным звонком или из Telegram бота.

Что использовалось при сборке устройства:

  • Макетная плата Breadboard – 2 шт.
  • IoT-платформа ESP-WROOM-32 DevKit v1 – 1 шт. (подойдет любая другая вариация платформы с микроконтроллером ESP32 на Dev Board или без нее).
  • Мини-реле (Zelo-модуль) – 1 шт.
  • Резисторы (220 Ом) – 3 шт.
  • Светодиод 5 мм – 1 шт.
  • Кнопка тактовая с колпачком – 2 шт.
  • Комплект соединительных проводов.

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

Выглядит прототип Wi-FI реле так:

Прототип Wi-Fi реле на основе микроконтроллера ESP32

Схема устройства:

Схема Wi-Fi реле

Небольшое пояснение к схеме:

  • К микроконтроллеру подключено реле (на фото – слева), через которое будет включаться и отключаться питание на лампу.
  • Синяя кнопка нужна для физического переключения состояния реле (управление лампой без смартфона).
  • Желтая кнопка сбрасывает состояние устройства до “заводского” состояния (Reset).
  • Зеленый светодиод нужен для индикации состояния лампы – он будет зажигаться одновременно с ней.

Регистрируемся на IoT платформе


Чтобы приступить к подготовке собранного устройства к работе, нужно зарегистрироваться в качестве вендора на IoT платформе 2Smart Cloud. Сервис поможет создать прошивку для умного реле и мобильное приложение для управления, предоставит облачную инфраструктуру для дальнейшей работы и поддержки устройства.

1 - Перейдите по ссылке https://cloud.2smart.com/.

2 - Создайте новую учетную запись либо войдите в личный кабинет с использованием своего аккаунта Google или Facebook. При авторизации через соцсети вы получите автоматически созданный пароль на свой Email – его можно изменить в личном аккаунте. Пароль может понадобиться для подключения сторонних сервисов, без авторизации через социальную сеть.

Окно авторизации на платформе

Создаем прошивку


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

Окно приветствия нового пользователя с предложением создать тестовый виртуальный продукт

2 - После прохождения обучения вернитесь на главную страницу панели вендора. Нажмите “Создать продукт”.

Обратите внимание! Аналогичная кнопка на странице “Продукты” запускает альтернативный вариант создания продукта с помощью 2Smart Cloud - без использования пошагового помощника!

Кнопка создания нового продукта через визард

3 - Выберите микроконтроллер, на основе которого создано умное устройство – в данном случае это ESP32. Нажмите “Далее”.

Платформа поддерживает альтернативные MCU – например, Raspberry Pi, а также готовые инструменты для них. Кроме того, вы можете использовать свое решение и написать совместимую прошивку по документации к платформе.

Окно выбора микроконтроллера


4 - Заполните информацию о своем устройстве – введите название и загрузите иконку. Эта информация будет видна конечным пользователям в мобильном приложении. Нажмите “Далее”.

Окно добавления описания нового продукта

5 - Выберите базовую прошивку. Для микроконтроллеров ESP32 это варианты ESPHome или Custom.

Преимущество платформы с открытым кодом ESPHome – знание принципов программирования при создании прошивки даже не потребуется. Это действительно простой набор библиотек и инструментов, популярность которого подтверждает множество open source примеров. Инструкция есть в документации к платформе.

Вариант Custom прошивки позволяет написать код на любом языке с нуля, при условии соблюдения принципов совместимости с платформой. Другой Custom вариант – ваша собственная прошивка, созданная на базе предложенного SDK (готовый шаблон на C++ с уже реализованными ключевыми функциями). Детали обоих вариантов создания Custom прошивки можно найти в документации платформы 2Smart Cloud.

В данном туториале будет показано, как в короткий срок создать устройство на базе прошивки ESPHome. После выбора нажмите “Далее”.

Окно выбора базовой прошивки

6 - После перехода на следующий шаг вам будет доступен редактор кода для конфигурации работы прошивки. Код прошивки для умного реле выглядит так:

# Switchers for relay and wi-fi led indicator
    switch:
      - platform: gpio
        id: l2
        name: relay
        pin:
          number: GPIO4
          inverted: True
      - platform: gpio
        id: Wifiled
        name: ledWifi
        pin:
          number: GPIO2
# Physical button for relay switching
    binary_sensor:
      - platform: gpio
        pin:
          number: GPIO13
          mode: INPUT_PULLUP
          inverted: True
        name: sensor_button
        on_press:
          then:
            - switch.toggle: l2
# Physical button for reset creds for production devices (only for 2Smart Cloud version of EspHome)
      - platform: reset_sensor
        pin:
          number: GPIO15
          mode: INPUT_PULLUP
          inverted: true
        name: Reset button
        filters:
          - delayed_on: 2s
    interval:
      - interval: 10s
        then:
          if:
            condition:
              wifi.connected:
            then:
              - switch.turn_on: Wifiled
            else:
              - switch.turn_off: Wifiled
# Standart sensor for wi-fi signal
    sensor:
      - platform: wifi_signal
        name: "WiFi Signal Sensor"
        update_interval: 10s
# Standart sensors for wi-fi settings
    text_sensor:
      - platform: wifi_info
        ip_address:
          name: ESP IP Address
        ssid:
          name: ESP Connected SSID
        bssid:
          name: ESP Connected BSSID
        mac_address:
          name: ESP Mac Wifi Address

Комментарии к коду прошивки:

  • В блоке “Switchers for relay and wi-fi led indicator” описан сенсор для управления светодиодом, подключенным к 2-му пину ESP-платформы и реле, которое подключено к 4-му пину.
  • Блок “Physical button for relay switching” описывает настройки кнопки, подключенной к 13-му пину ESP-платформы (на фото – синяя). Это кнопка, которая принудительно переключает состояние реле по нажатию.
  • Блок “Physical button for reset creds for production devices” описывает настройки второй кнопки, которая подключена к 15-му пину платформы (на фото – желтая). Она сбрасывает настройки платформы и переводит ее в заводское состояние (кнопка Reset).
  • Блок “Standart sensor for wi-fi signal” нужен, чтобы передавать данные о состоянии Wi-Fi с указанной периодичностью (в примере кода – каждые 10 секунд).
  • Блок “Standart sensors for wi-fi settings” содержит настройки конкретных текстовых сенсоров о состоянии Wi-Fi сети – эта информация будет видна в интерфейсе приложения.

После настройки кода прошивки нажмите “Далее”.

Окно настройки прошивки устройства

7 - Сначала на платформе собирается тестовая (Sandbox) прошивка. Она нужна для подключения к тестовому окружению – полноценной среде для тестирования и отладки прототипа устройства, в которой можно проверить весь функционал способы управления.

Для начала сборки Sandbox прошивки нажмите “Собрать прошивку” на новом экране.

Окно сборки Sandbox прошивки

8 - Укажите параметры своей Wi-Fi сети и нажмите “Сохранить”. Доступ к вашей домашней или рабочей сети нужен, чтобы устройство вышло в интернет сразу после заливки тестовой прошивки и подключилось к тестовому окружению.

Обратите внимание! Устройства на основе микроконтроллера ESP32 поддерживают только Wi-Fi сети с частотным диапазоном 2,4 ГГц!

Окно добавления параметров Wi-Fi сети

9 - Дождитесь, пока будет собрана тестовая прошивка.

Готовая к заливке на устройство прошивка собирается непосредственно на сервере платформы. Устанавливать программы-сборщики на свой компьютер не нужно. После несложной процедуры прошивки устройство само подключится сначала к указанной Wi-Fi сети, а затем – к тестовому окружению вендора.

Окно сборки Sandbox прошивки со ссылкой на готовый архив

10 - Скачайте Sandbox прошивку. Внутри архива будет файл readme.md с описанием процесса прошивки устройства. Прошейте его по инструкции – для подключения устройства к компьютеру используйте USB кабель.

Прошивка возможна с устройств на Mac OS, Linux или Windows.

Обратите внимание! Если на микроконтроллер уже записана прошивка, не забудьте удалить ее по инструкции в файле readme.md или согласно документации.

Содержание архива с Sandbox прошивкой

Процесс прошивки устройства

11 - После успешной прошивки вернитесь на платформу и нажмите “Далее” – вы получите уведомление о том, что ваше устройство обнаружено. Иногда для успешного обнаружения нужно отключить прошитое IoT устройство от питания и подключить его снова.

Уведомление об успешном обнаружении устройства с возможностью просмотра состояния датчиков

12 - Нажав на ссылку “Предпросмотр состояния”, вы можете увидеть данные всех сенсоров вашего устройства. Обратите внимание – уже на этом этапе вы получаете реальные данные от вашего прототипа, они показывает текущее состояние сенсоров и обновляются в режиме реального времени.

Окно предварительного просмотра состояния датчиков устройства

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


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

1 - Нажмите “Далее” на экране с уведомлением об успешном обнаружении устройства. Откроется окно создания мобильного приложения.

Окно настройки интерфейса мобильного приложения

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

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

Для умного реле в этом примере достаточно двух виджетов: кнопки включения/отключения реле, а также сенсора уровня Wi-Fi сигнала.

Для изменения порядка расположения виджетов в списке используйте метод drag-and-drop (перетаскивание). Чтобы добавить новую вкладку в приложение, нажмите ссылку “Добавить вкладку” в правой верхней части экрана эмулятора.

Изменение порядка расположения виджетов методом drag-and-drop

Библиотека виджетов на платформе довольно обширная, большинство из них универсальны и подходят для разных устройств. Разобраться в библиотеке совсем несложно – можно смело выбирать любые виджеты. В настройках любого из них будет понятно, с какими сенсорами вашего устройства его можно использовать.

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

Окно настроек виджета

2 - Используйте режим предпросмотра, чтобы увидеть интерфейс приложения без инструментов редактирования.

Предпросмотр

Отображение продукта в списке устройств приложения

Управлять устройством можно уже в процессе редактирования интерфейса приложения. В случае с умным реле, собранным по предложенной выше схеме, можно увидеть, что при включении виджета Relay загорается зеленый светодиод, а также услышать щелчок реле – в этот же момент будет запускаться лампа или любое другое устройство, которое подключено через реле. При отключении реле на его корпусе загорается красная лампа режима ожидания.

Устройство моментально отзывается на переключение виджета реле на экране эмулятора мобильного приложения. И наоборот – при нажатии на кнопку переключения реле на плате в интерфейсе эмулятора мобильного приложения моментально изменится состояние виджета.

Управление прототипом устройства через эмулятор приложения в панели вендора

3 - Создав мобильное приложение, вы можете протестировать его непосредственно на своем смартфоне. Скачайте приложение 2Smart Cloud, установите его на телефон и включите режим Sandbox (подсказка, как это сделать, находится на экране под ссылкой "Режим Sandbox").

Обратите внимание – ваши пользователи будут управлять устройством именно из этого приложения. Для этого нужно завершить настройки продукта и опубликовать устройство в каталоге 2Smart Cloud.

Ссылки на мобильное приложение 2Smart Cloud

Включение Sandbox режима в приложении

Интерфейс мобильного приложения, настроенный в панели вендора

После авторизации в приложении с теми же параметрами, под которыми вы зарегистрировались в веб-панели, на вкладке “Устройства” будет доступно только что созданное устройство. Интерфейс управления при этом полностью соответствует тому, что был настроен в эмуляторе приложения.

Обратите внимание, что управлять устройством можно из мобильного приложения, из его эмулятора в кабинете вендора, а также физическими кнопками на плате самого реле. При этом изменения состояния датчиков моментально отображаются в интерфейсе приложения на смартфоне и его эмулятора в браузере компьютера.

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

Сборка финальной прошивки и управление устройством со смартфона


Sandbox прошивка, которая использовалась до этого, предназначена только для тестирования прототипа. Ее особенность в том, что в коде указаны технические данные, которые не нужны на устройстве конечного пользователя. Прежде всего это параметры для подключения к тестовому окружению и взаимодействия с ним – вплоть до пароля от вашей домашней или рабочей Wi-Fi сети.

Финальная (Production) прошивка – это та версия, которая устанавливается на устройства, идущие в продажу. В ее коде уже нет дополнительных параметров, нужных для тестирования прототипа. А подключение устройства к платформе происходит по стандартной процедуре сопряжения из аккаунта конечного потребителя.

1 - Нажмите “Далее” в окне со ссылкой на мобильное приложение. Откроется окно сборки финальной прошивки – нажмите “Собрать прошивку”.

Окно подготовки Production прошивки

2 - Дождитесь завершения процесса и нажмите ссылку “Скачать”.


3 - Прошейте устройство финальной прошивкой аналогично тому, как прошивали его тестовой версией.

Обратите внимание! Если на микроконтроллер уже записана прошивка, не забудьте удалить ее по инструкции в файле readme.md или согласно документации.

Если есть возможность собрать еще одно аналогичное устройство – лучше прошить финальной версией второе реле. А первое использовать как прототип для тестирования и отладки, оставив на нем тестовую прошивку.

Если вы – вендор, который планирует выпуск целой партии умных устройств, этот совет тем более актуален.

4 - Нажмите “Далее“ на экране сборки финальной прошивки. Откроется окно публикации продукта, нажмите “Опубликовать продукт”.

Окно публикации продукта

После публикации продукта можно добавить его в мобильное приложение 2Smart Cloud на своем смартфоне и приступить к использованию. Опубликованное устройство смогут добавлять в приложение и покупатели вашего продукта.

Обратите внимание, что продукт появится в общедоступном каталоге только после одобрения администраторами платформы. До этого добавить устройство можно только через процедуру сопряжения, выбрав пункт “Другие” в маркете.

5 - После публикации откроется страница продукта в панели вендора. К ней всегда можно обратиться с помощью меню “Продукты”. Статус продукта – “Опубликовано”.

Страница продукта в панели вендора

Привязка устройства к приложению 2Smart Cloud


Рекомендуем посмотреть на устройство глазами конечного потребителя – покупателя вашего устройства. Выйдите из своей учетной записи в приложении, отключите режим Sandbox на экране авторизации и создайте аккаунт обычного пользователя. Добавьте свое устройство из каталога по стандартному алгоритму:

1 - Установите приложение 2Smart Cloud (iOS | Android).

2 - Создайте учетную запись либо войдите с использованием аккаунта Google или Facebook. На этом этапе регистрироваться нужно как реальный пользователь, а не как разработчик.


Экран авторизации мобильного приложения 2Smart Cloud

3 - Перейдите на экран “Устройства” и нажмите “Добавить устройство”.


Экран “Устройства” мобильного приложения 2Smart Cloud

4 - Выберите в списке свой продукт – он отображается под тем названием и с той иконкой, что вы указали в панели вендора. Если продукт еще не одобрен администраторами платформы, перейдите в “Другие” и нажмите “Продолжить”.


Маркет умных устройств в мобильном приложении 2Smart Cloud

Экран добавления устройства мобильного приложения 2Smart Cloud

5 - Введите данные Wi-Fi сети, которую будет использовать ваше IoT устройство. Нажмите “Продолжить”.

Обратите внимание! Устройства на основе микроконтроллера ESP32 поддерживают только Wi-Fi сети с частотным диапазоном 2,4 ГГц!


Экран указания параметров Wi-Fi сети мобильного приложения 2Smart Cloud

6 - Нажмите ссылку “Откройте настройки Wi-Fi”, чтобы подключить телефон к точке доступа устройства.


Экран подключения к точке доступа устройства мобильного приложения 2Smart Cloud

7 - В списке доступных сетей найдите ту, что открыло ваше устройство – для продуктов на основе ESP32 название сети соответствует названию продукта, сеть открыта и не требует ввода пароля. Подключитесь к этой сети.

Настройки Wi-Fi на смартфоне

Настройки Wi-Fi на смартфоне

8 - Если смартфон предложит переключиться на сеть с доступом к интернету, откажитесь.

Сообщение с предложением переключиться на Wi-Fi сеть с доступом к интернету

9 - Дождитесь, пока устройство будет успешно добавлено в приложение.

Экран сопряжения с устройством мобильного приложения 2Smart Cloud

Экран сопряжения с устройством мобильного приложения 2Smart Cloud

10 - Перейдите на экран “Устройства” и убедитесь, что продукт отображается в списке. Обратите внимание – название и иконка устройства соответствуют тем, что вы указали при его создании.


Привязанный продукт в списке устройств мобильного приложения 2Smart Cloud

11 - Нажмите на иконку устройства – вы увидите тот интерфейс управления, который был настроен в кабинете вендора. Используйте виджеты для управления – установленный в панели вендора переключатель реле и виджет просмотра сигнала Wi-Fi.


Виджеты для управления устройством в мобильном приложении 2Smart Cloud

12 - Вы можете использовать дополнительные возможности по управлению устройством, которые по умолчанию дает приложение 2Smart Cloud. Например, голосовые команды, Telegram бота, управление телефонным звонком. Подробные инструкции – в блоге на сайте платформы.

13 - Доступом к устройству можно быстро поделиться с близкими – используйте меню “Общий доступ” в настройках приложения. Подробные инструкции – в блоге.

На этом все! Осталось запитать через умное реле обычную настольную лампу – и она будет отзываться на команды из мобильного приложения. При подключении питания не забывайте о мерах безопасности!

Как видите, добавление нового IoT устройства в 2Smart Cloud занимает не так много времени. Интерфейс платформы сделан максимально дружественным, а разработчики упростили работу вендора, насколько это было возможно.

Создание нового IoT устройства – это только начало работы с платформой 2Smart Cloud. В следующих статьях блога будет рассказано, как модифицировать прошивку устройств, редактировать интерфейс мобильного приложения и анализировать статистику использования продукта.

Чтобы присоединиться к 2Smart Cloud, не обязательно быть крупным производителем! Платформа открыта, в том числе, для DIY разработчиков, которые производят небольшие партии устройств, как в этом примере с умным реле.

Ссылки:


Все статьи о создании и поддержке IoT устройства в 2Smart Cloud:

  1. Познакомься с IoT платформой – создай свое первое устройство без микроконтроллера и управляй им со смартфона
  2. Как создать Wi-Fi реле с управлением через мобильное приложение и Telegram бота
  3. Как создать новое IoT устройство всего за 4 шага
  4. Как создать IoT устройство на печатной плате – от прототипа к реальному продукту
  5. Как написать прошивку для IoT устройства на базе SDK
  6. Как за 5 минут обновить прошивку и мобильное приложение готовых устройств
  7. Сбор и анализ статистики – полезный инструмент для улучшения продукта
Made on
Tilda