Magazín KPI

kpi

Platforma Blynk

Koncept internetu vecí sa v dnešnej dobe stáva čoraz populárnejším, a preto ľudia vytvárajú viaceré riešenia pre umožnenie komunikácie zariadení cez internet. Jedným z takýchto riešení je platforma Blynk, ktorá slúži na ovládanie a komunikáciu so zariadeniami internetu vecí. Tento článok priblíži ponuku platformy Blynk a jej funkcie. Článok obsahuje aj jednoduché príklady použitia funkcií platformy.

Čo je Blynk

Blynk je platforma pre Internet vecí (IoT), ktorej cieľom je uľahčenie komunikácie s koncovými zariadeniami cez internet, zobrazovanie a ukladanie dáta z koncových zariadení. Platforma pozostáva z troch základných častí:

  • server Blynk — zodpovedá za komunikáciu medzi mobilnou aplikáciou a zariadením,
  • mobilná aplikácia Blynk — zabezpečuje používateľské prostredie pre projekty Blynk,
  • knižnice Blynk — umožňujú rôznym typom hardvéru spracovať prichádzajúce príkazy.
Architektúra platformy Blynk (zdroj)
Architektúra platformy Blynk (zdroj)

Informácie z aplikácie sa odosielajú na Blynk server a zo serveru sa tieto informácie ďalej odosielajú na zariadenie (viď obrázok vyššie), ktoré pomocou knižníc tieto informácie spracuje. Z toho vyplýva, že server je kľúčovou súčasťou platformy. Vývojári platformy Blynk ponúkajú dve možnosti riešenia serverovej časti platformy. Jedno riešenie je použiť ich globálny Blynk server, druhým riešením je použiť privátny server, ktorý je možné nainštalovať na vlastnom hardvéri. Tento privátny server je voľne dostupný v službe GitHub. Výhodou použitia privátneho servera je jeho nezávislosť a správcovský prístup. Privátny server poskytuje vlastnú správu pravidiel servera a manažment registrovaných používateľov.

Príprava privátneho servera

Spustenie privátneho servera musí spĺňať nasledujúce podmienky:

  • operačný systém, ktorý dokáže spustiť Javu,
  • nainštalovaná Java 8/11 (OpenJDK, Oracle),
  • minimálne 30 MB dostupnej operačnej pamäte,
  • otvorené porty 9443 (pre komunikáciu so SSL) a 8080 (pre komunikáciu bez SSL),
  • verejná IP adresa servera v prípade pripojenia na privátny server z inej ako lokálnej siete.

Najnovšia verziu servera Blynk je dostupná na službe GitHub v projekte vývojárov platformy Blynk. Pre operačný systém Windows, po stiahnutí najnovšej verzie servera, si stiahnutý súbor “.jar” umiestnime do pripraveného adresára. V tomto adresári spustíme Windows PowerShell za pomoci ktorého spustíme server nasledujúcim príkazom.

java -jar server-0.41.6.jar -dataFolder /cesta

Ak chceme nastaviť ukladanie dát v inom adresári, cestu upravíme tak, aby bola zhodná s vybraným umiestnením adresára, kde chceme ukladať dáta.

Po správnom zadaní príkazu sa zobrazí v PowerShell nasledovný výstup:

Blynk Server 0.41.6 successfully started.
All server output is stored in folder 'PRIECINOK_UKLADANIE_DAT' file.
Your Admin url is https://xx.xx.xx.xx:9443/admin (xx.xx.xx.xx je IP Servera)
Your Admin login email is admin@blynk.cc
Your Admin password is admin

Pre automatické zapínanie servera na operačnom systéme Windows je potrebné si vytvoriť súbor start-blynk.bat. Do tohoto súboru je potrebné vložiť príkaz na spustenie servera.

java -jar server-0.41.6.jar -dataFolder /cesta

Nakoniec je potrebné tento súbor vložiť do adresára “Pri spustení”. Tento adresár môžeme otvoriť tak, že klávesovou skratkou Windows + R si otvoríme okno rýchlych príkazov a zadáme príkaz shell:startup.

Pre iné operačné systémy a komplexnejšie nastavenie samotného privátneho servera sú širšie informácie dostupné v dokumentácii vývojárov platformy Blynk.

Server ponúka aj odosielanie notifikácií e-mailom. Pre zapnutie tejto služby je potrebné server správne nastaviť. Nastavenie spočíva vo vytvorení súboru “mail.properties” v adresári servera. Obsah súboru je zobrazený nižšie. Server podporuje iba účty služby Gmail s povoleným prístupom menej zabezpečených aplikácií. Pre povolenie prístupu menej zabezpečených aplikácií postupujte podľa návodu služby Gmail.

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=VÁŠ_E-MAIL
mail.smtp.password=VAŠE_HESLO
mail.smtp.connectiontimeout=30000
mail.smtp.timeout=120000

Mobilná aplikácia Blynk

Mobilná aplikácia Blynk zabezpečuje ovládanie zariadení, ktoré sú pripojené k serveru Blynk. Používateľ v aplikácií vytvára projekty pre ovládanie týchto zariadení. Každý projekt má svoj autentifikačný kľúč, na základe ktorého sa projekt identifikuje spoločne s ovládaným zariadením. Projekty je možné upravovať podľa svojich potrieb za pomoci tzv. widgetov, ktoré si používateľ pripína na plátno projektu. Ak používateľ využíva globálny server Blynk, počet widgetov je obmedzený. Pri použití privátneho servera je možné toto obmedzenie meniť, teda vieme využiť prakticky neobmedzený počet widgetov.

Aplikácia je dostupná pre Android aj iOS zariadenia. Po stiahnutí aplikácie je potrebné si vytvoriť účet. Tento účet je súčasťou databázy servera a je oddelený od ostatných časti, ako je napríklad fórum platformy Blynk. Účet si je potrebné vytvoriť pre ukladanie projektov a zvyšuje sa tým aj bezpečnosť. Pri vytváraní sa odporúča použiť reálny e-mail.

Postup pre vytvorenie účtu

  1. Vyplníme údaje - svoj e-mail a heslo.
  2. Zvolíme nastavenie servera
  3. Ak chceme využívať globálny server Blynk, len skontrolujeme, či je nastavená možnosť “BLYNK”. V prípade, ak je táto možnosť zvolená, pokračujeme v bode č. 7. Pri využití privátneho servera je potrebné toto nastavenie zmeniť na “CUSTOM” a pokračovať ďalej v postupe.
  4. Vyplníme verejnú IP adresu servera
  5. Zvolíme port, cez ktorý komunikácia prebieha (9443/8080).
  6. Potvrdíme tlačidlom “OK”.
  7. Vytvorenie účtu dokončíme kliknutím na tlačidlo “Sign Up”.
Vytvorenie nového účtu
Vytvorenie nového účtu

Vytvorenie nového projektu

Po vytvorení nového používateľského účtu si je možné vytvoriť nový projekt priamo v aplikácií. Nasledujúce video zobrazuje názorné vytvorenie nového projektu. Po vytvorení projektu sa zobrazí správa o odoslaní autentifikačného kódu na e-mail používateľského účtu, ktorý je dôležitý a je potrebné si ho uchovať. Pri vytváraní nášho projektu sa vybralo zariadenie “Arduino Uno” a typ pripojenia zariadenia USB.

Pridávanie widgetov a ich nastavenie

Plátno nového projektu je čisté a je potrebné ho naplniť pomocou rôznych widgetov, ktoré ponúka aplikácia Blynk a majú rôzne funkcie. Každý widget má svoje nastavenia, ktoré vie používateľ meniť podľa potrieb. V aplikácii sú dostupné základné informácie ku každému widgetu, podrobnejšia dokumentácia k jednotlivým widgetom a ich celkový zoznam je dostupný na stránke platformy Blynk. Nasledujúce video zobrazuje príklad pridania tlačidla, ktoré je potrebné nastaviť. Znázornené je aj zobrazenie základných informácií widgetu.

Platforma Blynk a Arduino

Zapojenie ukážky
Zapojenie ukážky

Ako ukážku ovládania zariadenia pomocou platformy Blynk využijeme zariadenie Arduino Uno. Pripojené bude k serveru pomocou USB rozhrania. Arduino bude ovládať LED diódu na základe príkazov odoslaných aplikáciou Blynk. Zapojenie LED diódy do zariadenia Arduino je znázornené na obrázku. Dióda je zapojená do analógového pinu A0. Zapojenie znázornené na obrázku nie je vhodné na praktické využitie, slúži len ako ukážka zapojenia LED diódy.

Nastavenie Arduino IDE

Vývojové prostredie Arduino IDE je volne dostupné prostredie, ktoré je možné stiahnuť na oficiálnej stránke Arduina. Do prostredia Arduino IDE je potrebné nainštalovať knižnicu Blynk potrebnú na komunikáciu s aplikáciou. Knižnica je dostupná na stránke aplikácie Blynk, ktorá obsahuje aj podrobný návod na inštaláciu knižnice. Po úspešnej inštalácii knižnice je potrebné v Arduino IDE vybrať typ dosky a USB port, ku ktorému je zariadenie pripojené. V našom prípade je typ dosky Arduino Uno a USB port je označený ako COM4.

Nastavenie USB portu a typu dosky
Nastavenie USB portu a typu dosky

Po aplikovaní základných nastavení prostredia Arduino IDE môžeme na Arduino nahrať zdrojový kód. Príklad zdrojového kódu je zobrazený na obrázku nižšie.

#define BLYNK_PRINT SwSerial

#include <SoftwareSerial.h>
SoftwareSerial SwSerial(10, 11); // RX, TX
    
#include <BlynkSimpleStream.h>


//Medzi uvodzovky je treba vložit autentifikáčný klúč
char auth[] = "AuthToken";

void setup()
{
    // Debug console
    SwSerial.begin(9600);

    // Blynk bude pracovať cez serial
    // Manuálne nezapisujte ani nečítajte serial
    Serial.begin(9600);
    Blynk.begin(Serial, auth);
}

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

Nasleduje spustenie skriptu, ktorý umožní komunikáciu Arduina cez USB port s Blynk serverom. Tento skript je súčasťou knižnice a je spustiteľný cez príkazový riadok. Skript “blynk-ser.bat” je uložený na tejto adrese.

..\Arduino\libraries\Blynk\scripts\blynk

V prípade ak používame privátny sever je potrebné tento skript upraviť. Zmeniť treba adresu servera “SERV_ADDR” na IP adresu privátneho servera, a tiež je potrebné zmeniť port “SERV_PORT” na port 8080. Riadky ktorých sa zmeny týkajú sú označené znakom „*“.

@echo off
setlocal EnableDelayedExpansion

REM === Edit these lines to match your need ===

set COMM_PORT=COM1
set COMM_BAUD=9600
set SERV_ADDR=blynk-cloud.com  *
set SERV_PORT=80               *

Po spustení skriptu v príkazovom riadku je potrebné zadať port, ktorým je Arduino pripojené k počítaču. Ak je všetko správne, výstup na príkazovom riadku by mal byt nasledovný:

Podrobnejší návod od vývojárov platformy Blynk je dostupný na youtube kanáli Blynk.

Ďalšie príklady

Vývojári platformy Blynk vytvorili webovú stránku poskytujúcu príklady zdrojových kódov pre rôzne zariadenia, pripojenia k sieti a použitým widgetom. Po výbere vhodného zdrojového kódu je ho možné skopírovať do rozhrania Arduino IDE. Webová stránka ponúka veľké množstvo využití platformy Blynk a prostredníctvom týchto vzorových zdrojových kódov si dokážeme otestovať funkcionalitu a rýchlejšie sa s ňou oboznámiť.

Ukážka ovládania

Výsledkom vyššie uvedeného postupu je možnosť ovládania LED diódy pomocou aplikácie Blynk. Nasledujúce video zobrazuje zariadenie Arduino Uno a prostredie mobilnej aplikácie Blynk, ktoré prostredníctvom tlačidla zapína a vypína LED diódu zapojenú do zariadenia.

Platforma Blynk ponúka ďaleko širšie možnosti. Príkladom môže byť projekt zrealizovaný počas vypracovanie bakalárskej práce na Technickej univerzite v Košiciach. Projekt sa zameriava na ovládanie rôznych prvkov systému autonómneho skleníka.

Zdieľanie pomocou platformy Blynk

Platforma Blynk ponúka aj možnosť zdieľania projektu. Zdieľať je možné prístup k zariadeniu alebo zdieľať kópiu projektu. Názorná ukážka nastavenia prístupu k zariadeniu je viditeľná v nasledujúcom videu.

Ak chceme zdielať kópiu projektu je potrebné postupovať podal nasledujúceho videa.

Platforma ponúka aj vytvorenie samostatnej aplikácie na komerčné účely. Táto možnosť je však platená a podrobné podmienky sú opísané na stránkach platformy Blynk.

Záver

Blynk je platforma, ktorá umožňuje vytvárať jednoduché projekty internetu vecí. Inštalácia aplikácie Blynk a nastavenie rozhrania Arduino IDE, prípadne rozhrania pre iné zariadenie je pomerne jednoduchá záležitosť, ktorá je podrobne opísaná v dokumentáciách zverejnených najčastejšie na stránkach vývojárov. Používateľ si dokáže vytvoriť vlastné používateľské rozhranie, pre ovládanie svojho zariadenia. Výsledkom môžu byť systémy, ktoré dokážu ovládať napr. domáce spotrebiče, autonómne skleníky, LED obrazovky a pod. Disponuje možnosťou zdielať svoj projekt alebo prístup pre ovládanie zariadenia. Platformu Blynk je možné použiť aj ako licencovanú platformu, vďaka čomu sa môžu publikovať mobilné aplikácie pre komerčné účely, ktoré ovládajú daný systém.