Інтеграція Blynk IoT-платформи у мобільний додаток
Blynk — платформа, яка позиціонується як «зроби IoT-додаток без програмування». У реальності це працює лише для прототипів. Як тільки потрібен користувацький UI, складна бізнес-логіка або брендований додаток — вбудований Blynk App не підходить. Потребує інтеграція через Blynk HTTP API та WebSocket у власний мобільний додаток.
Blynk HTTP API vs Blynk Legacy
Blynk 2.0 (Blynk IoT) — принципово інша платформа, ніж Blynk Legacy (до 2021). API несумісні. Якщо проект на Legacy — мігрувати доведеться повністю: інші токени, інші endpoints, інша модель Virtual Pins.
У Blynk 2.0 кожен проект — це Template. Пристрої створюються по шаблону з набором Datastreams (аналог Virtual Pins, але з типізацією). Токен пристрою унікальний для кожного фізичного девайса.
HTTP API для управління пристроями
Базова URL: https://blynk.cloud/external/api/ (Blynk Cloud) або ваш self-hosted endpoint.
Читання значення піну:
GET https://blynk.cloud/external/api/get?token={device_token}&v5
Запис значення:
GET https://blynk.cloud/external/api/update?token={device_token}&v5=22.5
Зверніть увагу: це GET-запит з параметрами, не POST з тілом. Для автоматизації це зручно, для мобільного додатку — неочевидно.
На Flutter робимо простий HTTP-клієнт через http або dio. Зберігати device token у додатку можна — він на рівні пристрою, не на рівні облікового запису. Але якщо пристроїв багато, потрібен спосіб їх перерахування: GET /external/api/isHardwareConnected — лише перевірка онлайну, повного списку пристроїв через external API немає.
Blynk.Cloud API для управління обліковим записом
Для отримання списку пристроїв користувача потрібен інший API — Blynk.Cloud API з OAuth2 аутентифікацією:
GET https://blynk.cloud/api/v1/organization/devices
Authorization: Bearer {oauth_token}
Це окремий API, документація по ньому неповна. OAuth2 flow: client_credentials або authorization_code. Для мобільного додатку використовуємо authorization_code: користувач логінеться через Blynk OAuth, отримуємо access token, працюємо з обліковим записом.
WebSocket для realtime-даних
HTTP polling для telemetry — погана ідея. Blynk підтримує WebSocket:
wss://blynk.cloud/websockets
Після підключення — аутентифікація через authenticate команду з device token. Потім підписка на пини через hardware. Протокол Blynk — бінарний з власним форматом пакетів, не чистий JSON. Готові бібліотеки є для Arduino/ESP, для Flutter/React Native — потребує самостійної реалізації або використання Blynk's official SDK.
Офіційний Blynk Flutter SDK (blynk_flutter — неофіційний). Офіційної підтримки Flutter SDK у Blynk немає на момент написання. Це ключове обмеження платформи для Flutter-проектів.
Коли Blynk підходить, коли ні
| Сценарій | Blynk підходить | Blynk не підходить |
|---|---|---|
| Прототип/MVP | так | |
| До 10 пристроїв | так | |
| Користувацький UI | ні | |
| Користувацька аутентифікація | ні | |
| Масштаб 1000+ користувачів | ні (дорого або self-host) | |
| Простих датчиків, ESP32 | так |
Практичний совет
Для серйозного продукту з користувацьким мобільним додатком Blynk краще використовувати лише як IoT-backend (пристрої → Blynk Cloud), мобільний додаток робити повністю користувацьким через HTTP API та WebSocket. Blynk Mobile App при цьому не потрібен зовсім.
Терміни
Базова інтеграція через HTTP API, читання/запис пінів — 1 тиждень. WebSocket realtime, OAuth авторизація, список пристроїв — 2–3 тижні. Стоимость зависит от тарифного плана Blynk и числа устройств.







