Internet of Things, sau IoT, transforma industrii si experientele utilizatorilor la nivelul intregii economii globale, aducand o schimbare semnificativa in modul in care este generata valoarea pentru consumatorul final, de la reducerea costurilor de productie, la imbunatatirea eficientelor in zonele de servicii si de cercetare – dezvoltare. Software-uri, senzori si conectivitatea sunt din ce in ce mai des integrate in produsele nou-proiectate si fluxurile de date sunt capturate si analizate in timp real. In acest fel, produsele pot fi imbunatatite prin acces de la distanta si prin intermediul aplicatiilor de servicii post-vanzare, accelerand inovarea produselor inteligente si livrand un plus de valoare prin serviciile integrate de-a lungul intregului ciclu de viata al produsului.

Iata cateva dintre aplicatiile pentru care expertiza noastra poate fi de folos, ajutandu-va afacerea sa se diferentieze si sa fie mai competitiva in lumea IoT:

  • Aplicatii pentru consumatori – tehnologie wearable, detectare smartphone, aplicatii de e-Health, fitness, automatizarea locuintelor, electronice si electrocasnice accesibile de la distanta, detectarea intrusilor, servicii pentru clienti, infotainment, vehicule inteligente, parcare inteligenta, monitorizarea congestiilor de trafic
  • Aplicatii industrial – optimizarea liniilor de asamblare, aplicatii de auto-diagnoza M2M (machine-to-machine), roboti pentru manipularea componentelor, monitorizarea calitatii aerului, a temperaturii si a umiditatii, a consumului de resurse, aplicatii logistice, precum cele de monitorizare a flotei auto, controlul lantului de aprovizionare, aplicatii pentru urgente si servicii de protectie

Tehnolgiile pe care le folosim pentru acest tip de proiecte includ: Arduino, Raspberry PI, ATMEL Studio, C++, Bluetooth, WiFi, Fog Computing, Microsoft Azure, R (limbaj de analiza a datelor), C# .NET, SD, I2C.

Exemplu de proiect: Motion capture & Analysis R&D project

In primele trei luni ale proiectului, i-am oferit o echipa dedicata compusa din doi specialisti, ce au lucrat la transformarea conceptului de motion capture & analysis in realitate:

  • In timpul sesiunilor de antrenament, atletii vor putea purta un set de senzori ce colecteaza informatii despre miscarile lor;
  • Pe baza acestor informatii, cu ajutorul unor algoritmi de machine learning, se va stabili un nivel de baza al performantei, cu care se vor compara apoi informatiile aferente performantelor urmatoare;
  • In urma acestei analize, se vor face recomandari de imbunatatire, iar atletii vor primi o reprezentare vizuala a miscarii ideale.

Toate datele despre miscari sunt colectate si monitorizate cu ajutorul Microsoft Azure pentru machine learning si un algoritm de invatare compara aceste date cu recordul anterior al sportivului.

Parametrii de determinare a performantei optime depind de sportul specific pentru care se utilizeaza aplicatia – de la baseball si tennis pana la discipline de atletism.

Unul dintre expertii nostri este responsabil de partea de hardware a acestei solutii, in timp ce celalalt se ocupa de partea de analiza a datelor. Tehnologia din spatele aplicatiei se bazeaza pe un microcontroller Arduino si 3 senzori MEMS incorporate intr-o placa FreeIMU: un accelerometru, o busola si un giroscop.

Informatiile sunt salvate pe un card SD si transferate pe cloud prin Bluetooth. Sportivul poate accesa informatia pe smartphone-ul sau pe calculatorul sau, printr-o interfata intuitiva.

Am optat pentru un microcontroller Arduino deoarece, in comparative cu alte tool-uri pentru physical computing, acesta ofera cateva avantaje semnificative:

  • Costa mult mai putin
  • Necesita mult mai putin curent electric, cee ace determina o mai mare mobilitate si autonomie a dispozitivului
  • Este foarte scalabil, atat ca software cat si din punct de vedere al componentelor hardware – totul este open source si poate fi extins

Totusi, aceasta optiune a ridicat si cateva provocari din punct de vedere al performantei, pe care expertii nostri au trebuit sa le depaseasca: au inlocuit librariile Arduino cu aplicatii custom Atmel Studio 6, scrise in C++, astfel optimizand viteza de citire de la 27 citiri / secunda, la 700 citiri / secunda. Alte imbunatatiri au inclus:

  • Sporirea de 4 ori a vitezei librariilor
  • Optimizarea procesului de scriere pe cardul SD
  • Simplificarea utilizarii cablurilor dispozitivului wearable (astfel incat sportivul sa nu arate ca un cyborg!)
  • Facilitarea recunoasterii gesturilor cu acuratete optima
  • Imbunatatirea acuratetei senzorilor, atingand niveluri de sensibilitate de +-2g , +-4g, +-8g, +-16g in cazul accelerometrului si de 200-2000rad/s in cazul giroscopului

Proiectul este inca in desfasurare si suntem foarte entuziasti sa ne numaram printre deschizatorii de drumuri in domeniul programarii hardware in Romania.

Exemplu de proiect: CanGINE2 Tachograph

CanGINE2 este o aplicatie folosita in managementul flotei auto pentru companii de distributie.

Aplicatia ajuta companiile sa descarce de la distanta datele tacografului printr-o conexiune 3G sau wi-fi, direct de la soferii echipati cu smartphone-uri Android 2.3+.

Foloseste o conexiune Bluetooth, pentru autentificarea de la distanta a tacografului de pe vehicul, si un card al companiei plasat in siguranta intr-un cititor inteligent de carduri, pe un server Windows XP+.

Intreaga secventa de descarcare este gestionata de catre aplicatie, deci prin simpla apasare a unui buton, datele tacografului vor fi salvate pe cardul SD in format .DDD. Informatiile pot fi accesate apoi de pe telefon de la distanta, de la sediul companiei, prin Wi-Fi sau 3G.

Se preteaza tuturor dispozitivelor de tip tacograf ce folosesc un protocol CAN, prin dispozitivul CANGine2 si un LM048 conectat serial la dispozitivul Bluetooth.

Tehnologii folosite:

  • protocol CAN
  • Bluetooth SPP
  • conexiune TCP
  • REST Web Service
  • GSM
  • Push Notification
  • Presentation layer: XML
  • Android 2.2 +

Caracteristici:

  • Descarcarea si afisarea informatiilor: dispozitivul Android este conectat la dispozitivul Bluetooth LM048, care la randul sau este conectat la modulul CanGINE2 si la tacograful VDO. Faciliteaza descarcarea datelor din tacograf pe telefon si afiseaza informatiile pe ecranul tactil.
  • Categorii de informatii ce pot fi descarcate: Events and Faults, Overview, Technical Data, Detailed Speed, Driver Data.
  • Notificari Push: sistemul foloseste push notifications pentru a informa soferul despre initializarea descarcarii.
 

Project sample: Home automation

This project aimed to optimize the thermal comfort within a home equipped with electric heaters. All heaters had thermostat, but the type that only took into account the indoors temperature, not the difference between indoor and outdoor. The goal was to adjust the heaters’ output so that optimal thermal comfort could be achieved for each room, taking into account not only outdoor temperature, but also the desired temperature level depending on the room’s function, time of day, moment, timespan and temperature conditions while the windows are open and many other factors.

The system was designed to enable remote control, programing in advance for holiday modes and estimations of future electricity consumption based on previous usage. It’s also meant as a proof-of-concept for further applications that will allow users to remotely control carbon monoxide sensors, electronic blinds, anti-flooding sensors and anti-burglary systems, by using an application on their smartphone.

Building this system involved the purchase of weather stations equipped with TFA sensors that register temperature and humidity levels every minute, and placing one in each room in the house. An RF module then uses a 433.92 MHz radio protocol for wireless communication with a central unit, which consists of a Raspberry Pi receiver and emitter enclosed in a router housing.

The weather station’s sensor relays the temperature to the Raspberry Pi receiver. The central unit then determines if it’s necessary to turn off the electric heater or adjust its output on a 1 to 7 scale, in order to achieve a pre-set indoor temperature. The heaters are plugged into remote control sockets, which are controlled by the Raspberry Pi emitter in the central unit.

One of the challenges was caused by interferences with the radio protocol, which required the use of e pre-filter to eliminate most of the noise on the frequency. However, there was still enough interference that passed the firmware filter so that the heaters wouldn’t always start on the first command from the Raspberry emitter. This was solved by programming a second command, to follow 5 seconds after the first one, to ensure that the heaters would pick it up.

Pilight version 5 was the open source software installed on the Raspberry Pi device, to enable communication with its emitter and receiver over the 433 MHz protocol. Pilight was used as a plugin for Pimatic, a home automation server and framework for the Raspberry Pi running on node.js.

This software solution enables the user to define specific rules that regulate how the electric heater in each room operates, based on indoor temperature preferences, outdoor-indoor temperature differences, preferred modes for morning / evening / holidays etc. It also detects the user’s presence in the house, by detecting their smartphone, and additional settings can be programmed depending on whether the user’s at home or not.

Another sensor placed on the window in each room detects whether or not the window is closed and this enables the system to switch to a ventilation mode and turn off the heaters until the window is closed.

Based on the information collected by the outdoor temperature sensors, the user can obtain a graphic representation of the indoor – outdoor temperature correlation and estimate future energy costs by day / week / month / season.

The automation system is entirely controlled by a wireless dongle. To achieve this, while avoiding time-consuming reverse engineering on the electric sockets, an SDR antenna receptor was used. It captures, saves and clones the signal from each separate button on the remote control for the sockets and relays it to the radio dongle.

By using pre-existing solutions, building the entire automation system required a budget of less than 200 euros and achieved great performances in terms of comfort and energy costs: the temperature variations were brought down to +/- 0.3 Celsius degrees, while year round energy expenses were cut by 30%.