Blynk: просте управління Raspberry та Arduino. Публічні хмарні сервери для IoT пристроїв Хмарні сервіси для керування ардуїно

Я багато думав про те, щоб знайти недороге рішення для підключення та управління Arduino через інтернет без використання будь-якого Ethernet екрану або навіть будь-якого модуля WI-FI. Після дослідження я виявив, що єдиний спосіб взаємодії з мікроконтролером Arduino - це його послідовний порт (serial port), тому створив простий віконний додаток C# як хаба (HUB) для роботи з послідовним портом для відправки та прийому даних на плату.

Ця HUB-програма вже підключена до Інтернету через ваш персональний комп'ютер і допомагає відправляти та отримувати дані між мікроконтролером та хмарною базою даних, крім зберігання самих даних в онлайн-базі MySQL.

Насамперед мені довелося почати з невеликого прикладу, який дозволяє протестувати застосування ідеї. У цьому прикладі я не підключив будь-який датчик, я використовував тільки вбудований світлодіод Arduino, щоб я міг включати і вимикати світлодіодний індикатор на виводі 13, відправивши літери «I» і «O» на послідовний порт.

Int input; //Зберігатиме вхідний символ з послідовного порту. int led = 13; // Pin 13 // функція налаштування запускається один раз, коли ви натискаєте кнопку скидання або вмикаєте живлення int state; void setup() ( // ініціалізувати цифровий висновок LED_BUILTIN як вихід. Serial.begin(9600); pinMode(led, OUTPUT); // Встановіть контакт 13 як цифровий вихід Serial.flush(); ) // функція циклу працює знову і знову завжди void loop() ( // String input = ""; // while (Serial.available() > 0) // ( // input += (char) Serial.read( ); // delay(5); // ) state = digitalRead(led); if (Serial.available()) ( input = Serial.read(); led, !digitalRead(led));digitalWrite(led, HIGH);Serial.println(1);delay(1000); (0); delay(1000); ) else if (input == "T") ( analogRead(led); Serial.println(0);

Крок 2. Створення онлайн бази даних

Для зберігання даних ми маємо використовувати "онлайн-посередник", який послужить мостом між платою Arduino та нашим HUB-додатком. Тому ми обрали безкоштовний хостингБаза даних, яка буде працювати в напрямку збереження даних, отриманих від плати Arduino і відправлених команд на неї.

Найпростіший вибір у нашому випадку - бази даних MySQL, т.к. це безкоштовно і зазвичай широко використовується. У прикріпленому нижче архіві ви виявите, що він містить лише дві таблиці. спочатку потрібно зберегти команди, потім відправити їх на плату, а друга таблиця – отримати виходи плати Arduino та відновити для подальшого використання.

Як хостинг можна вибрати сайт freemysqlhosting.net. Онлайн PHP MyAdmin можна знайти за посиланням - phpmyadmin.co. Більше інформації можна знайти на сайті phpmyadmin.net.

Крок 3. Створення C# хаба

На цьому кроці ми створимо хаб, який можна розглядати як вхідний фільтр на ПК, щоб спочатку передати дані, що проходять через нього, потім надіслати їх на плату Arduino через послідовний порт і навпаки.

Інтерфейс цього хаба дуже простий, він містить лише два текстових полів, які показують статус кожної "транзакції", передає дані хаба (надсилання та отримання).

Примітка. Хаб повинен завжди бути запущений, коли ви хочете працювати зі своєю платою Arduino через інтернет.

Крок 4. Створюємо web-інтерфейс

Нарешті ми дійшли до найкрутішої частини уроку.

Я створив веб-додаток на основі технології Asp.net C# з адаптивним інтерфейсом, який може працювати на будь-якому пристрої, цей веб-додаток має справу тільки з онлайн базою даних і не знає, що на іншій стороні є якась плата.

За допомогою цього інтерфейсу можна класифікувати свої електронні компоненти, підключені до Arduino. Клацаючи мишею, включаючи та вимикаючи їх, ви просто зберігаєте дані онлайн.

приклад

Натиснувши зелену кнопку (ON) у розділі «Гостина» (Hall – вище на малюнку), ви відправляєте вказівку через Інтернет увімкнути світло у вітальні вашого будинку. Таким чином, хаб, який може знаходитися на іншій стороні світу, приймає вказівку та обробляє його за допомогою електронного ланцюга, заснованого на Arduino у вашому будинку.

Protected void BtnHallOn_Click(object sender, EventArgs e) ( AddTempOrders("I");

Крок 5. Завантажуємо проект

Настав час спробувати все самому і зробити свій проект.

Сподіваюся, вам все це знадобиться. Бажаю вам чудових проектів!

Вадим Колесник, м. Тираспіль

Захоплююча, проста та швидка розробка повнофункціональних пристроїв Інтернету речей на Arduino за допомогою хмарного сервісу

Загальні відомості

myDevices займається розробкою програмного забезпеченнята додатків у сфері Інтернету речей (IoT) та є підрозділом компанії Avanquest. myDevices Cayenne - перший drag-and-drop додаток та хмарний сервіс для спрощеної розробки IoT проектів на Raspberry Pi.

На порталі Радіолоцман нещодавно публікувалася , в якій я постарався розкрити основні переваги та можливості системи при роботі на одноплатному комп'ютері Raspberry Pi (RPi). Але проект Cayenne постійно розвивається, розробники, спираючись на побажання користувачів, поступово додають нові функції, усувають недоліки та помилки.

Розробка IoT пристроїв на Arduino та Raspberry Pi при роботі з Cayenne принципово відрізняється. Щодо Raspberry Pi, то платформу Cayenne можна вважати візуальним середовищем розробки: ми фізично підключаємо різну периферію до плати Raspberry Pi і далі працюємо тільки в онлайн середовищі Cayenne (налаштовуємо віджети, обробку даних, пишемо алгоритми автоматизації).

Стосовно Arduino приладова панель Cayenne (dashboard) - це лише набір віджетів і елементів управління, які візуалізують отримані дані від датчиків і передають дані користувача для управління тим чи іншим виконавчим пристроям. Безпосередньо робота з датчиками, виконавчими пристроями, додатковою периферією (наприклад, дисплеєм, другою клавіатурою) обробка умов автоматизації покладається на мікроконтролер. Іншими словами, все зводиться до стандартної розробки пристрою на Arduino; користувач сам пише програмний кодале з інтеграцією в проект гнучких IoT функцій Cayenne. Саме в цьому і полягає, на мій погляд, основна перевага Cayenne: ви можете підключати до системи будь-які датчики та виконавчі механізми, не обмежуючись списком периферії, що підтримується.

Інтерфейс користувача та підготовка до роботи

Що стосується інтерфейсу системи, її налаштувань, способів управління і віджетів на панелі приладів, все це залишається аналогічним системі на Raspberry Pi, звичайно, за винятком окремих унікальних елементів, властивих останньої (наприклад, віддалений робочий стіл, стан пам'яті, завантаження процесора). Тому для розуміння основ роботи із системою я рекомендую ознайомитись зі статей. Вся інформація у статті актуальна як для веб-інтерфейсу системи, так і для мобільного додатка. Також у статті вказано список периферії, що підтримується.

Для розробки IoT пристрою або програми нам необхідно:

  • мати свій обліковий запис на сервісі Cayenne (можна використовувати існуючий);
  • встановити інтегроване середовище розробки Arduino IDE;
  • Додати бібліотеку функцій Cayenne до Arduino IDE;
  • Налаштувати Arduino IDE: вибрати плату та COM-порт, до якого вона підключена;
  • Підключити до Arduino плату розширення Ethernet Shield або Wi-Fi Shield (або використовувати плату Arduino з інтегрованим інтерфейсом мережі).

Думаю, процес встановлення середовища розробки Arduino IDE, а також вибір плати та порту пояснення не потребують, і ми перейдемо до основного.

Бібліотека Cayenne для Arduino легко і швидко встановлюється за допомогою менеджера бібліотек (Малюнок 2).

Після встановлення бібліотеки ми зможемо використовувати її у своїх додатках, а в розділі прикладів скетчів з'явиться Нова папказ ім'ям Cayenne. На мій погляд, ці приклади не дозволяють повністю зрозуміти, як працювати з системою, проте їх варто вивчити, а також, нагадаю, що існує величезний розділ документації по системі Cayenne. У загальному випадку дана бібліотека є набором скетчів, які дозволяють спростити підключення та обмін даними між датчиками/актуаторами та хмарним сервісом.

Виконавши підготовчі операції, налаштування середовища розробки та підключення плати розширення Ethernet Shield, можна розпочати розробку IoT пристрою.

Плату Arduino підключаємо до комп'ютера USB, в Ethernet Shield підключаємо мережевий кабель локальної мережі. В Інтернет-браузері виконуємо вхід до облікового запису Cayenne, і в панелі керування додаємо новий пристрій – Arduino. Далі вибираємо тип плати, спосіб підключення до мережі Інтернет (досить багато варіантів), звертаємо увагу на унікальний ключ авторизації для нашого пристрою та чекаємо на підключення плати Arduino до Cayenne (Малюнок 3).

Для кожного нового пристрою генерується новий унікальний ключ, надалі його можна знайти в налаштуваннях пристрою (плати).

Як тільки ви виберете спосіб підключення до мережі, з'явиться вікно з кодом програми мікроконтролера. Це необхідний мінімум для підключення пристрою до хмарного сервісу. Зверніть увагу, що в тексті програми вже вказано ваш ключ авторизації та підключено бібліотеку, яка відповідає обраному способу підключення до мережі (Малюнок 4). Копіюємо цей код в Arduino IDE, компілюємо та завантажуємо у плату. Якщо все було правильно налаштоване, то в панелі керування Cayenne з'явиться новий активний пристрій і панель приладів, де ви зможете тепер додавати віджети та елементи керування. Більше того, вже на даному етапі ви можете віддалено контролювати доступні цифрові та аналогові порти Arduino, не написавши жодного рядка коду - на панелі приладів додайте віджет-кнопку, вкажіть тип порту (цифровий), його ім'я на платі і збережіть віджет. Тепер, натискаючи кнопку в браузері, ви будете змінювати логічний стан порту. Також просто, додавши відповідні віджети, можна керувати ШИМ виходами, отримувати «сирі» дані з аналогових входів Arduino, контролювати стан цифрових входів.

Розробка пристрою на конкретному прикладі

Тепер я розповім про додаткові можливостіта функціях системи. Як приклад я зібрав просту систему, до складу якої увійшли:

  • Плата Arduino Uno;
  • Плата розширення Ethernet Shield на контролері WIZnet W5100;
  • Датчик температури DS18B20;
  • Фоторезистор;
  • Терморезистор;
  • Декілька світлодіодів;
  • OLED дисплей на контролері SSD1306

Принципова схема підключення датчиків та світлодіодів до Arduino зображена на малюнку 5.

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

Думаю, що щодо підключення світлодіодів, цифрового датчика температури та OLED дисплея питань не виникне. Аналогові датчики освітленості та температури підключаються до аналогових входів за схемою резистивного дільника. При цьому для ланцюга терморезистора необхідно знати точне опір резистора R6, це значення використовуватиметься у вихідному коді під час розрахунків.

Після підключення вказаних на схемі елементів напишемо скетч Arduino, а потім встановимо необхідні віджети на панелі приладів Cayenne. на Наразів плату Arduino вже завантажений мінімальний скетч і плата визначається в панелі приладів Cayenne. Як я сказав вище, на цьому етапі ми можемо додати віджети для керування світлодіодами D1, D2, а також отримувати «сирі» дані з аналогових входів, до яких підключено терморезистор та фоторезистор (Малюнки 6, 7).

Не написавши жодного рядка коду Arduino, ми вже отримали просту систему віддаленого управління та контролю (Малюнок 8).

Щоб задіяти цифрові датчики температури, Терморезистор, ШІМ, наприклад, для управління світлодіодом D2, потрібно дописати мінімальний скетч. Спочатку визначимо необхідні бібліотеки.

#include< CayenneEthernet.h>// використовуємо плату розширення Ethernet Shield
#include< CayenneTemperature.h>// Функції перетворення даних з терморезистора
#include< OneWire.h>// Функції для роботи з шиною 1-Wire
#include< DallasTemperature.h>// Функції для роботи з цифровими датчиками температури
#include< Arduino.h>// стандартні константи та змінні мови Arduino
#include< U8x8lib.h>// бібліотека для роботи з дисплеєм OLED в текстовому режимі
#include< Wire.h>// Підтримка апаратного інтерфейсу I 2 C

#define VIRTUAL_PIN_1 V0 // Віртуальний канал для датчика DS18B20
#define VIRTUAL_PIN_2 V1 // - для термістора
#define VIRTUAL_PIN_3 V2 // -- для світлодіода D2, цим каналом будемо приймати дані про значення ШИМ
#define LED2_PWM 6 // реальний порт Arduino, до якого підключено світлодіод D2

Віртуальні канали - це цифрові, і аналогові порти ввода/вывода. При безпосередньому читанні аналогових входів користувач отримує дані з 10-розрядного мікроконтролера АЦП. Значення, що повертаються АЦП, лежать у діапазоні 0...1023 і пропорційні напрузі на цьому вході. Іншими словами, якщо підключити датчик температури до аналогового входу Arduino, ви не отримаєте значення температури, будуть потрібні додаткові перетворення та математичні обчислення для перетворення напруги – температура.

Для спрощення перетворення даних, їх форматування та обробки призначені віртуальні канали. Це досить потужний інструмент, який використовується для обміну між Arduino та Cayenne, а також для простого форматування даних з метою їхньої зрозумілої візуалізації на дошці. Запам'ятайте, що віртуальні канали не мають фізичних параметрів.

Cayenne.virtualWrite(V1, 123) // передача цілісного значення віртуальним каналом V1
Cayenne.virtualWrite(V2, 12.34) // передача значень з плаваючою комою по віртуальному каналу V2

Наприклад, виконавши читання аналогового датчика температури, ми зможемо одним рядком коду перетворити значення градуси Цельсія і передати це значення на панель приладів. Крім того, віртуальні канали дозволяють реалізувати управління будь-якою периферією, підключеною до аналогових або цифрових портів Arduino, без необхідності писати будь-який додатковий код. На даний момент підтримуються два типи даних, з яким працюють віртуальні канали: цілочисельні (integer) та з плаваючою точкою (float). Надалі планується підтримка символьних типів та масивів. На приладовій панелі по віртуальному каналу можна підключити і налаштувати за типом даних, що приймаються, віджет для візуалізації.

// Цифровий порт, до якого підключатимуться датчики DS18B20. Не використовувати порти Arduino 0 та 1 (Rx/Tx).
const int ds18b20_Pin = 2;
// Аналоговий порт, якого підключений терморезистор.
const int thermistorPin = 0;
// Опір постійного резистора (9 кОм), послідовно включений з терморезистором на землю.
const float resistance = 9000;
// Ключ авторизації Cayenne. Знайти його можна у веб-інтерфейсі Cayenne на вкладці налаштування пристрою.
char token = "640c9oedi4";
OneWire oneWire(ds18b20_Pin);
DallasTemperature sensors(&oneWire);
Thermistor thermistor(thermistorPin, resistance);

На свій розсуд, практично на будь-якому етапі, ви можете додати вихідний кодвиведення налагоджувальної інформації по послідовному порту.

У розділі ініціалізації ми вкажемо такі функції:

void setup()
{
Cayenne.begin(token); // підключення до Cayenne із зазначеним ключем авторизації
sensors.begin(); // ініціалізація цифрових датчиків температури
u8x8.begin(); // ініціалізація та висновок текстової інформаціїна OLED дисплей

u8x8.setPowerSave(0);
u8x8.setFont(u8x8_font_torussansbold8_r);
u8x8.drawString(2,0,"Cayenne Test");
u8x8.drawString(1,2,"System Running");
}

В основному циклі програми у нас буде лише одна функція:

void loop()
{
Cayenne.run();
}

Весь обмін даними з приладовою панеллю Cayenne виконується за допомогою кількох функцій:

CAYENNE_IN (Virtual_Pin) - Визначає функцію, яка викликається при отриманні пристроєм оновлених даних по віртуальному каналу від сервера Cayenne.

CAYENNE_OUT (Virtual_Pin) - визначає функцію, яка викликається, коли потрібно надіслати оновлені дані з пристрою на сервер Cayenne.

CAYENNE_CONNECTED () - Функція виконується щоразу при підключенні пристрою до Cayenne. Загалом, ця функція використовується для синхронізації.

Cayenne.syncAll() - Функція, що формує запит на сервер Cayenne для синхронізації всіх віджетів. Стан аналогових та цифрових портів Arduino буде відновлено, і кожен віртуальний канал згенерує подію CAYENNE_IN.

Cayenne.syncVirtual(Virtual_Pin) - синхронізація за вказаним віртуальним каналом. Як результат виконання викликається відповідний обробник CAYENNE_IN.

У моїй схемі світлодіод D2 підключено до цифрового порту D6 Arduino. Цей порт має альтернативну функцію - вихід ШІМ. Для реалізації віддаленого керування цими світлодіодом у режимі ШІМ нам потрібно буде приймати дані з панелі приладів. Для цього напишемо функцію, яка виконуватиметься при оновленні даних по віртуальному каналу V2:

CAYENNE_IN(V2)
{
// отримуємо дані про значення ШІМ з панелі приладів (слайдер)
int PWMValue = getValue.asInt(); // значення діапазоні 0 - 1023
analogWrite(LED2_PWM, PWMValue / 4); // для ШІМ значення має бути в діапазоні 0 - 255
}

Тепер на панелі приладів додамо віджет «Слайдер» з ім'ям LED_2 ШІМ (PWM), і в його налаштуваннях вкажемо, що він працює через віртуальний канал 2 (Малюнок 9).

Завантаживши скетч у плату, ви зможете за допомогою слайдера на панелі приладів Cayenne керувати яскравістю свічення світлодіода D2. Все дуже швидко і просто.

CAYENNE_OUT(V0)
{
sensors.requestTemperatures(); // Отримуємо дані з цифрових датчиків температури.
// Перетворюємо дані з терморезистора, форматуємо їх і відправляємо на сервер віртуальним каналом V1
Cayenne.celsiusWrite(V1, thermistor.getCelsius());
//форматуємо дані з цифрового датчика температури та відправляємо їх на сервер віртуальним каналом V0
Cayenne.celsiusWrite(V0, sensors.getTempCByIndex(0));
}

Завдяки використанню віртуальних каналів весь код функції для передачі абсолютно різних даних складається з двох рядків. На панелі приладів додаємо віджети для датчика температури DS18B20 і терморезистора (вони є готові в панелі управління). Налаштовуємо віджети, завантажуємо скетч у плату, і готово (Малюнки 10а, 10б)!


Малюнок 10. Вид приладової панелі Cayenne для керування Arduino (температурні датчики,
освітленості, керування світлодіодом D1, ШИМ керування світлодіодом D2):

Не забувайте, що ці функції управління та контролю доступні і в мобільному додатку. Усі виджети, встановлені у веб-інтерфейсі, ви побачите у мобільному додатку (Малюнок 10б).

Зовнішній виглядпристрої з підключеною периферією показано на малюнку 11.

Можливість розробки бездротових IoT пристроїв

Ви могли помітити, що на деяких скріншотах видно мою панель управління, де крім Arduino Uno і Raspberry Pi є пристрій з ім'ям ESP8266-1. Все вірно, це додатковий пристрійна добре відомому модулі ESP-12 (ESP8266), який підключений до сервера Cayenne Wi-Fi і має свою окрему панель приладів (Малюнки 12а, 12б). Такий пристрій є бездротовим вузол контролю та управління. До модуля підключено два світлодіоди (один підключений до виходу ШИМ ESP8266) та цифровий датчик температури DS18B20.


Малюнок 12. Приладова панель для бездротового пристрою на модулі ESP-12:
а) веб-інтерфейс; б) мобільний додаток.

Завдяки підтримці ядра ESP8266 середовищем Arduino IDE, реалізація бездротових IoT пристроїв з Cayenne нічим не відрізняється від розробки Arduino. Іншими словами, будь-який модуль на чіпі ESP8266 – це Arduino плата з Wi-Fi інтерфейсом. Для цього Wi-Fi модулями пишемо подібний скетч, використовуємо ті ж бібліотеки для роботи з датчиками, нам доступні цифрові та аналогові порти вводу/виводу. За цим модулем накопичено величезну кількість інформації, різної документації та напрацювань.

Схема підключення периферії до модуля ESP8266 зображена на малюнку 13. Я використовував окремий модуль ESP-12 без перехідної плати з інтегрованою схемою живлення та інтерфейсом програмування, що ускладнило роботу на етапі завантаження скетчу. Оптимальним варіантом буде використання готового модуля типу nodeMCU v3, який виконаний у формі-факторі Arduino і має схему узгодження інтерфейсу. (Дуже важливий момент під час програмування модуля). Зовнішній вигляд модуля з підключеними світлодіодами та датчиком температури показано на малюнку 14.

Що стосується підключення до сервера Cayenne та обміну даними, то тут все як для Arduino. Зберігаються всі поняття про віртуальні канали, використовуються самі функції, також використовується унікальний ключ авторизації. Відмінність лише на етапі підключення модуля до Інтернету.

Для підключення пристрою на модулі ESP8266 ми діємо аналогічно додавання будь-якої плати Arduino і доходимо до етапу очікування підключення пристрою до Cayenne, де буде згенеровано мінімальний скетч.

Цей скетч необхідно змінити. Підключаємо такі бібліотеки:

#include "CayenneDefines.h" // константи та змінні Cayenne
#include "BlynkSimpleEsp8266.h" // функції для роботи з ESP8266
#include "CayenneWiFiClient.h" // функції для реалізації Wi-Fi клієнта

char token = "3yj62u9ogi";
char ssid = "Network_SSID"; // SSID та пароль для вашої Wi-Fi мережі.
char password = "Network_Password";

У секції ініціалізації додаємо рядок:

Cayenne.begin(token, ssid, password);

Компілюємо, завантажуємо в модуль (займає більше часу, ніж завантаження в плату Arduino), очікуємо на підключення та активацію нового пристрою в приладовій панелі Cayenne. Далі все як для Arduino: додаємо функції для роботи з датчиками та портами вводу/виводу, додаємо віджети на панель приладів. Просто чудово, чи не так?!

Висновок

За підсумками роботи з Cayenne на Raspberry Pi та Arduino я можу однозначно сказати, що Raspberry Pi не варто використовувати для розробки пристроїв Інтернету речей, навіть із Cayenne. Чого не скажеш про Arduino - незважаючи на обмеженість ресурсів, відсутність багатозадачності, низьку обчислювальну потужність (хоча це спірний момент, враховуючи характеристики нових плат Arduino на процесорах ARM), вона ідеально підходить для розробки простих IoT пристроїв і систем домашньої автоматизації.

Крім того, в цьому контексті основною перевагою Arduino, як я зауважив вище, є можливість самостійної розробки пристрою, вивчення схемотехніки, написання коду, розвитку навичок програмування, незважаючи на докази професійних програмістів, що Arduino не можна навчитися програмувати. Можливо, але… По відношенню до Arduino платформа Cayenne забезпечує тільки графічний інтерфейс користувача і деякі спрощення в обробці даних. Решта ви повинні розробити самостійно, включаючи первинну обробку даних від сенсорів, підсистему обробки подій, а також умови та алгоритми автоматизації. А тепер додайте Arduino простоту розробки бездротових IoT пристроїв на Wi-Fi модулі ESP8266 і вже офіційну підтримку (хоч і не повну) нового чіпа ESP32, що має на борту багату периферію, і перед вами відкриваються величезні можливості для розробки принципово нових пристроїв та залучення до цього процесу не тільки любителів, а й професіоналів.

На момент підготовки статті Cayenne не повідомляла про офіційну підтримку модулів на чипі ESP8266. Спочатку це заслуга спільноти - любителі та інженери, які працюють або використовують Arduino IDE і знають про підтримку ESP8266, за допомогою бібліотек Cayenne змогли підключити та використовувати ESP8266. Але навіть на форумах спільноти Cayenne вже можна було ознайомитися з великою кількістю різних проектів бездротових IoT пристроїв.

Після тривалого тестування своїх пристроїв на Arduino та ESP8266 можу сказати, що останнє працює дуже стабільно. Дещо низька надійність Arduino з Ethernet Shield обумовлена ​​відомою проблемою зависання контролера W5100, проте існує кілька способів її вирішення, як апаратних, так і програмних. Можу припустити, що це не стосується плат Arduino з інтегрованими Ethernet чи Wi-Fi.

З моменту підготовки статті по Raspberry Pi і Cayenne пройшло не так багато часу, але нових функцій і підтримуваної периферії стало значно більше. Окрім наявності величезного вибору різних плат розширення, датчиків та виконавчих пристроїв, відповідних бібліотек, проектів та прикладів для Arduino, тепер у Cayenne користувачам доступні пристрої, мережі та сервіси LoRa, бібліотеки підтримки мережевого протоколу MQTT для Arduino, C, C++, mBed, бібліотеки для роботи з MQTT брокером mosquito. Однозначно, для розробки пристроїв Інтернету речей та систем домашньої автоматизації на Arduino я рекомендував би сервіси Cayenne.

Програмування різноманітних мікроконтролерів та мікрокомп'ютерів, таких як Arduino, Raspberry Pi та подібні до них, - одне з найцікавіших і актуальних занять. Конструювання пристроїв на цих платформах вийшло за рамки хобі гіків та професійних програмістів: ці плати використовуються для створення роботів, верстатів, квадрокоптерів, IoT-пристроїв (розумний будинок), серверів і навіть Hi-Fi-аудіоінтерфейсів.

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

Blynk є хмарним сервісом для створення графічних пультів управління і підходить для широкого спектру мікрокомп'ютерів і мікроконтролерів. Там, де раніше для збору інформації з датчиків потрібно було писати повноцінний інтерфейс вводу-виводу або набувати додаткових модулів, тепер можна обійтися п'ятихвилинною роботою в Blynk.

Для створення власного проекту з керуванням через Blynk потрібно зовсім небагато: встановити програму (доступні версії для iOS та Android) або скористатися веб-формою. Тут буде потрібно реєстрація в один крок - введення email і пароля. Реєстрація потрібна з огляду на те, що Blynk - хмарне рішення і без неї контроль над залізкою може отримати будь-який користувач.

Бажаючі можуть встановити сервер локально. У такому разі доступ до Інтернету не потрібен.

Робота програми вимагатиме певних навичок. Спочатку необхідно зв'язати комп'ютер або смартфон із програмованою платою. Програма підтримує з'єднання з платами за допомогою маси різних інтерфейсів:

  • USB (Serial),
  • Adafruit CC3000 WiFi,
  • Official Arduino WiFi Shield,
  • Official Ethernet Shield (W5100),
  • ENC28J60,
  • ESP8266 (WiFi modem),
  • SeeedStudio Ethernet Shield V2.0 (W5200),
  • RN-XV WiFly,
  • ESP8266.

Крім налаштування з'єднання, потрібно лише правильно з'єднати модулі майбутнього пристрою. Після цього у робочій формі програми потрібно додати доступні модулі (віджети), налаштувати необхідні адреси висновків та вказати бажані параметри (за потреби можна написати свій код). До речі, для створення віджету чи програми використовується drag'n'drop. Для керування доступна маса імітаторів керуючих пристроїв – перемикачі, слайдери, дисплеї, для кожного з яких можна писати свою логіку. Існують окремі форми для виведення та систематизації інформації з необхідних датчиків у вигляді графіків.

Таким чином, платформа підійде як новачкам, так і більш просунутим користувачам, які не хочуть витрачати час на написання програм для управління проектами: від зчитування даних з метеостанції та управління розумним будинком до управління роботами.

Вся інформація, необхідна для початку роботи, розміщена на офіційному сайті. Blynk - це так, що кожен може взяти участь у створенні нових функцій. На даний момент використання сервісу повністю безкоштовно, надалі ситуація дещо зміниться – насамперед, за рахунок монетизації нових функцій. Так, вже зараз відомо, що доступ до GPIO-інтерфейсів купуватиметься як вбудована покупка.

На даний момент Blynk працює з такими платами:

  • Arduino: Uno, Nano, Mini, Pro Mini, Pro Micro, Mega, YUN (Bridge), Due;
  • Raspberry Pi;
  • Particle (ex Spark Core);
  • ESP8266;
  • TinyDuino (CC3000);
  • Wicked WildFire (CC3000).

Чудова штука ESP8266. Досить потужний процесорбагато пам'яті, вбудований WiFi контролер. ESP32, звичайно, ще краще, але й коштує помітно дорожче. Але зараз не про них. Точніше не зовсім про них. На ESP дуже легко зробити практично будь-яку домашню автоматику, причому з віддаленим контролемта управління зі смартфона або комп'ютера. Приклад такого пристрою є на цьому сайті. Одна проблема – для роботи з таким пристроєм не тільки з домашньої мережі, А й з будь-якої точки планети (де є доступ до інтернету, зрозуміло), буде потрібно якийсь сервер - посередник, який прийматиме повідомлення від пристрою і передаватиме їх Вам, і навпаки. Звичайно, є варіанти і прямого зв'язку, але я їх не розглядатиму тут через складність реалізації або дорожнечі.

Наведений у цій статті список не претендує на повноту і особливо на унікальність, просто я спробував проаналізувати і структурувати можливості тих чи інших безкоштовних сервісів. В першу чергу для себе, але якщо це виявиться корисним будь-кому - користуйтеся на здоров'я. Коли я шукав публічний MQTT сервер для себе, то перерив масу інтернет ресурсів. Шукав насамперед на esp8266.ru , але на жаль, там половина сервісів або вже не робітники, або не підходять особисто мені за тими чи іншими параметрами. Все, що тут написано – насамперед мій особистий досвід, Ваш досвід роботи з цими сервісами може бути зовсім іншим. Якщо Ви знаєте якісь ще подібні сервіси – напишіть у коментарях або на пошту (пошта та інші контакти знаходяться у верхньому правому кутку шапки сайту), і я спробую перевірити та доповнити список.

MQTT брокери

Протокол MQTT - це мабуть найперше, на що натикаєшся в пошукових системах, коли шукаєш спосіб віддаленого управління різними "розумними штуками". Не можу поручитися, що це найпростіший протокол (мені нема з чим порівнювати особливо, я якось відразу на ньому і зупинився), але особисто у мене він не викликав жодних складнощів. Прикладів дуже багато. Готових бібліотек для Arduino IDE – теж не одна, як то кажуть, “вибирай на смак”. Мобільних додатків- Достатньо, щоб вибрати і для смартфона, і для контрольної панелі, зробленої з древнього планшета. Тож це, напевно, найпопулярніший варіант для реалізації віддаленого керування. Хмарних серверівтеж досить багато, називаються вони MQTT брокерами. Принцип роботи протоколу і серверів я тут не розглядатиму, цієї інформації цілком достатньо і на інших сайтах.

CloudMQTT.com

Починав я із цього сервісу. Просто тому, що майже всі приклади роботи з протоколом MQTT засновані саме на ньому. Сервіс досить зручний та простий, все інтуїтивно зрозуміло. У 2018 році сервіс допускав на безкоштовному тарифному плані підключення до 10 пристроїв, що цілком влаштовувало мене. Однак до кінця 2018 року власники сервісу переглянули свою політику і на безкоштовному тарифному плані “Cute Cat” тепер доступно лише 5 підключень. Особисто для мене це дуже мало. У мене одночасно можуть підключені три “керуючі” пристрої – два смартфони та планшет, і для власне ESP залишається лише два підключення. А різної "автоматики" у мене вже досить багато, і ще планується. Звичайно, можна наплодити кілька екземплярів брокерів усередині однієї облікового запису, хоч і на них останнім часом ввели обмеження. Але в такому разі три контрольні пристрої все одно “відіжуть” три підключення для кожного екземпляра, а вже налаштовувати таке господарство – і ворогові не забажаєш. Найдешевший платний тарифний план Humble Hedgehog коштує на момент написання статті 5 $ на місяць. Ні, мене одне досить відоме земноводне душить платити такі гроші кожен місяць. Та й можливостей при цьому не так і шикарно – 25 підключень. Тож довелося шукати інші варіанти.

Плюси: зручно та просто

Мінуси: лише 5 підключень на безкоштовному тарифному плані

flespi.io

Досить довго я користувався брокером mqtt.flespi.io. Залучив він мене тим, що на момент, коли я почав з ним працювати, він допускав аж 100 конкуруючих підключень одночасно і величезні обсяги повідомлень, що передаються і зберігаються. Шикарно! Однак сервіс не такий зручний, як CloudMQTT. Контрольна панель не дуже зручна (хоча і вдосконалюється), налаштування прав доступу не зрозуміле на перший погляд, авторизація і пристроїв, і смартфонів по токенам з обмеженим терміном дії. Деяких потрібних мені функцій немає, або я не знайшов, як користуватися. Наприклад, як видалити збережені повідомлення з бази – я так і не знайшов. Строго кажучи, це далеко не тільки MQTT брокер, так що, можливо, я просто не зрозумів всіх його можливостей. Іноді на різних смартфонах перестає оновлюватися інформація в деяких топах. Пару разів через помилки у прошивці та постійних зверненнях пристрою до сервера сервіс повністю блокував обліковий запис на кілька годин. Але все це можна було б пробачити за такі можливості. Але на жаль, і тут бажання заробити взяло гору – з 2019 року на безкоштовному тарифі запроваджено обмеження у 10 підключень. У цьому немає нічого поганого, але я не готовий ще платити за хобі такі гроші, та ще й за послуги досить сумнівної якості. Загалом, шукатимемо такий самий, але з перламутровими гудзиками…

Плюси: раніше було до 100 підключень

МінусиКабіна: не зручний, складний у налаштуванні доступів, retained з панелі не видалити

HiveMQ Public Broker

Повністю безкоштовний публічний брокер без жодних обмежень. Принаймні на головній сторінціброкера про них не написано. Але є великі "АЛЕ" - цей брокер не має жодної авторизації, тобто взагалі ніякої. Тобто всі повідомлення, що пересилаються між пристроєм і Вами, може прочитати будь-хто. У цьому не було б великої трагедії, якщо це тільки якісь показники температури і вологості, секрету вони не представляють. Але коли справа стосується віддаленого управління "розумним будинком", то такий брокер вже в принципі не підходить. Адже Вам не хотілося б, щоб будь-хто міг включити будь-який пристрій у будинку, або відключити сигналізацію, наприклад.

Плюси

Мінуси

Eclipse MQTT

Ще один публічний брокер без авторизації. Як і написано на сайті, цей брокер призначений насамперед для тестування та не призначений для зберігання та передачі конфіденційної інформації. Для підключення до сервера слід використовувати такі параметри: сервер iot.eclipse.org, порт 1883; для TLS v1.2, v1.1 або v1.0 – порт 8883. Доступне підключення і за WebSockets. Загалом, те саме що і HiveMQ, тільки в бічній проекції.

Плюси: безкоштовний, без обмежень за підключенням

Мінуси: підходить тільки для тестування та метеостанцій без віддаленого керування

mosquitto.org

І ще один громадський брокер без авторизації. Можна не повторюватися, все те саме, що й у HiveMQ і Eclipse MQTT. Зверніть увагу на те, що всі ці сервери підтримують. шифрування TLSаж ніяк не означає, що Ваші дані захищені. Захищений канал передачі між пристроєм і сервером, але дані знаходяться у відкритому доступі.

Плюси: безкоштовний, без обмежень за підключенням

Мінуси: підходить тільки для тестування та метеостанцій без віддаленого керування

IBM Cloud (Bluemix)

Це не mqtt брокер, це ціла платформа "Internet of Things Platform". Але в її складі є і mqtt брокер. На безкоштовному тарифному плані “Lite” допускається аж до 500 зареєстрованих пристроїв та по 200 МБ інформації на кожну метрику. Цілком шикарно не тільки для дому, а й для комерційних пристроїв. Але, як завжди, не без “АЛЕ”. По-перше, із цією платформою дуже складно розібратися. Документація є, але її дуже багато. Ні – ДУЖЕ багато! Я витратив не одну годину, щоб більш-менш зрозуміти, як налаштувати підключення. По-друге, платформа дозволяє публікувати топики строго у визначеному форматі: "iot-2/evt/event_id/fmt/format_string". Так само з командами: "iot-2/cmd/ command_id /fmt/ format_string ". І все – жодних вольностей – тобто лише номер повідомлення та саме повідомлення. А ось форматів повідомлень, що передаються, вже більше - "json", "xml", "txt", і "csv". Можливо, комусь такий підхід здасться дуже правильним і зручним, але мене він не привабив. Та й складно все влаштовано – можливостей, зважаючи на все, дуже багато, але з цим усім доведеться спочатку розбиратися.

Плюси: дуже великі ліміти з підключень

Мінуси: дуже складний для новачка, обмеження по топіках.

mqtt.dioty.co

Це вже повністю безкоштовний брокер. Бувай. На сторінці параметрів підключення написано наступне: “Цей брокер MQTT в даний час працює в бета-версії. На цьому етапі бета-тестування ми не стягуватимемо плату, якщо ви перевищите ліміт у 50000 повідомлень на місяць. Однак ми залишаємо за собою право тимчасово призупинити дію вашого облікового запису, якщо ви впливаєте на обслуговування інших користувачів. У цьому випадку ми завжди будемо зв'язуватися з вами електронною поштою, щоб спробувати зрозуміти ваші конкретні потреби і те, як ми можемо їх задовольнити.”. 50000 повідомлень на місяць – це приблизно 70 повідомлень на годину, що не так вже й багато, якщо врахувати, що один пристрій може публікувати за сеанс відправки даних з датчиків до 50 повідомлень. Брокер підтримує авторизацію та TLS-підключення. Реєстрація прив'язана до облікової запису Google. Є невелике обмеження - всі Ваші топіки повинні починатися з адреси електронної пошти, через яку ви зареєструвалися в сервісі, наприклад: “/ [email protected]/…/…/…”. Але ця проблема більш-менш суттєва лише при налаштуванні MQTT клієнтів на смартфоні (більше тексту набирати), та й то не завжди. На мій погляд, цей сервіс цілком заслуговує на увагу. Роботу з ним я не перевіряв, лише зареєструвався.

Плюси: повністю безкоштовний

Мінуси: потрібен певний префікс для топіків, обмеження приблизно 70 повідомлень на годину

Solace.Cloud (PubSub+)

Це не так MQTT брокер, як ціла IoT платформа. На безкоштовному тарифному плані допускається до 50 підключень, до 1 GB даних, що передаються в місяць, до 4 GB збережених даних (retianed повідомлень). Не погано. Але навіть у free версії дуже багато налаштувань – у ньому складно розібратися “з наскоку”. Саме тому свого часу я не став ним користуватися. Можливо, настане час, розберуся та настрою.

Плюси: до 50 підключень

Мінуси: досить складний в освоєнні

myqtthub.com

Очевидно естонський брокер. На безкоштовному тарифному плані припускає: до 100 користувачів, але до 50 підключень; 10MB даних, що зберігаються; до 50 підписок на підключення, максимум 250 підписок (причому не ясно, чи підписка “home/#” – це одна підписка чи багато?); 300 повідомлень за хвилину, але не більше 800 на годину і не більше 10000 на день. Якщо виходити з регулярних (кожних п'ять хвилин) публікацій, виходить не більше 34 повідомлень за раз. Є й ще обмеження - детальніше дивіться на головній сторінці сервісу. Обмеження, втім, виглядають цілком реальними домашнього використання. Не пробував…

Плюси: до 50 підключень

Мінуси: обмеження за кількістю повідомлень

mqtt.by

Простий у використанні білоруський брокер. Про обмеження не сказано нічого. Підтримує авторизацію, але є можливість зробити деякі топіки публічними, тобто відкрити для решти користувачів сервісу. Але немає підтримки безпечного з'єднання (TLS), це може бути критично для деяких програм. Кожен публікований топік повинен починатися з префіксу "/user/ім'я_користувача", що дещо ускладнює налаштування мобільних mqtt клієнтів, але не суттєво. З плюсів – на сервері є загальнодоступні топіки з датою та часом, що дуже зручно для контрольної панелі на основі планшета, яка працює 24 години на добу – заразом і годинники ще одні (сто дванадцяті). Загалом, цілком собі нормальний брокер, аби лише працював стабільно.

Плюси: без будь-яких обмежень, є публічні топіки, можна опублікувати свої топіки

Мінуси: ні SSL/TLS шифрування підключень

mqtt.4api.ru

Російський безкоштовний брокер – “ми надаємо доступ до безкоштовного mqtt сервера для всіх бажаючих”. Авторизація та реєстрація на сервісі через соціальні мережі. З'явився, зважаючи на все, не дуже давно. Хоча сам сайт має SSL сертифікат, у параметрах підключення вказані дані тільки для "Без SSL", мабуть, SSL підключення для пристроїв не доступне. Ще на сторінці підключення написано: “Ми не рекомендуємо використовувати цей сервер для життєво важливих проектів”. Панель управління має дуже скромний функціонал, тому потрібно користуватися стороннім ПЗ

Плюси: без будь-яких обмежень

МінусиСтан: немає SSL/TLS шифрування підключень, бідний функціонал панелі управління

Інші сервіси

Одним MQTT ситий не будеш. MQTT простий та зручний, але дозволяє переглядати інформацію “тут і зараз”, без історії змін у часі. Для перегляду графіків є інші послуги, налагодити роботи з якими також не становить особливих труднощів. Деякі з них представлені нижче.

ThingSpeak

ThingSpeak доступний як безкоштовний сервісдля некомерційних невеликих проектів (<3 миллиона сообщений в год или ~ 8 200 сообщений в день). Сервис позволяет накапливать получаемые данные в своих хранилищах, после чего их можно удобно просматривать в виде графиков. В том числе и на сторонних сайтах, .

З особливостей сервісу він має інтеграцію з MatLab Analytics, але я скільки не намагався налаштувати скрипти MatLab, так у мене нічого і не вийшло. Ну, не дуже й хотілося. У безкоштовному обліковому записі сервіс дозволяє створювати до чотирьох каналів, у кожному з каналів можна зберігати до 8 полів з різними даними. Ще в безкоштовному акаунті існує ще одне обмеження - не можна публікувати дані частіше одного разу на 15 секунд (рекомендується пауза в 20 секунд), це як би "захист" від перевищення ліміту 8200 повідомлень на день. У принципі, всі мої "публікатори" легко вписуються в цей ліміт, мені вистачає. Користуюся сервісом досить давно, досить зручний і простий, якщо не брати до уваги MatLab. Є кілька програм – клієнтів для Android, але набагато менше, ніж для MQTT.

Плюси: просте використання на ESP, зручний сайт

Мінуси: багато обмежень на безкоштовному обліковому записі

open-monitoring.online

Цей сервіс у чомусь аналогічний ThingSpeak – на нього можна точно також надсилати дані та потім переглядати у вигляді таблиць, графіків та гістограм. Інтерфейс простіший, ніж у ThingSpeak, але й налаштовувати його набагато простіше.

Спочатку цей сервіс був створений, як я розумію, для моніторингу параметрів персональних сонячних електростанцій, але цілком підходить і для інших цілей. Сервіс доступний усім і безкоштовно, без суттєвих обмежень на даний момент. Єдине обмеження, яке я поки що виявив - відправка на сервер групи значень для одного контролера не може бути частіше одного разу на хвилину. Але на кількість значень для кожного контролера і кількість контролерів обмежень начебто немає. Надсилання даних на сервер здійснюється простим get-запитом, реалізація на ArduinoIDE у мене зайняла не більше години. На відміну від ThingSpeak, збережені дані можна переглядати на одному графіку (з накладенням), а також налаштовувати якийсь dashboard для виведення останніх значень. Також можна переглядати збережені значення у вигляді простої таблиці.

Плюси: просте використання на ESP, зручний інтерфейс, майже немає обмежень

Мінуси: немає можливості вивести графіки на сторонні сайти (на відміну від ThingSpeak), ну чи я поки не знайшов як це зробити

beebotte

На головній сторінці цього сервісу написано наступне: “підключення всього та вся в режимі реального часу з використанням багатого API, що підтримує REST, WebSockets та MQTT”. Особисто я цей сервіс поки що не використовував. Судячи з того, що я зрозумів з опису, це дика суміш mqtt брокера і thingspeak.com. У безкоштовному режимі кількість каналів та ресурсів не обмежена, але обмежена кількість повідомлень: 0.05 Million per day | 1.5 Million за місяць. Для повідомлень, що зберігаються, ліміти ще менше: 5 000 per day | 150 000 за місяць. Крім того, повідомлення зберігаються лише максимум три місяці, після чого видаляються. Тобто погоду за весь рік не побачиш. Про мобільний клієнт для смартфона мені поки що нічого не відомо. Зареєструвався. Спробую. Висновки робити поки що зарано.

Blynk

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

Плюси: не знайшов

Мінуси: жадюги, мобільний клієнт тільки один

Поки що на цьому все. Якщо Ви знаєте інші способи управління ESP віддалено (обов'язково з “мобілі”) – будь ласка, напишіть мені . Обговоримо та, можливо, доповнимо статтю.

Раніше винаходив велосипед для моніторингу пристрою Arduino.

Було цікаво.

/* -- New project -- Цей source code of graphical user interface has been generated automatically by RemoteXY editor. Для комп'ютера цього коду використання RemoteXY library 2.3.5 або останньої версії download by link http://remotexy.com/en/library/ ANDROID 4.3.1 or later version; - for iOS 1.3.5 or later version; Цей source code is free software; Ви можете відремонтувати це і/або змінити його під час GNU Lesser General Public License, як публікується в рамках Free Software Foundation; either version 2.1 License, або (на вашу option) будь-яку версію версії. */ //////////////////////////////////////////////// // RemoteXY include library // ////////////////////////////////////////////// // Визначення режиму з'єднання та підключення бібліотеки RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD #include // налаштування з'єднання #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 #define REMOTEXY_WIFI_SSID "***********" #define REMOTEXY_WIFI_PASSWORD "**********" #define REMOTEXY_CLOUD_SERVER .com" #define REMOTEXY_CLOUD_PORT 6376 #define REMOTEXY_CLOUD_TOKEN "**************************" #include // Додаємо бібліотеку DHT11 dht11 DHT; // Оголошення змінної класу dht11 #define DHT11_PIN 7 // Датчик DHT11 підключений до цифрового пін номер 4 const int analogSignal = A3; //підключення аналогового сигнального піна const int digitalSignal = 8; //підключення цифрового сигнального піна boolean noGas; //Змінна для зберігання значення про присутність газу int gas = 0; //змінна для зберігання кількості газу float hum = 0; //Змінна для зберігання вологості float temp = 0; //Змінна для зберігання температури int chk; //Змінна для зберігання помилки DHT char msgBuffer; // конфігурація інтерфейсу #pragma pack(push, 1) 81,22,11, 2,26,31,31,79,78,0,79,70,70, 0,66,132,10,13,31,24,7,10,27, 21,2,24, 66,132,56,13,31,24,4, 41,31,24,2,24,67,4,16,5,20, 5,38,23,20,5,2,26,11,67, 4, 63,6,20,5,39,52,20,5,2,26, 11); // структура визначає всі змінні вашого інтерфейсу управління struct ( // input variable uint8_t switch_1; // =1 якщо перемикач включений і =0 якщо вимкнений // output variable int8_t level_1; // =0..100 положення рівня int8_t level_2; / / =0..100 становище рівня char text_1; // = Рядок UTF8 закінчується нулем char text_2; #pragma pack(pop) /////////////////////////////////////////////// // // END RemoteXY include // /////////////////////////////////////////// /// #define PIN_SWITCH_1 13 void setup() ( RemoteXY_Init(); pinMode (PIN_SWITCH_1, OUTPUT); // TODO you setup code ) void loop() ( RemoteXY_Handler(); digitalWrite(PIN_SWITCH_1 )?LOW:HIGH);noGas = digitalRead(digitalSignal); //зчитуємо значення про присутність газу gas = analogRead(analogSignal); = DHT.temperature; RemoteXY.level_1 = hum; RemoteXY.level_2 = temp; dtostrf(hum, 6, 2, RemoteXY.text_1); / використовуйте структуру RemoteXY для передачі даних )

Використовуємо бутерброд із плат.

Несподівано все одразу ж запрацювало:

З моменту виявлення хмарного сервісу RemoteXY до фото вище пройшла година.

Особливості роботи з RemoteXY.

1. Все дуже просто. По-своєму це добре. З Blynk і Cayenne, наприклад, навряд чи з нуля за годину вдасться розібратися. Для використання, наприклад, "KaScada Cloud" потрібно приблуду купувати спеціальну.

2. Немає жодної обробки та зберігання даних на стороні сервера: немає зв'язку з платою - у додатку висить "Немає підключення".

3. Безкоштовно тільки 5 елементів дизайну, але програма PRO коштує не дорожче пів дня витраченого часу.

4. Є можливість з однієї програми здійснювати зв'язок із платою як через хмарний сервер, так і на пряму. Щоправда, не одночасно звичайно. І переключити оперативно неможливо – треба міняти скетч у платі. Є також можливість здійснювати зв'язок смартфона з платою по Блютус та USB.