Archivi tag: cubieboard2

Aggiornamento @home!

Gli eventi del mese di dicembre sono stati veramente importanti per la mia vita. Ma questo è un blog in cui non tratto molto volentieri le mie vicende personali. Pertanto… la permanenza a casa ha comportato che io mi sia finalmente reso conto che l’attuale “server” di casa è arrivato alla frutta.

Attualmente il sistema domestico “gira(va)” su una Cubieboard 2, un aggeggio hardware poco documentato e meno supportato. Dopo lunghe peripezie sono riuscito a farlo funzionare “bene” con notevoli difficoltà per utilizzare in modo dignitoso le GPIO. Ultimamente il dispositivo ha dimostrato una certa instabilità: il web server restituisce “connection refused” e, dopo il riavvio, non viene caricata la shell. Probabile che anche la SD sia arrivata alla frutta, ma anche le risorse di sistema sono allo stremo. Il database con gli eventi meteo è sempre più grande, vorrei implementare anche un ricevitore per i sensori che operano a 433 MHz (vedi altro post). Non è possibile andare avanti con questo hardware, pertanto ho preso una decisione drastica: nuovo server.

L’ideale sarebbe stato prendere un computer refurbished (tipo HP 8300) come quello che sto usando (da un anno) in ufficio. Grandi prestazioni, ottima robustezza, grande silenziosità. Solo che adesso 200 euro per un simile sistema non li voglio spendere. Pertanto l’idea: utilizzare il vecchio portatile Dell XPS13 (1340) del 2009. Il monitor è praticamente andato (funziona solo tenendo lo schermo aperto a 95,33°, ma la cpu funziona bene, ha 8GB di ram e 2 USB 2.0. La CPU è un dual core, non ci farò sicuramente virtualizzazione ma per lo scopo è ottimo. Ingredienti: un nuovo alimentatore ed un pacco batteria.

Proprio ieri sera ho terminato la migrazione dei sistemi, con qualche grattacapo per fare funzionare mailutils. Adesso devo trovare un modo per aggiungere delle GPIO al portatile, in modo da potere controllare dei relè ed avere degli ingressi analogici e digitali magari consultabili in Python. Ci sto lavorando… piano piano!

Cubieboard – nuovo sistema operativo

Il mio scarso amore per questa scheda non è mai stato celato. Ritengo questo progetto davvero male gestito e male documentato. Fino a qualche settimana fa ho utilizzato un sistema operativo piuttosto datato sulla scheda, che mi ha fatto letteralmente impazzire per configurare alcuni software. Dopo due anni di onorato servizio (la CB2 sarà tosta da configurare ma è davvero granitica), ho deciso di cambiare sistema operativo. Mi sono rivolto ad ARMBIAN, in particolare alle informazioni che possono essere acquisite QUI.

Il sistema è andato su in modo meraviglioso, senza troppi problemi. Non funziona la connessione HDMI (nessuna nuova) ma il resto è perfetto. Non solo: essendo un sistema “moderno” supporta python 3 e php7 e questo ha reso del tutto inutilizzabile il sistema di gestione del meteo (amarezza e tristezza). Vale la pena di installarlo e riscrivere tutto (sigh) da capo.

ARMBIAN: segnatevi questo nome!

[DISPLAY_ULTIMATE_SOCIAL_ICONS]

Un altro progettone!

Non sono un appassionato di meteorologia, sono semplicemente un “meteocurioso”. Mi piace conoscere la misura dei principali parametri meteorologici e poterne studiare la loro evoluzione nel tempo. Tanti anni fa avevo un quaderno in cui annotavo temperatura massima e minima del giorno. A dire il vero lo faceva mamma… io mi scordavo 2 volte su 3.

Ai tempi della tesi di dottorato avevo rispolverato un paio di componenti molto interessanti per la misura della temperatura ed umidità e pressione ed umidità. Si tratta di SHT21 della Sensirion e del MPL115A della NXP. Due prodotti molto interessanti, piccoli e facili da leggere, soprattutto con una raspberrypi. All’epoca avevo anche realizzato un mini-sito nella raspberry per potere analizzare l’andamento dei parametri meteo e poterlo confrontare con la variazione delle grandezze elettriche che erano oggetto del mio studio.

A distanza di alcuni anni, ho notato in commercio due oggetti che hanno riacceso il “fuoco sacro” della sperimentazione:

  • ESP8266, un chip Wi-Fi a basso costo con un microcontrollore Arduino-compatibile integrato;
  • BME 280, un sensore Bosch capace di rilevare temperatura, umidità e pressione.

Ho deciso quindi di realizzare una stazione meteo, che non pretende di entrare in competizione con prodotti commerciali ma che può soddisfare la mia curiosità meteorologica. Il progetto prevede l’integrazione di numerosi sensori e componenti aggiuntivi:

  • schermo solare, realizzato con i sottovasi ed il tornio;
  • sensore di temperatura umidità e pressione;
  • sensore di direzione del vento;
  • sensore di velocità del vento;
  • sensore di presenza pioggia.

 

I dispositivi sono stati acquistati tutti su Aliexpress, attendendo i canonici 30,40,50 giorni per la consegna. Particolarmente positivo è stato il giudizio nei confronti dei sensori di direzione e velocità del vento: ben costruiti, con ottimi cuscinetti e connessioni stagne. Considerato il prezzo di acquisto il prodotto è davvero interessante.

ESP8266 si occupa di raccogliere tutti i dati, impacchettarli e consegnarli via metodo http post al server per il loro immagazzinamento nel database. Il database è MySQL in esecuzione sulla solita Cubieboard. I dati sono presentati attraverso una interfaccia web “triviale” ed è possibile anche tracciare dei grafici relativi all’andamento delle grandezze nell’arco di 24,48 ore o una settimana. Nello screenshot seguente si vede la tabella riepilogativa dei sensori presenti in cui sono riportate le principali grandezze misurate. Il sensore pioggia è in errore a causa di un malfunzionamento.

Questa immagine mostra i dettagli del sensore. Una tabella riepiloga massimi, minimi e valori medi delle grandezze misurate.

I grafici mostrano l’andamento nel tempo delle grandezze, sono realizzati con la libreria JpGraph.

I problemi da risolvere sono stati tantissimi, molti dovuti alla mia proverbiale incapacità di programmatore. Malgrado le difficoltà, il sistema è attualmente in produzione e funziona in maniera piuttosto stabile. Ho notato una certa imprecisione del sensore di pioggia, che mi era stata segnalata anche da un collega. Non mi sorprende, considerando il prezzo di acquisto del dispositivo. La maggiore difficoltà la ho avuta nel gestire lo stato della connessione di ESP8266: nella prima stesura del codice effettuavo un controllo di connessione solo in fase di “setup” del dispositivo. Con questo approccio errato, in caso di caduta della connessione Wi-Fi, le funzioni che cercano di scrivere su un socket rallentano o bloccano l’esecuzione del codice. L’inserimento di controlli sullo stato della connessione ed eventuale riconnessione, ha reso il funzionamento del sistema molto più stabile.

Ho sviluppato il sistema con l’IDE di Arduino. Non amo particolarmente questo sistema ma lo ritengo comodissimo per questo tipo di applicazioni ludico-ricreative. Sviluppare il progetto con il PIC sarebbe stato un pianto (per me…) integrare una chip Wi-Fi con stack tcp/ip sarebbe stato oneroso e, forse, inutile. Ben vengano queste agevolazioni quindi, soprattutto se sono ben consolidate ed affidabili.

Il codice è a disposizione su richiesta, appena avrò tempo di epurarlo dai dati personali sarà pubblicato sul sito nella sezione download.