Mjerenje i praćenje nedigitalnih parametara digitalnim alatima

Sigurno ste se nekad zapitali biste li mogli pratiti pojedini nedigitalni parametar (npr. temperatura) i pohraniti ga u digitalni medij, a sve kako bi se kasnije analize mogle napraviti bez potrebe vođenja ručne evidencije? Imamo dobre vijesti: Da, može se pratiti. Dodatna je prednost što se može koristiti najpopularniji besplatni alat za digitalni marketing – Google Analytics. U nastavku ćemo malo približiti kako spojiti nespojivo – parametre iz okoline s alatom za digitalni marketing.

 

Alat za digitalni marketing

 

Nepopularniji alat za digitalni marketing u ovom trenutku je Google Analytics koji koristimo za praćenje i analizu prometa na vašim web stranicama. Također, njime možemo pratiti putanju posjetitelja, odnosno imati pregled odakle je stigao posjetitelj, koje stranice je pregledavao i sl. Zbog ovih prednosti postao je najpopularniji alat koji pomaže marketingašima donositi odluke.

S obzirom da kod ovog alata postoje API-ji za raznorazne programske jezike, možemo ga iskoristiti i za praćenje parametara koji nisu digitalni. Primjerice, možemo pratiti ponašanje korisnika na vašoj mobilnoj aplikaciji, a preko drugih senzora i IOT-a možemo slati podatke u ovaj alat i kasnije analizirati podatke. U našem primjeru ćemo koristiti WeMos D1 WiFi UNO ESP8266 pločicu (jeftinija inačica Arduino pločice) sa pripadajućim senzorima te slati podatke u Google Analytics.

 

Digitalni-alati

Google Analytics screenshoot

 

Ideja i demo

 

Ideja za ovaj demo je došla od razmišljanja mogu li zapisati temperaturu u neki digitalni oblik, bez potrebe za ručnim upisivanjem i tako analizirati toplinu sobe kroz određeni vremenski period. Zašto mi to treba? Kako bih mogao podesiti grijanje ili hlađenje tokom dana.

Naravno da temperatura prostorije nije jedino što je moguće pratiti, ali ću na ovome jednostavnome primjeru pokazati kako ovo radi. Vi odlučite koje parametre želite mjeriti.

Ovisno o količini senzora ili kompleksnosti samog senzora možete slati jedan ili više podataka u Google Analytics. Nije nužno slati samo jedan parametar. Npr. kad bi koristili Microsoft Kinect koji može prepoznati broj ljudi u nekoj sobi ili izraze lica, moglo bi se puno toga zanimljivog pratiti.

Za naš demo ćemo koristiti sljedeće:

  1. Google Analytics – 0kn
  2. WeMos D1 WiFi UNO ESP8266 – cca 50kn (eBay)
  3. DHT22 Senzor – cca 30kn (eBay)

 

 

WeMos D1 WiFi UNO ESP8266                                                                                                             DHT22 Senzor

 

 

Pločica WeMos D1 je kompatibilna sa Arduino Uno. Odlučio sam se za nju jer ima integrirani WiFi modul za spajanje na web, dok bih za Arduino trebao kupovati dodatni modul za WiFi. Vi za svoje potrebe možete koristiti bilo što – Arduino, Raspberry Pi ili nešto slično, ovisno o vašim ambicijama i preferenciji.

 

 

Shema spajanja

 

 

DHT11-with-Arduino-UNO-wiring-diagram-schematic

Prikaz sheme spoja
Izvor: https://www.makerguides.com/dht11-dht22-arduino-tutorial

 

Opis i pregled programa

 

Za ovaj demo koristio sam Arduino IDE alat, te C++ jezik. Od dodatnih biblioteka koristio sam: ESP8266WIFI koja mi je služila za spajanje na WIFI mrežu; dht.h biblioteku koja nam služi za komunikaciju sa DHT22 senzorom koji očitava temperaturu i vlagu te ESP8266HTTPClient koji služi sa slanje podataka u Google Analytics.

 

Spajanje na WiFi

 

Na WiFi se spajamo pomoću ESP8266WIFI biblioteke na sljedeći način:

 

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)
{
  delay(500);
  Serial.print(".");
}

 

Korištena biblioteka nam omogućava brzo i lako povezivanje na WIFI mrežu te je potrebno odabrati mode. Ja sam odabrao Station mode (WIFI_STA) jer se s uređajem spajam na Access point, odnosno router. Više o modovima možete naći na ovoj poveznici.

 

Slanje podataka u Google Analytics

 

Slanje podataka u Google Analytics se vrši preko POST metode na sljedeći način:

 

http.begin("http://www.google-analytics.com/collect");
http.addHeader("POST", " / collect HTTP / 1.1");
http.addHeader("Host: ", "www.google-analytics.com");
http.addHeader("Content - Type", "application / x - www - form - urlencoded");
http.POST("v=1&t=event&tid=" + ga + "&cid=" + cid + "&ec=Temperature&ea=" + temperatureS + "&el=Label&ev=" + temperatureS);
http.POST("v=1&t=event&tid=" + ga + "&cid=" + cid + "&ec=Humidity&ea=" + humidityS + "&el=Label&ev=" + humidityS);
http.writeToStream(&Serial);

 

 

Za slanje podataka bitne su nam sljedeće stavke:

  • url na koji šaljemo: http://www.google-analytics.com/collect
  • Parametar v koji nam označava verziju google analyticsa
  • Parametar cid koji označava ID naše aplikacije
  • Parametar t koji nam označava tip poruke koje šaljemo u analytics: event | page | transaction | Item | var
  • Parametar tid je ID od profila kojeg koristite na Analyiticsu: UA-XXXXXX-X
  • Parametar ec je Event category gdje definiramo ime kategorije u koju se šalju podaci
  • Parametar el je Event Label gdje možemo dodatno opisati neki parametar koji šaljemo u analytics
  • Parametar ev je Event value gdje upisujemo vrijednost koju šaljemo u Google Analytics

Koristio sam Evente za spremanje podataka u analytics. Ukoliko želite iskoristiti neki drugi tip podataka onda su i parametri drugačiji od navedenih.

U ovom demo-u se podaci šalju svake minute u Google Analytics.

Cijeli kod možete vidjeti ovdje

 

Prikaz gotovog spoja na ekperimentalnoj pločici

 

Google analytics

 

Kao što sam ranije spomenuo, u Google Analytics sam koristio tip podataka event koji se kasnije u obradi mogu vrlo lako analizirati.

 

Google Analytics screenshoot

 

Također, iz tih podataka se mogu raditi razni izvještaji i grafovi. Na slici iznad imamo jednu tablicu i jedan graf. U tablici je prikazana prosječna temperatura i vlaga u jednom danu, dok su na grafu prikazane prosječne vrijednosti temperature i vlage, ali po satima u jednome danu. U ovom primjeru su navedeni podaci za period od 3 sata.

 

Kome je ovo korisno?

 

Ako vas zanima elektronika i programiranje i htjeli biste isprobati nešto novo, ovaj projekt je odličan za početak. Nije komplicirano spojiti elemente, a na temelju ovako jednostavnog primjera možete razvijati i kompleksnije sustave za praćenje te kasnije analizirati podatke u Google Analyticsu, izrađivati grafove i slično (npr. broj otvaranja vrata frižidera za one koji su na dijeti ili jačina svjetlosti te na temelju tih podataka kreirati app koji će regulirati ledice).