LAKI PINGVINI
Blynk Legacy, Blynk IoT i Arduino IoT Cloud
Internet stvari naš nasušni
D. PETROVIĆ
1. avgust 2021.

Postoje razni načini upravljanja uređajima putem interneta. To može biti direktno preko veb-servera, ili putem nekog od servisa. I sam način povezivanja na internet može biti bežičan (Wi-Fi) ili „žičan” (Ethernet). Ovaj put ćemo se pozabaviti mogućnostima, razlikama, prednostima i manama dva servisa, Blynk i Arduino IoT Cloud platforme. Napominjemo da je Blynk izašao sa verzijom 2.0 kao Blynk IoT, dok je prethodna verzija nazvana Blynk Legacy. Legacy je još uvek aktuelan, ali je „krenuo niz vodu”.

Blynk Legacy

Već smo se dotakli Blynka kada smo pravili pametni prekidač (SK 6/2018 i SK 7/2018, i.sk.rs/15124 i i.sk.rs/15191), a i koji put nakon toga. Blynk je kao platformu osnovao Pavel Bayborodin, sada već daleke 2014. godine. Sam Blynk je IoT (internet of things) platforma koja omogućava kreiranje aplikacija za mobilne uređaje, na iOS-u i Androidu. Mobilni uređaji se preko aplikacije Blynk mogu povezati na razne druge uređaje i upravljati njima. Sama platforma dosta je intuitivno izvedena, sa poprilično primera. Podrškom je pokrivena velika porodica mikrokontrolera, bez obzira na to da li govorimo o bežičnoj vezi ili o povezanosti na lokalnu mrežu preko Etherneta. Pokrivena je, uglavnom, cela Espressif porodica zasnovana na ESP8266 i ESP32, ali ne i ESP8285. ESP32 S2 i C3 trebalo bi da rade bez problema (mi smo probali samo S2). Takođe, tu su primeri za Raspberry i Ubuntu, zatim Particle Core, Photon i Electron. Standardne Arduino ploče uglavnom su sve tu, MKR takođe, ali ne i Nano 33 IoT serija. Međutim, podrška postoji i za mnogo veći broj ploča, što možemo videti u dokumentaciji ili prilikom izbora hardvera u okviru aplikacije.

Preuzimanjem aplikacije u startu dobijamo in-app valutu Energy Pack, stilizovanu munjom. Ovih 2000 „energije” trošimo za razne tastere, prekidače, skale, grafikone, slajdere, tajmere, displeje, terminale i da ih ne nabrajamo dalje. Uglavnom, možemo svašta da uradimo prostim drag’n’drop radom, a projekat možemo izvesti na početni ekran u obliku vidžeta. Projekat možemo da podelimo sa ukućanima i prijateljima: recimo, pristup pametnom prekidaču o kom smo ranije pisali, da bi i drugi ukućani mogli da upravljaju njime. Kompleksnije stvari koštaju više, a taster sa 200 energije je među najjeftinijima. Međutim, šta da radimo kada potrošimo „energiju”? Blynk je uveo jednokratnu naplatu „energije”, što će reći da za nepun dolar možemo da dokupimo 1000 „energije” zauvek na nalogu. Ovih 1000 jedinica „energije” dovoljno je za pet tastera ili čak dva video-strima. Za simboličnu sumu novca možemo celu kuću da „opametimo” koristeći platformu Blynk. U slučaju da promenimo telefon, prvim logovanjem na novoinstaliranu aplikaciju, sve je tu. Jedino na šta treba obratiti pažnju je broj upita ka Blynk serveru, veći broj upita od predloženog će se smatrati kao spam i dovesti do suspenzije naloga. Takođe, kao i inače, funkcija delay() je krajnje nepoželjna.

Blynk za Arduino sistem dolazi u formi biblioteke koju možemo preuzeti direktno iz IDE. Na examples.blynk.cc nalazi se veliki broj primera, uz još veći u okviru zajednice na mreži. Kompajliranje skeča možemo da izvršimo nebrojeno puta u offline varijanti. U našem primeru ćemo, koristeći Wemos D1 mini kroz aplikaciju Blynk, da uključimo ugrađenu LED. Taster u aplikaciji na mobilnom uređaju može da ima formu tastera ili prekidača, to jest, može zadržati stanje dok ga ponovo ne dodirnemo - to i želimo.

Nakon instaliranja aplikacije i kreiranja naloga idemo na New Project. Tu postavljamo naziv projekta, biramo uređaj (u našem slučaju Wemos D1 mini), za način konekcije Wi-Fi, a možemo da birano i temu vidžeta. Nakon toga idemo na Create, a Blynk će nam automatski poslati token na mejl adresu kojom smo i napravili nalog. Token kasnije uvek možemo ponovo da pošaljemo na mejl ili ga da kopiramo u clipboard. Prevlačenjem ekrana ulevo dobijamo Widget Box, gde biramo Button za koji ćemo potrošiti 200 „energije”. Na ekranu nedovršenog projekta pozadina je tačkasta, a nakon aktivacije tačkice će nestati. Taster možemo da pomeramo ili razvučemo, a dodirom na njega dobijamo podešavanja. Tu možemo dodeliti naziv tasteru, a nas interesuju ostala podešavanja. Pod Output, prvo levo polje nas vodi do izbora vrste i broja pina. Mi biramo Virtual i V0. Takođe, biramo i početno stanje gde za običnu LED ostavljamo kako jeste. Međutim, ako radimo sa relejima, njima je za OFF logičko stanje „1”. Isto važi i za ugrađenu LED na ESP12 koja je na Wemosu pin 2. I ona se aktivira sa logičkom nulom, to jest, LOW. Iz tog razloga postavljamo iz 1 u 0 i obrnuto, kao na slici. Tu još možemo izabrati boju i veličinu fonta, natpis stanja tastera ili ga obrisati. Vidžet aktiviramo tako što dodirnemo ’’taster play u gornjem desnom uglu. Sada dobijamo ’’ taster stop, ali i ikonicu uređaja sa statusom offline, koja će se promeniti za koji trenutak.

U međuvremenu je token stigao u elektronsko poštansko sanduče. Idemo na Sketch->Include Library->Manage Libraries. U prazno polje kucamo „Blynk” i instaliramo biblioteku. Podrazumeva se da je neophodna podrška za ESP8266 već tu.

Skeč ispod prilično je uprošćen. Dodajemo biblioteke, zatim auth, ssid i pass kojima ćemo se povezati na lokalnu mrežu, ali i sa već kreiranim vidžetom. Funkcijom BLYNK_WRITE() pristupamo virtualnom pinu ’V0’ našeg vidžeta i trenutnu vrednost stavljamo u promenljivu. Nakon toga, ispisujemo dobijenu vrednost na pinu ’2’. Ova funkcija će se aktivirati samo ako postoji promena u vidžetu, što se lako vidi na serijskom terminalu. Nakon flešovanja Wemosa i povezivanja na lokalnu mrežu i Blynk server, u okviru vidžeta će se status promeniti u „online” i dodirom na taster ćemo uključivati i isključivati LED na Wemosu.

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

char auth[] = „--token--”;

char ssid[] = „--SSID--”;

char pass[] = „--password--”;

int ledPin = 2; //pin na koji je vezana LED na ESP12 modulu

BLYNK_WRITE(V0){

int pinValue = param.asInt(); // dodeljivanje dolazne vrednosti V0 pina promenljivoj

digitalWrite(ledPin, pinValue); // ispisivanje dobijene vrednosti

Serial.println(pinValue);

}

void setup(){

Serial.begin(9600);

Blynk.begin(auth, ssid, pass);

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

}

void loop(){

Blynk.run();

}

Blynk Legacy odlazi u penziju i za sada nema zvaničnih naznaka da će se serveri gasiti, ali se neće ni razvijati. Postojeći projekti ne mogu da se koriste na novoj platformi, već bi morali ponovo da se prave, što važi i za skečeve na mikrokontrolerima. Blynk Legacy na lokalnim serverima ostaje kakav jeste i nije pokriven Blynkom 2.0.

Arduino IoT Cloud

Arduino IoT Cloud je deo Arduino sistema. Ne postoji offline varijanta, a reći ćemo i zašto. Platformi pristupamo preko adrese create.arduino.cc/iot/things i prvo što nam je zapalo za oko jeste nemogućnost rada u pregledaču skupljenog na pola ekrana. Ako ste navikli da radite sa više prozora istovremeno, to sa ovom platformom nije moguće. Dočekaće vas poruka da veličina ekrana nije podržana i da ona mora da bude široka najmanje 960 piksela. Za sada, loš početak.

Nakon što se ulogujemo, dobijamo ekran sa četiri taba: Things, Dashboards, Devices i Integrations. U produžetku imamo Upgrade Plan. Ovaj poslednji trebalo bi odmah da posetite, kako biste videli da li se Arduinova platforma i politika naplate uopšte uklapa u vaš projekat. Za razliku od Blynk Legacy, ovde se za naprednije opcije plaća mesečno. Arduino IoT Cloud na besplatnom planu nudi samo dva uređaja koji se mogu povezati sa oblacima. Dalje, tu su neograničen dashboards, 100 megabajta prostora za skečeve, jedan dan čuvanja podataka, ali i samo 200 sekundi dnevno kompajliranja. Ovo poslednje znači da ćemo na eventualnom razvoju projekta raditi danima, ukoliko želimo da probamo razne varijante. Naredna tri plana nude dosta više, poput više uređaja, neograničeno dnevno vreme kompajliranja, API, OTA update i drugo. Cena se kreće od nepuna tri dolara mesečno, pa naviše, s tim da ako plaćamo celu godinu, dobijamo pristojan popust. Neko će reći da osnovni, Entry plan od nepunih 24 dolara godišnje (sa popustom) nije strašno skup, s obzirom na to šta sve dobijamo i da to ne treba gledati kroz prizmu naše platežne moći. Međutim, naša zamerka više ide u pravcu dodatnih obaveznih mesečnih (ili godišnjih) režija. Probajte da zamislite da na hrpu računa od struje, vode, telefona, Infostana i gomile drugih treba da dodate još i ovaj da biste uopšte mogli da koristite svoju „pametnu kuću”.

Ostavljamo ovaj deo po strani i zaranjamo u platformu. Prvo što treba da radimo jeste da kreiramo Thing, uređaj koji ćemo koristiti, a ideja je da učinimo isto kao sa Blynkom. Na tabu Thing imamo sve što nam je potrebno i u startu je sve prilično automatizovano. Tu su Setup, Sketch i Serial Monitor i ovaj deo je prilično jasan. Setup nam omogućava da popunimo i podesimo osnovne stvari koje će se uvesti u skeč, kao što su promenljive, uređaji i mreža. Krećemo od naziva promenljive, gde pišemo „led”, tip promenljive je „light”, a sistem će sam postaviti deklaraciju. Tu su i dozvole koje ne diramo. Možemo dodati više promenljivih ako nam zatreba. Sledeće je Device. S obzirom na to da govorimo o Arduino platformi, logično je da je akcenat na Arduino uređajima i podržani su svi koji se mogu povezati na internet. Ako je ovo smer kojim idemo, pre odabira je potrebno da je on povezan sa računarom. Idemo ka 3rd Party Devices, gde biramo između ESP8266, ESP32 i LoRaWan. ESP32 je u eksperimentalnoj fazi, a Wemos tražimo pod ESP8266. Dobijamo Device ID i Secret Key koje moramo da sačuvamo. Secret Key se ne može povratiti, ako ga izgubimo, moramo da obrišemo i ponovo postavimo uređaj. Za ID nije problem. Ostaje još Network, gde unosimo podatke lokalne mreže i Secret Key.

Dashboard tab vodi nas do vizuelne izgradnje interfejsa. Biramo naš projekat i idemo na ADD, gde u padajućem meniju biramo prekidače, tastere, klizače, displeje i drugo, ali u mnogo manjem obimu u odnosu na ono što nudi Blynk Legacy. Biramo Switch, a nakon toga sa desne strane imamo opciju Link, sa promenljivom koju smo ranije kreirali. Postoji i taster nalik onom iz Blynka, ali bez opcije promene stanja i režima rada. I Switch kao vidžet tanak je sa opcijama. Ako imamo više vidžeta, možemo da ih slažemo po ekranu kako želimo. Ono što budemo videli na Dashboard, to ćemo videti i na mobilnoj aplikaciji, a o tome više kasnije.

Dalje, idemo na tab Sketch. Za upload skeča na Wemos potreban nam je Arduino Create Agent, program za koji dobijamo link. Ovaj program je spona između online kompajlera i Wemosa. Iz nekog razloga, njegov rad i sama instalacija mogu biti blokirani antivirusnim softverom. Tab Sketch nudi čak i pristup punom Arduino online editoru, ali, naravno, bez mogućnosti rada sa offline IDE. Pun editor veoma je funkcionalan, sve biblioteke su već tu, a naše je samo da prilagodimo postojeći skeč našim potrebama. ni skeč nudi osnovne stvari. Naše je da popunimo delove koji su nam potrebni, kao što je postavljanje režima LED na Wemosu i slično. Nepopunjena funkcija onLedChange() trebalo bi da sadrži instrukcije šta raditi sa vrednostima koje se dobiju od vidžeta. S obzirom na obrnutu logiku ugrađene LED na ESP12, u okviru ove funkcije to ispravljamo. Rekli smo da se to na vidžetu ne može promeniti.

void onLedChange() {

// Do something

if (led == 1) {

digitalWrite(ledPin, LOW);

} else {

digitalWrite(ledPin, HIGH);

}

}

U editoru imamo opciju odabira ploče, porta, verifikaciju i upload. Ako je sve popunjeno kako treba, dodate deklaracije za ugrađenu LED na pinu ’2’ i ovaj snipet na kraju, trebalo bi da nakon uploada skeča na Wemos dobijemo mogućnost uključivanja i isključivanja LED. Sam upload odvija se kao i na klasičnom Arduino IDE u offline varijanti. Nismo prepisali kompletan skeč, jer se on sastoji iz nekoliko fajlova, a koji van ovog editora nemaju smisla. Osim osnovnog INO fajla, bitni su i thingProperties.h, kao i Secret. Modifikovanjem prvog možemo dodati i druge funkcije koje će se sinhronizovati sa oblacima, dok su u drugom fajlu smešteni podaci o lokalnoj mreži i ključ.

Za razliku od Blynk Legacy, projektom možemo upravljati i preko računara. Međutim, pravi smisao se dobija preko mobilne aplikacije, a koju preuzimamo u prodavnici. Aplikacija Arduino Cloud IoT Remote izlistaće sve naše projekte koje smo kreirali koristeći dashboard. Naš projekat „prekidač” sadrži sve ono što smo i dodali preko dashboarda, odnosno, samo Switch. Može, naravno, i mnogo više od toga.

Blynk IoT Cloud

Blynk je krenuo linijom manjeg otpora, pa, tako, i ovde sa novom verzijom sada imamo plan plaćanja paketa, poput onog za Arduino platformu. U odnosu na Arduino, cene su prilično više, bilo na mesečnom, bilo na godišnjem nivou. Besplatan paket nudi jedan povezan uređaj sa maksimalnih pet korisnika. Svaki sledeći uređaj se jednokratno plaća nepunih pet dolara. Paket osnovnih vidžeta osetno je manji, a podrška je samo u okviru foruma. Svaki naredni paket se plaća na mesečnom ili godišnjem nivou, uz više povezanih uređaja, maksimalan broj dostupnih vidžeta i drugo. Od noviteta, svakako da je najzanimljiviji Blynk Discovery add-on za Pro plan. Ovaj add-on još nije završen, a omogućavaće korisniku aplikacije da otkrije dostupne uređaje Blynk sistema i poveže se na njih. Jasno je da je krajnji cilj svih kompanija da imaju stabilan mesečni priliv novca, a Blynk platforma je izuzetno popularna.

Preskačemo ovaj bolni deo i počinjemo da kreiramo prekidač kao i za platforme iznad. Idemo na blynk.cloud, gde pravimo nalog, a nakon toga sačekaće nas interfejs sa Search, Template i Blynk.Air. Interfejs podržava skaliranje ekrana. Template nam treba, a nakon popunjavanja par polja u vezi sa odabirom ploče, vrste konekcije i naziva, dolazimo do osnovnih opcija u sekciji Info. Tu su Metadata, Datastreams, Events, kao i Web i Mobile dashboards. U vezi sa Datastreams, treba znati da je Blynk uklonio digitalne i analogne pinove, te ostavio samo virtualne. Klikom na New Datastream biramo Virtual pin, postavljamo naziv, biramo V0 virtuelni pin, za tip podataka biramo Integer (dostupni su još Double i String), kao i max i min vrednosti, to jest, „1” i „0”.

Sledeće na redu je kreiranje vidžeta. Imamo dva dashboarda i možemo kreirati nezavisnu/različitu mobilnu i veb verziju, s tim što mobilnu verziju možemo da postavimo samo u okviru aplikacije. U veb verziji, s obzirom na besplatan plan, imamo vrlo malo vidžeta, dosta manje nego i kod Arduino IoT Clouda. Prevlačimo Switch na dashboard, a u njegovim podešavanjima za datastream biramo virtuelni pin V0. Menjamo mesta ON i OFF vrednostima, zbog obrnute logike LED i snimamo postavke.

Arduino IDE i dalje koristimo za Blynk, ali uz najnoviju verziju biblioteke. Modifikovaćemo primer biblioteke Edgent_ESP8266, tako što ćemo dodati deo iz Blynk primera iznad:

BLYNK_WRITE(V0){

int pinValue = param.asInt(); // dodeljivanje dolazne vrednosti V0 pina promenljivoj

digitalWrite(ledPin, pinValue); // ispisivanje dobijene vrednosti

Serial.println(pinValue);

}

Ovaj snipet dodajemo odmah iznad funkcije setup. Dodajemo neophodne deklaracije za LED i to je to što se tiče LED. Ostaje još da popunimo BLYNK_TEMPLATE_ID i BLYNK_DEVICE_NAME, koje dobijamo na Info stranici našeg projekta. Ostaje još samo upload skeča na Wemos. Skeč u celosti, takođe, nema smisla prenositi, jer uz njega idu i prateći fajlovi.

Aplikacija koju ćemo sada koristiti je Blynk IoT. Nakon instalacije kreiramo taster, potpuno isto kao i za Legacy iznad, vezujemo ga za V0 i - to je to. Primećujemo da nema više „energije” za trošenje, ali i da bez doplate nemamo pristup velikom broju vidžeta. Kada napravimo vidžet, idemo na početni ekran gde skeniramo dostupne uređaje. Nakon otkrivanja Wemosa, trebalo bi da popunimo polja sa podacima lokalne mreže. Nakon par trenutaka, Wemos je spreman da mu uključujemo LED novom Blynk IoT aplikacijom.

• • •

Dešavalo se da nam uređaji baguju u projektima gde, pored Blynk Legacy, koristimo i WiFi Manager biblioteku. I to samo na novijim ESP12F modulima. Takođe, dešavalo nam se da nam pukne veza sa Blynk serverom. Sve to nije toliko strašno i da se zaobići. Kod Arduinovog servisa, desilo se da nam prikazuje da je uređaj offline preko aplikacije, dok je na dashboardu sve u redu i savršeno funkcioniše. Blynk IoT možemo nazvati kombinacijom starog Blynka i WiFi Managera, uz platni sistem Arduina. Funkcioniše, dobar je, ali se plaća i to mnogo više nego što je realno. Ipak, deluje nam kao najkompletnije rešenje.

Sistem za „ubiranje letine” kod starog Blynka nam se mnogo više sviđao. Plaćanje jednokratno i korišćenje zauvek, naspram „muže” klijenata svakog meseca, po našem mišljenju nije umesno poređenje. Ma koliko Arduino IoT Cloud i Blynk IoT imali prednosti nad Blynk Legacy, voleli bismo da stari opstane što duže. Sa druge strane, za produkciju IoT platforme svakako su bolje rešenje, pa čak i da se plate. Planovi plaćanja i same koncepcije obe IoT platforme jasno su usmerene ka produkciji. IoT uređaja je sve više, veliki igrači drže korak, zajednica prati koliko može, a bilo je pitanje trenutka kada će se pojaviti IoT platforme u ovakvom obliku. Mi smo mišljenja da će ih u narednom periodu biti još više.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
NOVEMBAR 2023
Counter Strike 2
Stari, dobri Kanter u osveženom ruhu je više veliki update, nego puna nova igra...
Intel Core i9-14900K i Core i7-14700K
Nema zime uz Intelove mašine
Da li je Raptor Lake Refresh samo još vrelija i neznatno brža verzija prethodne generacije?
Apple iPhone 15, iPhone 15 Pro i iPhone 15 Pro Max
Petrovača, ajdared i zlatni delišes
iPhone 15 je „prepakovana” verzija modela 14 Pro, sa Appleovim čipsetom A16 Bionic „ispod haube”...
High tech igračke i razvoj naučnog razmišljanja
M’mera mpoyamba
Visokokvalitetne, a povoljne edukativne igračke postoje za svaku sferu interesovanja vašeg deteta...
Dell Alienware AW2724DM
Ponos na vašem stolu
Odličan monitor. Vrhunski! Međutim, kao što verovatno znate, Alienware je neka vrsta statusnog simbola...
Hisense 43A7KQ
VIDAA sa više smisla
Neobičan brak pametnog i tradicionalnog televizora, koji se lako koristi i bez ijedne napredne opcije za gledanje TV programa...
Finansijske tehnologije
Turbulencije ne prestaju
Da li nas očekuje recesija ili „meko prizemljenje”? Ključne kompanije sektora finansijskih tehnologija ne čekaju previše...
EmulationStation Desktop Edition 2.1.1
Vizuelna strana emulacije
Emulation-Station je frontend za emulatore, koji donosi mogućnost kastomizacije prikaza sadržaja...
Super Mario Bros. Wonder
Super Mario Bros. Wonder je dragulj u serijalu 2D Mario platformera, na koji se čekalo više od tri decenije...
Assassin’s Creed Mirage
Igra ima fokusiranu, vrlo linearnu priču kakvu su imali prvi naslovi u serijalu...
Forza Motorsport
Pre trka nije moguće voziti kvalifikacije, već sami birate startno mesto na gridu...
Marvel’s Spider-Man 2
Akciona komponenta Marvel’s Spider-Mana 2 je stravično dobra, mada su Majls i Piter previše slični...
© 2023 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama