Gli amministratori di CED hanno il problema di poter capire velocemente lo stato di un server. Non è ovviamente possibile collegare un monitor ad ogni host, e i KVM sono molto costosi e problematici da gestire, soprattutto in relazione alle diverse risoluzioni delle schede video. Sarebbe molto utile un sistema compatto, economico e di facile attivazione che visualizzi, mediante LCD, delle informazioni del computer a cui è connesso: temperature lette dai sensori interni, errori disco, partizioni che siano quasi piene, errori di rete, …
Una soluzione ottimale sfrutta una porta LCD sia per comunicare che per alimentarsi.
Il microcontroller è, ovviamente, Arduino, anche con riavvio al link seriale. Le caratteristiche sono esattamente quelle che servono: basso consumo, trasculabile erogazione di calore, e, di fatto, lo standard nel settore.
Il contenitore, per ora, è una scatola in policarbonato ad uso elettrico, a profilo basso e con LCD riportato lateralmente.
La scelta del LCD ricade sull’usuale due righe ma con retroilluminazione LCD. Infatti così sarà possibile il colpo d’occhio: verde significa nessun problema, giallo indica avvisi pendenti, rosso uno stato d’errore.
Il software lato host, detto agente, deve essere il più indipendente possibile da sistema operativo, avere le librerie per la comunicazione seriale, l’invio email, la connessione verso RDBMS.
In questa fase andremo a costruire l’agente izio in Python 2, linquaggio disponibile sia su MSWindows, Linux che OSX. In particolare ActiveState in ambito MS.
Useremo l’ottima libreria psycopg2.py e Postgresql come eventuale server centrale.
In ambito Linux consederiamo la gestione di udevadm per poter creare il servizio autoconfigurante in relazione a porta, device connesso e firmware utilizzato.
Il firmware rispetta le usuali convenzioni: insieme di comandi facilmente leggibili, per esempio backcolor r=10 g=20 b=30 oppure lcdout message=”messaggio”. In alternativa si può considerare l’insieme di convenzioni dell’ottimo progetto firmata.
Il servizo email ha il ruolo di canale per comunicare le emergenze. ReportLab permette di creare un PDF di rapporto che è possibile inviare via email.
Potremmo completare il sistema con alcuni sensori Grove: temperatura, sensore fumi e fiamme.
In conclusione l’agente legge gli stati del computer e dei sensori, ed invia comandi al microcontroller che visualizza mediante LCD.