Salut tuturor!
De curând am lucrat în timpul liber la proiectul meu mic care folosește Raspberry Pi și .NET. Acum am introdus o tehnologie nouă, Android!
Proiectul avea nevoie de un front-end și mi-a luat mult timp să decid cum să-l implementez și ce tehnologie să folosesc.
Am ezitat între o aplicație desktop multiplatformă și o aplicație web. Inițial credeam că Electron ar fi o alegere excelentă, pentru că acoperă ambele variante, dar nu funcționează din prima cu gRPC, iar eu aveam nevoie de niște proxy-uri care complicau lucrurile pe backend, fără să mai vorbim că JavaScript este groaznic în tot felul de moduri imaginabile.
Din fericire, am început să mă joc cu Android și, cumva, am reușit să pun în picioare o activitate simplă care citește datele din componenta NucuCar.Sensors.
Se conectează direct la ea prin gRPC. Recunosc că nu mă așteptam ca instalarea gRPC pe Android să fie atât de ușoară: poți urma pur și simplu tutorialul gRPC pentru Java și totul funcționează.
Faptul că asta a mers m-a motivat și am reparat niște bug-uri din componenta NucuCar.Telemetry. Asta a făcut posibil ca NucuCar.Sensors să ruleze patru zile la rând, non-stop, fără să se blocheze, și încă rulează în momentul acesta.
Componenta trimite citirile senzorilor către Firestore la fiecare minut. Deoarece o zi are 24 de ore, trimite în jur de 1,4 mii de citiri pe zi.
În acest moment sunt destul de mândru de proiect. Am scris un script Python simplu care reprezintă grafic temperatura, umiditatea și rezistența VOC din apartamentul meu, pentru ultimele 3 zile:
După cum se vede, vârfurile din 2020-11-28, ora 12:00, arată că am deschis geamurile și am lăsat aer proaspăt să intre în apartament. Temperatura și umiditatea au scăzut, în timp ce rezistența VOC a crescut. Cu cât valoarea VOC este mai mare, cu atât calitatea aerului este mai bună.
Acest proiect este open-source și poate fi găsit pe profilul meu de Github.
Mulțumesc că ai citit!