IoT - internet și mai cum!?

Auzim tot mai des tot felul de termeni noi. Unul dintre aceștia este 'IoT'... Și ne întrebăm ce este acela IoT? Poate e ceva molipsitor... Oare se ia? Cum scapăm de el? Poate nu e virus, poate e medicament… Hmmm…

Nici nu am apucat bine să ne gâdim ce ar putea fi, pentru că, tehnologia fiind de partea noastră, s-a și deschis pagina din browser… Internet of Things… This is new… Să vedem…

Ca orice lucru bun, poate e făcut să ne ajute într-un fel sau altul.

Internet of Things (Internetul lucrurilor mai pe românește) se referă la interconectatea tuturor obiectelor cu ajutorul internetului. Prin obiecte înțelegem mașini, electrocasnice, dispozitive mobile (ex. telefoane), purtabile (ex. ceasuri inteligente, ochelari), etc. Acestea schimbă date între ele sau pot comunica cu centre de date cu scopul de a asigura o funcție mai complexă.

Cu ajutorul IoT aplicațiile/serviciile ne pot ajuta în viața de zi cu zi, când mergem la școală, când ne întoarcem acasă, când suntem la volan, când mergem în excursii, etc...

Ne punem întrebarea: Cum se realizează această comunicare și ce fel de date se schimbă între dispozitive? Ei bine, fiecare astfel de obiect, pentru a fi legat la Internet, trebuie să fie dotat cu un dispozitiv capabil să filtreze și să transmită date și cu diferite periferice, ale căror date le transmite sau pe care le controlează. Și, ca să fim mai concreți, perifericele pot fi senzori de temperatură, presiune, distanță sau pot fi diferite motorașe sau întrerupătoare. Dispozitivele integrate în obiectele înconjurătoare sunt așa numitele "Single Board Computers". Acestea sunt mici calculatoare dotate cu un procesor la care sunt legate perifericele. Cele mai întalnite exemple de SBC sunt telefoanele mobile inteligente, ceasurile inteligente și ochelarii inteligenți care, pe lângă funcțiile de bază, pot face parte din IoT.

Și ca să nu fim plictisitori, să trecem la ceva mai concret. Un exemplu interesant este cel al unui robot de supraveghere. Acesta poate fi dotat cu camere și senzori și poate patrula independent prin casă sau prin curte și să ne anunțe dacă vede ceva "suspect". Acest exemplu este unul complex. Pe lângă un SBC, senzori, și o eventuală cameră video, robotul are nevoie și de motoare pentru deplasare. Robotul poate fi mic și puterea de calcul redusă. În acest caz, robotul poate comunica cu un calculator localizat în casă și care este alimentat de la priză. Acest calculator îi poate suplini funcțiile de procesare intesivă (de ex. recunoașterea fețelor de pe camera video).

Ne pregătim de lucruri inteligente

Acum câteva zile am primit un astfel de SBC care poate fi folosit pentru a face "lucruri inteligente". Acesta este un Intel Galileo Development Board (prima generație). Cele mai cunoscute exemple de dispozitive SBC sunt Arduino, Intel Edison, BBB (Bare Bones Board), Raspberry Pi, Beagle Bone. Fiecaruia dintre aceste dispozitive le pot fi atașate diferite periferice.

SBC-ul Intel Galileo este compatibil Arduino. Asta înseamnă că ii pot fi atașate periferice și poate rula care respectă specificațiile Arduino.

Arduino este o companie care creează hardware și software open-source. Hardware-ul si software-ul poate fi folosit pentru a realiza obiecte inteligente care pot simți și controla lumea înconjurătoare.

Articolul de față este un pas introductiv în universul lucrurilor, un prim pas util pentru a începe să construim obiecte inteligente folosind diferite periferice.

Dar să n-o mai lungim. Există câțiva pași care trebuie făcuți la început: pregătirea dispozitivului și a mediului de lucru.

Pentru aceasta va trebui să scoatem dispozitivul din cutie, și să aruncăm o privire la el. Acesta vine fără carcasă, fiind conceput pentru fi instalat in diferite locuri și pentru a-i fi atașate diferite periferice.

Placa arată ca în figura de mai jos. Este prevăzută cu diferiți conectori. Pentru început ne vor interesa doar conectorul de alimentare la rețeaua de curent și portul client USB, acest port fiind portul prin care se realizează programarea dispozitivului.

board-explicatii

Pe lângă această placă mai avem nevoie de un cablu USB micro (cu un capăt USB-A și celălalt USB micro) și o alimentare 5V/2.1-3A.

În continuare trebuie să descărcăm Arduino Software 1.6.0  și Intel Galileo Firmware Updater Tool de pe site-ul http://www.intel.com/support/galileo/sb/CS-035101.htm.

Pe site descărcăm pachetele corespunzătoare sistemului de operare pe care vom programa acest dispozitiv.

Utilizatorii Linux trebuie să dezinstaleze aplicația modemmanager:

  • Ubuntu, Debian: sudo apt-get remove modemmanager, sau
  • Fedora, CentOS: yum remove ModemManager.

Instalarea driver-ului pentru Windows

Instalarea pe care am facut-o în timpul realizării articolului a fost pe sistemul de operare Windows 8.1, existând instrucțiuni și pentru alte sisteme de operare.

După ce am descărcat cele 2 arhive, dezarhivam într-un folder arhiva cu Arduino Software.

arduino software unpacked

După ce am făcut aceasta, conectăm transformatorul de curent la dispozitiv și cablul USB micro îl legăm doar la dispozitiv (nu și la calculatorul personal).

În continuare punem transformatorul în priză după care legăm celalalt capăt al cablului USB la calculator.

În aplicația Device Manager ar trebui să vedem în secțiunea Other devices dispozitivul Gadget Serial v2.4 și pe pictograma corespunzătoare, un semn de avertizare galben. Aceasta ne sugerează că sistemul de operare a detectat dispozitivul dar nu l-a instalat corect.

Selectăm Gadget Serial v2.4 și din meniul afișat la clic dreapta alegem Update Driver Software.

update driver 1

În fereastra afișată selectăm Browse my computer for driver software și în dialogul afișat ulterior introducem calea către folderul drivers aflat în directorul în care am dezarhivat Arduino Software.

update driver 2

După aceea dăm clic pe butonul Next și confirmăm instalarea pe dialogul afișat ulterior.

După acest pas, ar trebui ca dispozitivul să fi dispărut din secțiunea Other devices și să apară în secțiunea Ports (COM & LPT).

În continuare este recomandat să se actualizeze firmware-ul de pe dispozitiv pentru a nu întâmpina probleme care au fost deja rezolvate de producător.

update firmware

În timpul procesului suntem avertizați să nu întrerupem alimentare cu energie electrică sau comunicarea cu calculatorul, pentru că acest lucru poate aduce dispozitivul într-o stare inutilizabilă. Dispozitivul poate fi recuperat și din această stare, doar că procesul va fi unul neplăcut fiind nevoie și de unelte (http://www.intel.com/support/galileo/sb/CS-035047.htm)


update firmware - 2update firmware - 3

După încheierea instalării, repornim dispozitivul, fie folosind butonul de reset de pe placă, fie întrerupând alimentarea cu energie și reluând-o după aceea.

Instalarea driver-ului pentru Linux și Mac OS X

Pentru Linux si Mac OS X nu trebuie instalat nimic special.

Pentru Linux trebuie pornit un terminal și din acesta, după ce a fost legat dispozitivul la calculator și la curent, trebuie rulată comanda: ls /dev/ttyACM*

Portul corespunzător dispozitivului Intel Galileo trebuie reținut, pentru că îl vom folosi pentru a rula aplicații pe acesta.

Pentru Mac OS X trebuie pornit System Information și în cadrul opțiunii Hardware/USB trebuie identificat dispozitivul Gadget Serial v2.4.

52dead56ce395f62618b4567

Acum suntem gata pentru a rula prima noastră aplicație pe un astfel de dispozitiv.

Blink, blink...

Pachetul software Arduino Software 1.6.0 conține si un mediu de programare. Acesta se pornește cu ajutorul executabilului arduino.

arduino software

Când pornim acest mediu, suntem întâmpinați cu o interfață simplă în care putem să experimentăm diferite lucruri.

O primă aplicație ar fi să pornim și să oprim LED-ul generic și să afișăm acest lucru.

Aplicațiile pentru astfel de dispozitive sunt formate din 2 subprograme de bază:

  • unul numit setup care se execută la pornirea aplicației (inclusiv la pornirea dispozitivului)
  • unul numit loop care se execută continuu, noi fiind responsabili cu momentele în care decidem să așteptăm.

Acum că am scris programul, să îl executăm.

Mai întâi, din meniul Tools, la secțiunea Board selectăm Intel Galileo sau Intel Galileo Gen2, iar de la secțiunea Port selectăm portul corespunzător.

blink on-off

După aceea din meniu File, opțiunea Upload pune aplicația pe dispozitiv, si imediat vedem cum beculețul se stinge și se aprinde.

Ca să vedem și textele ON și OFF trebuie ca din meniul Tools să alegem opțiunea Serial Monitor.

com3 output

Va urma...

În episoadele următoare vom vedea cum putem avea acces direct la sistemul de operare și cum putem face diverse trucuri.

Referințe

  1. http://www.intel.com/support/galileo/sb/CS-035101.htm
  2. https://learn.sparkfun.com/tutorials/galileo-getting-started-guide
  3. https://learn.sparkfun.com/tutorials/galileo-getting-started-guide/updating-firmware
  4. http://www.intel.com/support/galileo/sb/CS-035047.htm
  5. https://learn.sparkfun.com/tutorials/galileo-getting-started-guide/driver-installation#linux-driver
  6. https://learn.sparkfun.com/tutorials/galileo-getting-started-guide/driver-installation#mac-driver