Masterclass

Cristian Trancă

Internetul Lucrurilor – IoT (Internet of Things)

În acest capitol începem discuția pornind de la bazele conceptului de IoT, și anume Internetul. Discutăm despre precursorul internetului (ARPANET), ce este o rețea de calculatoare, facem diferența dintre intranet și internet și apoi parcurgem împreună metodele prin care un dispozitiv se identifică în internet prin adresă MAC sau IP (IPv4 și IPv6).  În final, încheiem prin detalierea conceptului de Internet of Things, astfel încât să înțelegem că este vorba despre o umbrelă conceptuală, nu despre o tehnologie.

Internetul Lucrurilor în Industrie

Internetul Lucrurilor cuprinde toate dispozitivele cuplate în internet care conlucrează la realizarea unei funcții, la atingerea unui scop. În acest video, abordăm ideea de IoT Industrial și înțelegem împreună care au fost cele 4 revoluții industriale (care au generat Industry 4.0), ce înseamnă să realizăm un dispozitiv pentru IoT Industrial. La final abordăm domeniile de aplicabilitate ale dispozitivelor IoT industriale, de la case inteligente până la fabricile viitorului. Vedem împreună spre ce se îndreaptă industria – Industry 5.0.

„Anatomia” unui dispozitiv IoT

În acest capitol ne axăm pe arhitectura funcțională și constructivă a unui dispozitiv IoT. Pornim de la scopurile dispozitivului, obiectivele noastre, exemple de aplicații și apoi abordăm conceptele elementare ce ne permit înțelegerea modului în care interacționeaza un dispozitiv IoT cu mediul. Ne punem întrebările de început (și răspundem la ele): Ce sunt traductorii? Ce sunt actuatorii? Ce sunt senzorii?.

Procesul de realizare a unui dispozitiv IoT

În acest videoclip, ne axăm asupra procesului de realizare a unui dispozitiv IoT. Începem cu esențialul: Ce trebuie să facă, cum, de unde se alimentează? și apoi înțelegem modelul de dezoltare în V utilizat în proiectarea aparatelor IoT. Analizăm succint o serie de exemple de platforme de prototipare și vedem ce avem la dispoziție în acest moment pe piață pentru a prototipa, și apoi a dezvolta un dispozitiv IoT. Pornim de la platforme de prototipare și kituri de dezvoltare uzuale, ușor de găsit și accesibile tuturor.

Limbaje de programare pentru dispozitive IoT

Când construim un dispozitiv IoT trebuie cumva să îl „instruim” ce are de făcut, adică să îl programăm. În acest capitol vom vedea că trebuie să abordăm programarea dispozitivului din punct de vedere al: platformei de dezvoltare, tipului de platformă (microcontroller, sau sistem tip System-On-Chip), dar și al scopului (prototipare sau dezvoltare comercială). Realizăm împreună primul program elementar („Hello, World!”) pe platforma Arduino, una dintre cele mai întâlnite platforme de prototipare, cu, poate, cel mai mare număr de utilizatori (vedem, și comunitatea este importantă).

Exemple de utilizarea intrărilor/ieșirilor în Arduino

În acest capitol, învățăm bazele interacțiunii dintre platforma noastră embedded și mediul ambiant. Învățăm să identificăm pinii platformei, întelegem noțiunile de GPIO, intrare/ieșire digitală, intrare/ieșire analogică și pentru fiecare dintre aceste funcționalități realizăm împreună un cod demonstrativ. Printr-un set de exemple simple realizate în simulator realizăm funcționalități pe care, la nevoie, le putem integra în sisteme complexe. Abordăm bazele și noțiunile elementare, ca apoi, să putem să ne descurcăm în situații mai complicate.

Programarea AVR de bază – fără nivel de abstractizare

Nu întotdeauna vom putea utiliza biblioteci de abstractizare pentru a programa dispozitivele noastre. În acest episod ne axăm pe a citi (selectiv) din datasheet-ul (manualul) microcontroller-ului de pe Arduino UNO schemele principiale de realizare a diferitelor funcționalități și realizăm împreună un cod scris fără biblioteci de abstractizare. În final dăm câteva exemple de cod utilizate fie pentru Arduino UNO fie pentru alte platforme/microcontrollere, să înțelegem că bibliotecile de abstractizare nu sunt disponibile oricând, oricum, oriunde.

Alegerea modulelor externe pentru funcționalități extinse

Ce facem când platforma de prototipare/dezvoltare nu poate să realizeze funcționalitățile dorite? Nu ne aruncăm direct să o schimbăm cu una mai puternică/cu mai multe funcționalități, poate nu rentează, poate nu este posibil sau în general poate nu găsim exact ce dorim. În acest episod înțelegem împreună cum citim datele elementare dintr-un datasheet, cum decidem dacă un modul este compatibil din punct de vedere al tensiunilor și cum căutăm exemple pe internet să ne simplificăm munca, mai ales când vine vorba de prototipare.

Dispozitiv IoT de măsurare a parametrilor ambientali

În acest video, începem împreună să realizăm primul nostru dispozitiv IoT. Folosind o placă de dezvoltare bazată pe ESP32, care poate fi programat din platforma Arduino și care permite conexiuni WiFi și Bluetooth, realizăm o stație meteo, adică un sistem de măsură a temperaturii și a umidității (prin atașarea unui senzor DHT11). Începem prin a trimite parametrii pe serială și evoluăm către realizarea unui server web elementar ce ne prezintă pe o pagină web, în format text, temperatura și umiditatea.

Transmiterea datelor în internet folosind TCP/UDP

Dispozitivele IoT sunt gândite deseori să fie alimentate de pe baterie și rularea algoritmilor complecși scurtează durata de funcționare pe baterie, adică reduc autonomia. Pornind de la sistemul dezvoltat în episodul precedent, înțelegem împreună că este posibil să transmitem datele prin alte 2 protocoale UDP și TCP, aceste date fiind mai departe prelucrate de un server. Astfel, degrevăm microcontrollerul dispozitivului IoT de sarcini computațional intensiv.

Importanța utilizării funcționalității de sleep

Se încearcă, în toate dispozitivele portabile sau fixe care operează de pe baterie, conservarea energiei electrice disponibile și prelungirea autonomiei. Acest lucru se poate face parțial din proiectarea dispozitivului și parțial din programarea elementelor tip microprocesor/microcontroller. În acest episod abordăm noțiunea de sleep și modificăm exemplul din episodul anterior pentru a îngloba această funcție de sleep, care reduce consumul de energie.

Aspecte suplimentare în dezvoltarea dispozitivelor (nu numai IoT)

În acest ultim episod, abordăm suplimentar câteva aspecte legate de diagnoza dispozitivelor IoT, aflăm de ce instrumente și ce aparatură de laborator am avea nevoie pentru a ne face o masă de lucru necesară în acest proces interesant de realizare a dispozitivelor IoT, tehnici de creștere a autonomiei și la final enumerăm o serie de noțiuni ce ar trebui cunoscute (și pe care nu am putut să le abordăm în timpul limitat). Nu în ultimul rând, încercăm printr-un exemplu, să calculăm o autonomie de sistem, cu și fără a utiliza funcția de sleep prezentată în episodul anterior, pornind de la un set de componente reale.