Інтеграція мікроконтролера ESP32 C3 SUPER MINI для моніторингу світла проєктом svitlobot.in.ua | SvitloPulse
Одного чудового теплого вечора моє внутрішнє бажання дізнатися щось нове та цікаве зуміло створити покрокову статтю - як моніторити через Telegram стан електрики в будинку при відключенні світла.
До речі кому цікаво, ось посилання на першу мою статтю - Прошивка мікроконтролера esp32 для моніторингу світла проектом svitlobot.in.ua
Чи актуальна попередня стаття? - цілком і повністю! Раджу ознайомитися для загального розуміння. Звісно сьогодні ми все повторим але НАБАГАТО простіше і без танців гопака та пошуку "себе" перед монітором ПК.
Що ми будемо воркати? - ми запустим власну систему сповіщень для відслідковування статусу світла в нашому будинку, усі неприємні та складні кроки за нас вирішив автор прошивки та репо на GitHub - де потрібно мінімум дій, мінімум слів, та мінімум власної потужності, а як ми знаємо потужним буває лише... але про це не сьогодні.
Якщо ви раптом не знали, існує чудовий волонтерський проєкт під назвою СвітлоБот . Як він працює, та що це за дракоша коротко описано нижче:

СвітлоБот - проект ентузіастів для моніторингу статусу світла у вашому будинку, який створила група учнів із ліцею «Наукова Зміна» - Чигарьови Дмитро і Артем. Суть проекту полягає в тому, аби підключивши вдома або в офісі в розетку на зарядку старенький або непотрібний смартфон/планшет (android) та налаштувавши його згідно наданої інструкції, ви зможете отримувати сповіщення у свій створений телеграм-канал повідомлення про наявність/відсутність світла на підставі того, йде зарядка цього смартфону чи ні.

За той час, коли була написана моя перша стаття на цю тему, силами спільноти було створено безліч різних версій прошивок під різні версії ESP. Чесно, у мене таке відчуття, що наші чудові люди вже зовсім скоро зуміють запустити СвітлоБота навіть на Nokia 3310 раніше, ніж Ілон Скам людей на Марс.
Загалом, я вам обіцяла коротку інструкцію як це реалізувати - ну почнімо!
👀 По-перше,
я дуже не хочу переказувати весь масив інформації який детально описала знову ж таки у моїй першій статті. Топаємо туди, читаємо хоча б першу частину як працює СвітлоБот, чому він Бот, і чому Світло. Навіщо нам потрібні дивні платки, та чому абревіатуру із 3-х букв - ESP я повторила близько 63 рази. А ще що таке прошивки, і до чого там шаурма.
Той хто розуміє про що йде мова коротко опишу особливості саме цієї прошивки:
➖ Інтеграція лише із сервісом https://svitlobot.in.ua/ через ключ;
➖ Налаштування усіх параметрів (ключі, пароль та назва WI-FI) відбувається у браузері ДО прошивки самої ESP (або у іншому варіанті через застосунок на Android);
➖ Немає інтеграції із сервісом сповіщень healthchecks.io ;
➖ Є веб інтерфейс ESP зі важливою статусною інформацією;
➖ Є варіант налаштування за допомогою мобільного застосунку на Android;
Так як ви неймовірно креативні та розумні, я знаю що були ознайомлені та можна рухатися далі...
Перед тим як ми приступимо, хочу повідомити що я не несу жодної відповідальності за ваші дії. Усе що ви робите - на власний страх і ризик. Інформація подана виключно в інформативних цілях. Я не є автором ПЗ, та ідеї цієї реалізації, а лише описую зібрану мною інформацію та подаю стисло у вигляді інструкції яку я особисто повторила. Дякую, шановне панство!
🤲 Мені в долоньки
потрапив на тестування дійсно файний та цілком готовий пристрій для інтеграції його у систему СвітлоБот. Як виявляється існують версії мікроконтролера ESP32 дуже і дуже мініатюрні, а саме - ESP32 C3 Super Mini.
І знаєте, це той випадок коли за розмір нууу геееть не соромно! Ну ви просто погляньте, наскільки це компактно та мініатюрно:

щоб ви також розуміли розмір платки, ось порівняння із монетою 5 та 10 грн:

На мою скромну думку автор цього проєкту вдало підібрав плату ESP, зумів також змоделювати та надрукувати на 3D принтері корпус для неї - ось і вийшов готовий пристрій для людей, який також прошивається та налаштовується дуже просто за лічені хвилини.
І це логічно, адже аби поширити в маси ідею створити кожному розумні оповіщення про наявність електрики в будинку через кляті обстріли енергосистеми України, ще клятішим відсталим сусідом, потрібно насамперед забезпечити можливість це реалізувати швидко і легко. Щоб людина яка почує слово "нам потрібна прошивка" не шукала пігулки для нервової системи, яка далека від розуміння коду, програмування, встановлення цих страшних прошивок, а могла у декілька кліків навчити ці платки творити справжню магію, але без заспокійливих) 🪄
До слова, на офіційному сайті СвітлоБота є варіанти запуску його через Wi-Fi роутер та старий корч (або не дуже) на Android. Але чому я не використовую ці обидва варіанти, а надаю перевагу ESP - розповіла у першій статті.
Ну що, переходимо до налаштування СвітлоБота:

🧐 Що потрібно, аби заставити це добро працювати?
SvitloPulse - перш за все хочу вас познайомити із автором цього рішення, ви можете знайти всю потрібну вам інформацію на GitHub, ось посилання:
🔗 https://github.com/SvitloPulse
Це проект дешевого датчика сумісного з волонтерським проектом Світлобот для моніторингу відключень світла та сповіщень у Telegram.
До речі, автор також поділився готовими STL модельками корпусу для щасливих власників 3D принтерів.
Завантажити можна - натиснувши тут ☺️ (сервер archive.org)

Автор дає нам декілька варіантів прошивки цієї платки ESP, а саме:
- Самостійна збірка та прошивка за допомогою VSCode
- Прошивка через ESPHome Web
- Прошивка та налаштування через SvitloPulse Web інсталятор
Окей, який із варіантів обрати? - а я вам відповім що будь-який! Лише залежить від того, скільки ви нервів та заспокійливого готові на етапах витратити якщо ви людина яка далека від розуміння коду. Але на щастя опишу вам коротко кожен із варіантів (спойлер - використаємо останній, третій).
Почну із третього, по-суті найпростішого, прошивка та налаштування через Web інсталятор.
Так як ми із вами - ліниві долоньки, автор створив Web інсталятор, який усі "страшні" кроки вирішить замість нас!
☝🏻 АЛЕ!
Передусім коти домовились що ми вже маємо на руках ПРАВИЛЬНУ версію платки ESP32 C3 Super Mini, або готове рішення від автора надруковане на 3D принтері, або платку в своєму будь-якому DIY корпусі, загалом, прошу вас, просто майте на руках ПРАВИЛЬНУ версію цієї платки. Адже не знаю у що ви будете тикати USB кабель, та що будете прошивати, якщо трішки дасте маху та придбаєте НЕ ТУ версію цієї ESP.
Упс, угу))
І чому потрібна "правильна" версія цієї ESP-шки? - на жаль правильна версія ESP не зуміє заставити русню зникнути із обличчя землі (це зуміє лише ЗСУ і сили оборони, тому завжди підтримуємо їх), та ні - не покращить лібідо. Але збереже нерви і розуміння, що - ви не лох ))
Автор зазначає у своєму репо що під час купівлі будьте уважні! Є дуже схожа версія плати з чипом без вбудованої flash пам'яті! Така плата не буде прошиватися!
Перед купівлею огляньте платку, або попросіть продавця сфотографувати плату (якщо це Aliexpress або OLX тощо), щоб було добре видно маркування на чипі:

- Процесор: ESP32-C3, 32-бітний RISC-V однопроцесорний чип з робочою частотою до 160 MHz.
- WiFi: Підтримка 802.11b/g/n (2.4GHz), режими Station, SoftAP і SoftAP+Station.
- Bluetooth: Версія 5.0.
- Енергоспоживання: Глибокий сон – близько 3.4μA.
- Пам'ять: 400KB SRAM, 384KB ROM, вбудована 4MB Flash пам'ять.
- Розміри: Компактні габарити (22.5мм x 18мм), підходять для носимих пристроїв і невеликих проєктів.
- Широкі можливості: Підтримка AES-128/256, RSA, HMAC, цифровий підпис і безпечний запуск.
- Інтерфейси: 1xI2C, 1xSPI, 2xUART, 11xGPIO (PWM), 4xADC.

Цікавим є те, що на платі мінімум компонентів, наприклад, відсутній чип USB-UART CH340. ESP32-C3 має вбудовану підтримку USB, а при підключенні плати до ПК з Windows 10 нема потреби встановлювати і шукати кляті драйвери, як для інших модулів ESP, наприклад як ми проходили це у першій статті.

Коли ми маємо на долоньках точно потрібну версію платки, наступним кроком нам знадобиться компуктер\ноут із працюючим портом USB Type A\ Type C та працюючий data-кабель.
НАРОД, ще раз - працюючий ДАТА кабель). Адже я замітила, що у багатьох на цьому, начебто простому, етапі виникають трабли! Нам потрібен якісний шнур USB, яким ми і будемо прошивати плату. Раптом ви не знали, існують шнури які ЛИШЕ виконують функцію зарядки, без передачі даних! Розумію що зазвичай у кожного їх розкидано по домі десь так 100500 різних, але нам потрібний точно працюючий - не від пилососа, вібратора або пральної машинки, а якісний! Щоб впевнитись - під'єднайте спочатку ним будь-який пристрій (типу телефона) і переконайтеся що він не лише заряджає, але й передає дані з ПК на телефон чи навпаки.
😮💨 Ф-уух, і наступне:
Нам потрібно мати звісно компуктер\ноут з виходом в інтернет. В моєму випадку це - Mac OS. Автор вказує що бажано аби операційна система була Windows 10, напевно щоб не було проблем з драйверами, і так як у 95% користувачів скоріше за все буде саме Windows - думаю ніяких проблем не вилізе. Звісно можете спробувати використовувати й Linux, або іншу версію Windows, але давайте без дідівських реліквій).
Та встановлений браузер GoogleChrome найсвіжішої останньої версії (щоб не виникло додаткових помилок)
Отже повертаємось до етапу вибору варіантів прошивання, ми обрали: Прошивка та налаштування через SvitloPulse Web інсталятор - що це?
Якщо коротко - автор створив зручну веб версію з відкритим кодом, за допомогою якої можна не завантажувати жодних сторонніх програм, та файлів, а лише перейшовши на сторінку, під'єднати плату і за вказівками інструкції майстра встановлення виконати потрібні етапи у декілька кліків! - так, це для мене 🦥.
Далі за інструкцією ми обираєм цей варіант, отже все просто:
- Натисніть кнопку BOOT на платі (вона знаходиться ліворуч, якщо розвернути плату як на зображенні):

та, утримуючи її натиснутою, підключить USB Type-C кабель до плати і до ПК. Якщо плата у корпусі, то скористайтеся тонким предметом, наприклад, шпилькою, або зубочисткою:

2. Після підключення плати до ПК, у Windows стане доступним новий пристрій - COM порт, через який і буде відбуватися прошивка. Важливо запам'ятати номер COM порта (наприклад COM9). Це знадобиться далі у ESPHome Web. Де шукати цей COM?
У Windows заходимо в Диспетчер пристроїв (англ. Device Manager), шукаємо пунктик "порти COM" і дивимось чи відображається новий (для впевненості не закриваючи вікно менеджера, підключіть та відключіть декілька разів вашу ESP від ПК, якщо не впевнені під яким COM номером те що потрібно):

Кнопку BOOT можна відпустити, не потрібно мучити пальчики. Тепер плата в режимі очікування прошивки
3. Топаємо за цим посиланням з браузера GoogleChrome - https://svitlopulse.github.io/webinstaller/ та виконуєм інструкції майстра встановлення прошивки, а саме:



натискаємо - Далі

На цьому етапі введіть у форми правильну назву WiFi мережі, пароль від неї та ключ Світлобота який ви отримали з Телеграму (читайте інструкцію на сайті Світлобота). Ці дані будуть передані на пристрій під час прошивки і більше нікуди.
ВАЖЛИВО
Обирайте вашу WiFi мережу стандарту 2.4 ГГц, мережі стандарту 5 ГГц не підтримуються пристроєм ESP. Також перевірте правильність вашого паролю від WI-FI та назву мережі (пробіли, знаки, цифри тощо). Але якщо десь ви помилилися - можете перепрошити пристрій знову виконуючи покроково усе спочатку, вказавши нові налаштування.

Далі розпочніть встановлення прошивки, тицьнувши кнопку - РОЗПОЧАТИ. Інсталятор очистить пам'ять чипу та завантажить туди прошивку разом з даними для підключення до WiFi та Світлобот.
А далі, якщо все вірно, відбуватиметься - магія:



Після успішного успіху, як дехто говорить, та завершення прошивки пристрій готовий до роботи, додаткові налаштування не потребуються.
Оновлено 17.09.24:
Тепер із новою версією прошивки (0.0.3) було виправлено декілька проблем із живленням та доданий веб інтерфейс зі статусною інформацією.
Що це для нас значить?
Тепер після прошивки будь-яким із способів (в тому числі за моєю інструкцією), у нас є можливість переглядати як саме працює наша ESP платка прямо із нашого браузера. Це щось на кшталт "адмін панелі", де вказується:
- Стан підключення до Світлобота (помилка чи вдале підключення)
- Час останнього пінгу сервера Світлобота
- Назва вашої WiFi мережі до якої підключено ESP та рівень її сигналу
- Температура самого чипу (в разі помилок, можна контролювати перегрів)
- Версія прошивки встановленої на ESP
- Модель чипу
Тепер після прошивки, ми можемо перейти за адресою http://svitlopulse.local та увійти у веб інтерфейс ESP:

Важливо! Звичайно посилання не відкриється наприклад з мобільного інтернету, чи з іншої Wi-Fi мережі. Потрібно щоб ваш пристрій (ПК, ноут чи телефон) був одночасно з'єднаним із тією самою Wi-Fi мережею що і ESP - логічно! Тому що це локально у спільній мережі.
Також посилання може не відкриватися, якщо ви знаходитеся в інший мережі, аніж пристрій, наприклад: ви підключені до точки Wi-Fi 5ГГц, або по LAN, коли наша ESP працює лише з 2.4ГГц .
Ви можете дізнатися який саме унікальний IP адрес присвоїв клієнту (нашій платці ESP) ваш Wi-Fi роутер! Наприклад 192.168.1.237 - та перейти за цією адресою (у вас буде інша IP адреса), і ви також потрапите до веб інтерфейсу на ESP.
Тому щоб не додовбуватися до свого Wi-Fi роутера, немов п'яний до стежки, в пошуках конкретного IP адресу, у нас є готовий лінк із назвою яку легко запам'ятати - http://svitlopulse.local
Посилання не буде відкриватися на Android нижче 11 версії.
🎉 НУ ХІБА ЦЕ НЕ МАГІЯ?
Вітаю любі друзі - ви це зробили, тепер ще простіше і без зайвих молитв..
Мені здається що цей варіант прошивки настільки швидкий, на скільки можна це реалізувати взагалі. Адже від нас вимагається лише буквально декілька дій.
Загалом і в цілому наступним етапом буде лише очікування коннекту нашого пристрою із серверами Світлобота, для першого пінгу між ними. Як пише автор - зачекайте близько півтори хвилини, саме через такий проміжок часу пристрій з'єднується перший раз із сервісом Світлобот. Після успішного з'єднання на пристрої ввімкнеться синій індикатор.
Підбираємо хороше джерело живлення (наприклад хороший блок зарядки телефонів) та живим платку кабелем на постійну основу.
⚠️ І ДУЖЕ ПРОШУ, щоб ви розуміли, У ЖОДНОМУ РАЗІ не пробуйте живити власноруч плату ESP на пряму від мережі 220v - це так не працює! Це небезпечно для життя! ⚠️
Звичайно платка може живитися різними діапазонами напруги у різних DIY проектах (її по-суті пряма функція), але якщо ви не розумієте деталей та як це працює, і не знайомі із даташитом - краще просто увімкніть у самий звичайний якісний блок живлення, буде вам і нам спокій! Інакше в кращому випадку ви спалите платку або будинок свій чи сусіда)
В гіршому - ну ви розумієте.
Окей, зрозуміли!
Далі наші дії не хитрі - ховаємо (або ні) платку в зручне для нас місце, бажано не в таких місцях де не те що сигнал WI-FI, а й "енергія всесвіту" не проникає - забули! Нам потрібний хороший сигнал домашньої мережі та якісний пінг, адже наша платка не має достатньо супер мега потужної WI-FI антени, адже потужним лише буває... Ех, ну ви зрозуміли що випадки бувають різні).
Якось ось так виглядає в роботі плата, яка потрапила в мої долоньки на тестування від автора SvitloPulse:

До речі, якщо виникають будь-які помилки на різних етапах, відразу не розводьте зрадоньку, раджу зазирнути на офіційну сторінку GitHub автора, у розділ - WIKI ( https://github.com/SvitloPulse/esp32-firmware/wiki ) в графу:
Поширені запитання FAQ - https://github.com/SvitloPulse/esp32-firmware/wiki/esp32c3-supermini-FAQ думаю ви там не віднайдете сенс життя та що з *балом у русні, але поширені помилки і можливі причини збоїв - точно!
🤌🏻 Отже
у Wiki ви знайдете також детальні інструкції по збірці прошивки та її налаштуванню різними способами для деяких підтримуваних плат та чипів родини ESP32 (думаю буде доповнюватися). Адже якщо ви пам'ятаєте - як я писала з самого початку, у нас існує окрім цього також ще варіант прошивки через ESPHome Web та варік як страшний сон збірки та прошивки у VSCode - де в останньому потрібно встановити середовище розробки, завантажити код, відкрити його, зібрати, і ще багацько дій (не враховуючи того що може піти щось не так). Ні-ні, це лише для ентузіастів, а ми з вами - ліниві долоньки. Тому подякуємо усім розробникам, та авторам за те, що ці страшні кроки буквально виконали за нас.

🤗 На сьогодні у нас - все. Дякую за увагу
Також не забувайте долучатися в Телеграм спільноту СвітлоБота, і задавати будь-які запитання чи пропозиції (різні корисні посилання залишаю знизу).
Щастя можна знайти навіть у найтемніші часи, якщо не забувати звертатися до світла. © Альбус Дамблдор
Бажаю вам мирного неба 🕊
🔗 Репозиторій SvitloPulse на GitHub
🔗 Сторінка WIKI | SvitloPulse
💻 Посилання на Web інсталятор
⚙️ Сторінка релізів з bin файлами прошивки
📄 Перша стаття прошивки мікроконтролера esp32 для моніторингу світла проектом svitlobot.in.ua
💬 Telegram чат-форум Світлобот ⚡️ API
🔗 Офіційний Telegram Світлобот ⚡️ Новини
🔗 Світлобот ⚡️ FAQ (поширені питання)
🔗 Сайт https://svitlobot.in.ua/

Як підтримати проєкт СвітлоБот?
Вище QR та - 👉🏻 посилання на монобанку 👈🏻
- Виправлено періодичні відключення плати ESP32C3 SuperMini від WiFi, спричинені, попередньо, просадками напруги живлення чипу, коли він передає інформацію. Велике дякую Dmytro Maksymiuk за допомогу з дебагом!
- Доданий веб інтрефейс зі статусною інформацією:Стан підключення до Світлобота
- Час останнього пінгу сервера
- Назва WiFi мережі та рівень сигналу
- Температура чипу
- Версія прошивки
- Модель чипу
- Додана можливість заходити на веб інтерфейс за посиланням http://svitlopulse.localПосилання не буде відкриватися на Android нижче 11 версії
- Посилання може не відкриватися, якщо браузер знаходиться в інший мережі, аніж пристрій, наприклад:Пристрій підключений до WiFi 2.4G, а ПК підключений до LAN, або WiFi 5G
Assets:
💾 esp32c3-supermini-firmware-merged.bin
sha256 09831c585f9dd9b3e0d2bd18ba2796e9e4140c8591bf5333fe5a8c1778ef84f9
💾 manifest.json
sha256 8d705efb18aca9843e7d169a153371fb3f23a60f92cddf508889c73352d8500b
💾 Source code (zip)
sha256 31250cf5444bf6d4403d043e03490a35b588e26683b43a8d046febfba8d389f2
💾 Source code (tar.gz)
sha256 20e1a0f1852bd048ebc890f677bebc908e96b6ced6681923623587443cfa0119
Дякую Олександру за тест пристрою і прошивки!
- Збільшено інтервал пінгів сервера до 90 секунд
- Збільшено інтервал між спробами підключення до WiFi
- Виправлено помилку в скрипті для релізів
Assets:
💾 esp32c3-supermini-firmware-merged.bin
sha256 27ea9ac69b451488a025ef4144bd8b3dd3d2c371394000074ac982433a9b79d1
💾 esp32c3-manifest.json
sha256 7983ca740415c5df1f433b4df7cacc354f65a932949553893aab5176b87809e3
💾 Source code (zip)
sha256 254c9b0a6270af20a4d315c4bda5c34a8ecf0abe67c957ef4a22863df85d5e5c
💾 Source code (tar.gz)
sha256 222bca26f099f12320b9505e6793e529b0fc5cbca5ea9cc1817a36d36405e5d5
- Успішно збирається та прошивається на Windows 10
- Працює без проблем на платі ESP32-C3 Super Mini board.
- Див. більше про цю плату та інструкції з налаштування в Wiki
- Прошивка може бути завантажена на пристрій за допомогою ESPHome Web
- Прошивка була скомпільована з параметрами по замовчуванню, тому вона переходить в режим Smart Config, та очікує кофнігурацію від Андроід застосунку (скоро буде).
Assets:
💾 esp32c3-firmware-merged.bin
sha256 0afeae56cc7afce42d941e8fc88bbf3c5051b1cf092219e537c96e3a840ef3cb
💾 esp32c3-manifest.json
sha256 389dd4bf0bb27a0129588ee73e38768fca63c4d5ddcd3ae2a2bf0aa98ecc4155
💾 Source code (zip)
sha256 e058b7331c7beb2fdaa966c02e33d1d19e7afdd952bbfdee714da9f4aad93830
💾 Source code (tar.gz)
sha256 c9584e9ff5fc9bc35c2e4cfe9c737bcb77f56f59020dc60469420e620ac63d29