Збираємо пристрій
Що потрібно, щоб зібрати такий датчик:
- Макетна плата Breadboard – 1 шт.
- IoT-платформа ESP-WROOM-32 DevKit v1 – 1 шт. (Підійде будь-яка інша варіація платформи з мікроконтролером ESP32 на Dev Board або без неї).
- З'єднувальні дроти "Male to male" - 3 шт.
- Датчик вологості та температури DHT11 – 1 шт.
- USB-micro USB кабель.
Усі необхідні комплектуючі:

Для складання пристрою нами використовувався такий приклад схеми, знайдений за допомогою пошуку за картинками від Google:

Ось що вийшло в результаті:

Робимо зібраний пристрій «розумним»
1. Перейдіть до кабінету розробника за посиланням https://cloud.2smart.com/ . Увійдіть до свого облікового запису.

2. На сторінці “Products” натисніть “Add Product” та виберіть мікроконтролер ESP32.

3. На сторінці нового продукту вкажіть його назву та завантажте іконку – з цими даними пристрій відображатиметься в мобільному додатку.

4. Натисніть “Add Firmware” та виберіть базу для неї – ESPHome.

5. Вставте наступний код прошивки у вікні:
switch:
- platform: gpio
id: l2
name: GPIO2
pin:
number: GPIO2
sensor:
- platform: dht
pin: GPIO15
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 10s
Пояснення до коду прошивки:
✔ - Перші шість рядків – стандартний код для керування світлодіодом на мікроконтролері.
✔ - Наступні вісім рядків – стандартний код датчика DHT11, взятий тут . Ми внесли до нього дві змінні:
- виправили інтервал оновлення даних – кожні 10 секунд замість кожних 60 секунд,
- вказали пін мікроконтролера, до якого підключений датчик – у нашому випадку це GPIO15.

6. Збережіть конфігурацію коду та у вікні налаштування продукту натисніть “Build Firmware” для тестового пристрою. Вкажіть дані для підключення до вашої Wi-Fi мережі - вони будуть вшиті в код прошивки, щоб пристрій відразу вийшов в інтернет і підключився до платформи.

7. Дочекайтеся збірку прошивки та натисніть “Download”.

8. Розпакуйте завантажений архів, увійдіть до папки з отриманими файлами та ознайомтеся з інструкцією з прошивки у файлі readme.md.
Прошивка можлива з пристроїв на Mac OS, Linux та Windows – ми використовували Mac OS.

9. Підключіть пристрій до комп'ютера за допомогою кабелю USB. Очистіть пам'ять мікроконтролера командою
./2smart.sh erase_flash -d /dev/tty.SLAB_USBtoUART

10. Дочекайтесь очищення та запустіть команду встановлення прошивки
./2smart.sh write -d /dev/tty.SLAB_USBtoUART

11. Після завершення процесу прошивки поверніться на платформу – пристрій автоматично підключиться до тестового оточення. Про успішне підключення говорить зелений індикатор та статус Ready у полі "Device Status".

12. Натисніть “Preview State” – будуть доступні дані всіх сенсорів вашого пристрою, включаючи поточну температуру та вологість повітря.

13. Натисніть “Add layout” – відкриється емулятор мобільного додатка. Всі сенсори пристрою автоматично створюють відповідні віджети. Ви можете налаштувати зовнішній вигляд додатка, як вам подобається, у тому числі вибрати віджети інших типів замість тих, що встановлені за замовчуванням, а також встановити зручний порядок віджетів на екрані.
Зверніть увагу – значення сенсорів оновлюються в реальному часі вже в емуляторі мобільного додатка. Ви також можете керувати пристроєм з екрана комп'ютера – у цьому випадку доступне увімкнення/вимкнення світлодіода.

14. Відкрийте параметри датчиків температури та вологості та переконайтеся, що на вкладці "Advanced" встановлено помітку збору історичних даних. Також рекомендується додати одиниці виміру та межі по вертикальній осі.


15. Зверніть увагу, що в мобільному додатку, крім екрана віджетів, автоматично створено екран телеметрії з метаданими. Рекомендується не видаляти його.

16. Натиснувши стрілку “Back” в емуляторі мобільного додатка, можна побачити, як датчик виглядатиме у списку підключених пристроїв.

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

Після завершення налаштування інтерфейсу натисніть “Save”.

18. Запустіть мобільний додаток 2Smart Cloud на смартфоні - швидше за все, ви вже використовували його для підключення та управління віртуальною лампою. Авторизуйтесь з тим логіном та паролем, який ви використовували для реєстрації в кабінеті розробника.
19. Ваш новий пристрій вже відображається у додатку – переконайтеся, що ви можете вмикати/вимикати світлодіод на платі та отримаєте коректні показання від датчика температури та вологості.


20. Поверніться на платформу та натисніть “Build Firmwareʼ” для серійного пристрою. Буде зібрано фінальну версію прошивки, яка не містить параметрів вашої Wi-Fi мережі та інших специфічних рядків коду, необхідних для тестування прототипу. Завантажте архів, що отримали.


21. Прошийте пристрій серійною прошивкою аналогічно до прошивки тестовою версією. Не забудьте очистити пам'ять мікроконтролера.
Використовуйте такі команди:
./2smart.sh erase_flash -d /dev/tty.SLAB_USBtoUART
./2smart.sh write -d /dev/tty.SLAB_USBtoUART


22. Натисніть “Publish”, щоб розпочати використання пристрою у звичайному режимі.


23. Поверніться в мобільний додаток, натисніть кнопку "Add Device" на екрані "Devices" - запуститься процедура приєднання.

24. Виберіть у списку доступних для прив'язки до додатка “Others”. Потім натисніть "Continue".


25. Вкажіть дані вашої Wi-Fi мережі, які будуть надіслані пристрою для підключення до інтернету.

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


27. Дочекайтеся завершення процедури приєднання.

28. Тепер датчик температури відображається на екрані “Devices”. Переконайтеся, що ви можете керувати ним із екрана смартфона. Зачекайте деякий час, поки з'явиться історія показань температури та вологості та перевірте стан відповідних графіків.




На цьому все! Всього за 30 хвилин ми створили корисний IoT пристрій, який можна використовувати щодня. При необхідності датчик температури та вологості можна розмістити на друкованій платі, а також на 3D принтері роздрукувати корпус пристрою. Розмістивши його в кімнаті або будь-якому іншому приміщенні, ви можете контролювати температуру та вологість звідки завгодно, де є доступ до інтернету.