Sv Pievani è una realtà bergamasca specializzata in lavorazioni per la preparazione superficiale di parti metalliche e plastiche. L’azienda ci ha contattato per realizzare un sistema di analisi e monitoraggio delle macchine in produzione usate per microfosfatazione, zincatura, lavaggio / sgrassaggio alcalino, sabbiatura ed applicazione adesivo per attacco G/M.

Sviluppo sistema di analisi e monitoraggio: le premesse

Il cliente aveva già al suo interno conoscenze sulla lettura dei segnali che possono essere interpretati da ogni singola macchina; dopo una fase di analisi congiunta è stato scelto Automation HAT by Pimoroni, un dispositivo che riunisce in un solo modulo molte funzioni grazie ai suoi relè, alle uscite alimentate, ai canali analogici ed agli ingressi con buffer. Automation HAT è compatibile con tutte le schede Raspberry PI con 40 pin.

Ogni macchina doveva avere il suo Raspberry Pi + Automation HAT collegato; ogni installazione aveva quindi bisogno di ricevere dalla macchina dei segnali da elaborare, rendere persistenti su un buffer locale e ad intervalli regolari inviare ad un database SQL Server per la successiva analisi. Il cliente aveva pertanto la necessità di essere autonomo nell’aggiungere e togliere macchine da monitorare, senza dover mettere mano a configurazioni e senza dover fare interventi manuali.

Abbiamo perciò deciso di sviluppare la soluzione utilizzando un sistema a microservizi e seguendo la metodologia 12-factor app.

L’iter realizzativo

L’applicativo lavora con 2 container Docker:

  • Il primo nominato “automationhat” si occupa del recupero e salvataggio locale dei segnali attraverso un microservizio Python che si appoggia sulle librerie fornite da Pimoroni;
  • Il secondo nominato “rpiloader” si occupa dell’elaborazione ed invio al database Sql Server attraverso un microservizio Spring Boot.

container docker

Il sistema utilizzato per gestire le release del software e la loro distribuzione ai dispositivi Raspberry e monitoraggio dello stato di health è balenaCloud.

Grazie a balenaCloud, un nuovo dispositivo viene registrato ed attivato alla sue funzioni semplicemente scrivendo col Etcher l’immagine base sulla microsd da inserire nel Raspberry prima della sua accensione. Una volta acceso il Raspberry, in pochissimi minuti, il sistema operativo di balena si registra al progetto nel cloud e scarica l’ultima versione del software, avvia i 2 container ed inizia il suo lavoro.

Potrebbe interessarti: tutti i vantaggi di BalenaOS

L’immagine base inizialmente usata non contiene nessuna versione del nostro software, ma solo il sistema operativo ed i riferimenti al progetto cloud. L’installazione dell’ultima release ed i successivi aggiornamenti vengono gestiti in automatico da balenaCloud.

raspberry - balenacloud

Un nuovo aggiornamento del software seguirà il seguente workflow: al termine della modifica al codice sorgente verrà fatto un commit e push verso il repository GIT di balenaCloud, il quale farà da trigger al sistema di building automatico delle immagini Docker ed alla creazione di una nuova release. Al termine del processo tutti i Raspberry riceveranno l’aggiornamento automaticamente.

Sarà dunque possibile attraverso la dashboard web vedere tutti i Raspberry che compongono il progetto e per ognuno di essi avere informazioni dettagliate sul networking, stato delle risorse (cpu, ram, disco) e log dell’applicativo.

raspberry dettaglio networking

Con grande soddisfazione da parte del team di SV Pievani, il sistema è studiato per essere resiliente e capace di far fronte a riavvi improvvisi, problemi di rete o altro ancora.

Hai bisogno di sviluppare un progetto ad hoc? Contattaci!