Блог 2Smart (UK)

Як написати прошивку для IoT пристрою на базі SDK

Як написати прошивку для IoT пристрою на базі SDK
Після створення нового IoT пристрою в 2Smart Cloud (у цьому прикладі – розумного Wi-Fi реле), тестування прототипу та складання пристрою на друкованій платі було отримано повноцінний продукт. Реле керується з мобільного додатка та за допомогою додаткових способів (голосові команди в екосистемах Google та Apple, Telegram-бот, телефонні дзвінки). Перша серія пристрою встановлена у кількох користувачів, їх функціонал повністю влаштовує.

Проте прошивка пристрою на базі ESPHome пов'язана з деякими обмеженнями. Головне з них – неможливість оновити прошивку через повітря. Для перепрошивки новим кодом кожен із пристроїв потрібно підключати до комп'ютера через USB-кабель, що незручно.

Рішенням є використання набору засобів розробки (SDK) платформи, за допомогою якого можна створити кастомну прошивку. Окрім можливості оновлення всієї серії пристроїв через повітря, SDK дає додаткові переваги: вбудований веб-інтерфейс з налаштуваннями пристрою, відправлення повідомлень про його стан та інші нові функції. Важливо, що все це завдяки SDK доступно вже з коробки, відразу після прошивки пристрою.

Великим плюсом SDK є те, що базові функції стандартного пристрою вже прописані. Розробнику достатньо взяти відповідний готовий приклад реалізації коду та використовувати його для свого пристрою, спираючись на титоріал, який допоможе описати бізнес-логіку роботи. Розбиратися в механіці роботи платформи IoT при цьому не потрібно.

Створення прошивки на основі SDK


Для Wi-Fi реле Custom прошивка на основі SDK вже написана - код можна знайти на гітхабі. Цей код можна використовувати без змін, встановивши готову прошивку на пристрій. Щоб почати користуватися прошитим таким чином реле, достатньо прив'язати його до мобільного додатка. При цьому пристрій не буде вашим продуктом – у ролі виробника виступатимуть розробники платформи.

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

Оскільки базова прошивка повністю змінюється (до цього використовувалася ESPHome), редагування існуючого продукту на платформі неможливо. Потрібно створити новий продукт на основі Custom прошивки.

1. У кабінеті розробника перейдіть до розділу "Products" та натисніть "Add Product".

створення нового продукту в кабінеті розробника 2Smart Cloud

2. Виберіть мікроконтролер, на основі якого створено пристрій – це ESP32.

Вибір мікроконтролера пристрою

3. Заповніть інформацію про пристрій: вкажіть назву, завантажте іконку.

Вказівка загальної інформації про продукт

4. Натисніть кнопку «Add Firmware».

Перехід до створення прошивки пристрою

5. Виберіть Custom та натисніть кнопку “Next”.

Вибір бази для нової прошивки

6. Натисніть посилання “Connection Info”.

Посилання на параметри, необхідні для створення прошивки

7. Залиште відкритим вікно з параметрами для підключення – деякі з них потрібно буде скопіювати в код прошивки.

Параметри для підключення, необхідні для створення прошивки

8. Перейдіть у завантажений репозиторій прошивки, відкрийте файл Firmware/src/main.h та внесіть такі зміни:

  • скопіюйте ідентифікатор продукту та вставте його у поля firmwareName та productId,
  • вкажіть назву точки доступу вашого пристрою замість того, що вказано за замовчуванням, у полі deviceName,
  • Якщо ви створюєте новий продукт, переконайтеся, що його версія, вказана в device_version, дорівнює 1.

Параметри для підключення до коду прошивки

9. Збережіть зміни в коді прошивки та прошийте свій пристрій.

Зверніть увагу! Якщо на мікроконтроллер вже записано прошивку, не забудьте видалити її відповідно до документації.

Прошивка пристрою

10. Після успішної прошивки пристрій створить власну точку доступу Wi-Fi з тією ж назвою, що була вказана для пристрою в коді прошивки. Підключіться до цієї мережі.

Підключення до мережі Wi-Fi для переходу до вбудованого веб-інтерфейсу

11. Перейдіть за посиланням http://192.168.4.1/ – відкриється веб-інтерфейс пристрою. Використовуйте для входу логін “admin” та пароль “admin” (за потреби значення за замовчуванням можна змінити у налаштуваннях).

Веб-інтерфейс пристрою

12. Скопіюйте у поля на вкладці Credentials значення з вікна “Connection Info”:

  • у полі Login – значення “User Login”,
  • у полі Token – значення “Access Token”,
  • у полі Hostname (під спойлером Advanced) введіть значення “cloud.2smart.com”,
  • у полі Device ID скопіюйте значення “Test device ID”.

Після заповнення всіх полів натисніть Save.

Введення параметрів для підключення до веб-інтерфейсу пристрою

13. Переконайтеся, що ваш комп'ютер, як і раніше, підключено до точки доступу Wi-Fi пристрою. Перейдіть на вкладку Wi-Fi та натисніть кнопку Scan.

Пошук доступних Wi-Fi мереж

14. Виберіть свою мережу Wi-Fi у списку та введіть пароль для доступу до неї – це потрібно, щоб пристрій підключився до платформи.

Зверніть увагу! Пристрої на основі мікроконтролера ESP32 підтримують лише Wi-Fi мережі з частотним діапазоном 2,4 ГГц!

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

15. Поверніться до своєї мережі Wi-Fi і перейдіть до кабінету розробника. На сторінці продукту закрийте вікно з інформацією про підключення. Зверніть увагу на статус пристрою – після внесення необхідних налаштувань у веб-інтерфейсі статус має змінитись на Ready.

Повідомлення про успішне підключення тестового пристрою до платформи

16. Натиснувши кнопку “Preview State”, ви побачите актуальні дані сенсорів пристрою.

Перегляд даних сенсорів пристрою

17. Натисніть кнопку “Add layout” та налаштуйте зовнішній вигляд мобільного додатка для керування пристроєм. Зверніть увагу, що прошивка Wi-Fi реле на основі SDK зробила доступними віджети для роботи з оновленнями та повідомленнями.

Перехід до створення інтерфейсу мобільного додатка

Рекомендуємо створити окрему вкладку в інтерфейсі додатка для віджетів, пов'язаних із оновленням прошивки. У цьому прикладі створено шість таких віджетів на вкладці Firmware:

  • перемикач Auto Update – увімкнення автоматичного оновлення прошивки,
  • кнопка Update – примусовий запуск оновлення прошивки натисканням,
  • віджет TimePicker для налаштування точного часу доби, коли пристрій шукатиме нову версію прошивки для автоматичного оновлення,
  • текстовий віджет зі статусом оновлення,
  • текстовий віджет із номером версії актуальної прошивки на пристрої,
  • текстовий віджет з IP-адресою веб-панелі пристрою.

Інтерфейс мобільного додатка – вкладка Firmware

Для налаштування повідомлень рекомендуємо створити вкладку Notifications і додати до неї два віджети:

  • перемикач System для системних повідомлень (для Wi-Fi реле це повідомлення про перемикання реле фізичною кнопкою на корпусі),
  • перемикач Update для повідомлень про оновлення прошивки.

Інтерфейс мобільного додатка – вкладка Notifications

18. Після збереження налаштованого інтерфейсу натисніть посилання “Upload firmware” та завантажте на платформу готовий файл firmware.bin, який знаходиться в папці з прошивкою .pio/build/esp32ev/. Увімкніть на своєму пристрої відображення прихованих файлів, якщо не можете знайти сформовану прошивку.

Вікно завантаження файлу прошивки на платформу

19. Натисніть “Publish” та підтвердіть бажання розмістити новий продукт на платформі.

Публікація нового продукту

Публікація нового продукту

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

Інтерфейс керування новим пристроєм дає додаткові можливості, налаштовані в кабінеті розробника: керування оновленнями прошивки через повітря, налаштування повідомлень від пристрою. У випадку з Wi-Fi реле це саме те, що потрібно отримати від Custom прошивки.

Інтерфейс керування пристроєм у мобільному додатку 2Smart Cloud

Інтерфейс налаштування оновлень прошивки пристрою в мобільному додатку 2Smart Cloud

Інтерфейс налаштування повідомлень від пристрою у мобільному додатку 2Smart Cloud

На цьому все. Custom прошивка була залита на той самий пристрій, який до цього було прошито ESPHome , або аналогічний йому. Переконавшись, що Wi-Fi реле працює без збоїв та керується з мобільного додатка, можна перепрошити всю серію пристроїв. Це буде останнє оновлення прошивки через USB-кабель – наступні оновлення завдяки використанню кастомної прошивки на SDK будуть надходити через повітря.

Як створити оновлення прошивки та оновити пристрої повітря, можна дізнатися з наступної статті.

Посилання:


Всі статті про створення та підтримку IoT пристрою в 2Smart Cloud:

  1. Познайомся з IoT платформою – створи свій перший пристрій без мікроконтролера та керуй ним зі смартфона
  2. Як створити Wi-Fi реле з керуванням за допомогою мобільного додатка та Telegram-бота
  3. Як створити новий IoT пристрій всього за 4 кроки
  4. Як створити IoT пристрій на друкованій платі – від прототипу до реального продукту
  5. Як написати прошивку для IoT пристрою на базі SDK
  6. Як за 5 хвилин оновити прошивку і мобільний додаток готових пристроїв
  7. Збір та аналіз статистики – корисний інструмент для покращення продукту
Made on
Tilda