Archivi tag: armbian

Monitoraggio Sensori – Configurazione Grafana

Dopo aver configurato nodered per inoltrare i dati ai database, si utilizzano dei sensori di temperatura ed umidità con ESP8266, come già visto negli articoli precedenti

Mqtt con Beaglebone ed ESP8266 – Lista Articoli

Di seguito il firmware utilizzato ed il codice per l’invio dei dati dei nodi ESP8266

Firmware ESP8266

Temperatura-Umidià ESP8266

All’interno dello zip del firmware è presente lo script per eseguire l’upload del firmware sulla porta COMX (da modificare nella propria porta COM) su windows.

Nel codice LUA invece occorre inserire i dati del proprio router wireless, l’ip del server mqtt, le impostazione della stanza, sostituendo roomx, con room1, room2,ecc.

Si può quindi impostare Grafana, accedendo alla Dashboard, aggiungendo come sorgenti dati Mysql ed InfluxDB

grafanaSourceCon Add data source si accede alla schermata dei Data Source, da cui si scelgono InfluxDB e MySql

grafanaAddSourceDi seguito le impostazioni eseguite per InfluxDB e MySql

InfluxDBInfluxDBESPMySqlMySqlESPLe due connessioni sono presenti nella configurazione dei datasource

AllDataSource

Di seguito l’export delle due Dashboard usate nell’articolo da importare sul proprio sistema con il pulsante Import

importDashboards

Dashboards

Ecco la schermata della Dashboard ESPRealtime con i dati reperiti su InfluxDB

RealTimeGrafanaPer visualizzare lo storico dei dati, si utilizza MySql con la Dashboard ESPHistory

HistoryGrafana

 

Monitoraggio Sensori – Configurazione Nodered

A questo punto impostiamo nodered per leggere i messaggi su Mosquitto ed inserire i dati in InfluxDB e MySql.

Di seguito il file json da importare in nodered

Json Nodered

Tale flusso è funzionale alla spiegazione del funzionamento della architettura nel complesso; il flusso deve essere ottimizzato programmando nodered in modo da generare automaticamente le informazioni dei nodi da cui arrivano i dati senza ricorrere a diversi nodi per ciascun sensore.

Per eseguire l’import procedere come segue, dopo aver acceduto a nodered

http://dashboardora.local/nodered

e dopo aver cliccato sul menù a destra, scegliere di importare il json da clipboard

importFlowsAlla schermata successiva, scegliere di importare il file json in un nuovo flusso

flowUna volta importato, impostare le credenziali per accedere a MySql ed InfluxDB, selezionando dal menu a destra Configuration nodes ed impostando utenza e password

configureNodesVengono mostrate le connessioni ai db e mosquitto

configureNodesDBDi seguito l’impostazione di MySql, accedibile cliccando con il mouse due volte su ESPMYSQL

MySqlSetting

Con Update si aggiorna il nodo.

Per rendere operativi i flussi cliccare su Deploy

deployOra con nodered prendiamo il contenuto dei vari topic mqtt e li inseriamo all’interno di MySql e di InfluxDB.

Nel prossimo articolo visualizziamo tali dati in Grafana

Monitoraggio Sensori – Configurazione Grafana

 

Monitoraggio Sensori – Configurazione InfluxDB

Dopo aver creato le tabelle su MySql

Monitoraggio Sensori – Configurazione MySql

si procede alla creazione di un database  su InfluxDB.

Come prima operazione si attiva un utente amministrativo sul sistema, come descritto al link

Autenticazione ed autorizzazione

Si accede al db dal client locale eseguendo da una shell il comando influx

Si esegue

Si imposta nel file /etc/infuxdb/influxdb.conf, con l’utenza root di Debian o mediante sudo, il parametro auth-enabled  da false a true

Si fa ripartire InfluxDB

Si accede in una shell su Debian e si crea il database DATAESP con il seguente comando

Inserire le credenziali di admin al comando auth e procedere alla creazione del database

Di seguito il risultato dei comandi sopra elencati

datainfluxdb

Per la gestione del database Influxdb, è possibile installare Chronograph

Chronograph

Il download di Chronograph è disponibile al link

Chronograph Download

L’installazione può essere eseguita in due modalità.

Avvio applicazione

Accedere con l’utenza monitor ed eseguire in una shell

Avviare l’applicazione chronograf

 

Avvio Servizio

Accedere sempre con l’utenza monitor; eseguire in una shell

Nella cartella /opt/chronograf/usr/lib/chronograf/scripts esistono gli scripts per l’avvio automatico di chronograf.

Di esguito le operazioni eseguite nel nostro sistema:

  • Copiare /opt/chronograf/usr/lib/chronograf/scripts/init.sh in /etc/init.d/chronograf ed assegnare i permessi di esecuzione

  • Copiare /opt/chronograf/usr/lib/chronograf/scripts/chronogaf.service  in /etc/systemd/system/chronograf.service

Cambiare in entrambi i file l’utenza ed i path dei vari componenti di chronograf, ossia l’utenza in monitor ed i path che puntano a /opt/chronograf

Di seguito il link ai file modificati

Avvio Automatico Chronograf

Dopo la modifica eseguire

Per abilitarlo all’avvio ed avviarlo eseguire

Dopo aver avviato chronograf in una delle modalità descritte sopra è possibile accedervi  mediante browser e porta 8888

http://dashboardora.local:8888

ChronografPremere Get Started ed impostare la connessione e le credenziali dell’utenza admin con relativa password definito prima

Chronograf2conImpostare la dashboard di Influxdb

ChronografDashboardNon impostare la componente Kapacitor

Chronograf3Completare la configurazione e cliccando su View All Connections

Chronograf4si accede alla connessione appena creata

ChronografConnections

Tale componente potrà essere utile in seguito per gestire e monitorare InfluxDB.

Nel prossimo articolo si inseriscono su nodered le regole per popolare i database MySql ed InfluxDB con i dati inviati dai sensori

Monitoraggio Sensori – Configurazione Nodered

 

Monitoraggio Sensori – Configurazione MySql

Dopo aver installato il software su Orange Pi PC procediamo alla configurazione degli stessi

Monitoraggio Sensori – Preparazione Ambiente 2

Creazione Tabelle su MySql

Su MySql sono state create 3 tabelle contententi i valori di temperatura, umidità e pressione dei sensori.

Di seguito il modello

Modello MySql

da importare in MySql Workbench

ESPModelloUna volta importato si accede al menù Database->Forward Engineering e si importano le tabelle sul proprio sistema MySql presente sull’Orange Pi PC, immettendo l’utenza root di MySql e relativa password

ESPImport

Alla schermata successiva si utilizza la connessione creata su MySql Workbench per connettersi al database

ESPImport1

Lasciare tutto di default ed inserire la password di root quando richiesto.

Le tabelle ora sono presenti sul database

ESPTablesNel prossimo articolo si configura InfluxDb per la ricezione dei dati in tempo reale dai sensori

Monitoraggio Sensori – Configurazione InfluxDB

 

Monitoraggio Sensori – Preparazione Ambiente 2

Dopo aver installato parte dei componenti software nel precedente articolo

Monitoraggio Sensori – Preparazione Ambiente

continuamo tale operazione con il presente articolo.

Infludb

Si procede alla installazione di Influxdb secondo quanto indicato al link

Influxdb

Per Debian 9 si esegue

Controllare che il tutto funzioni correttamente eseguendo la connessione con il client

infux

Nodered

Si procede alla installazione di node.js

Si installa quindi nodered, come indicato al link

Installazione nodered

Per eseguire all’avvio di Armbian nodered si utilizza lo script presente al seguente link

Autostart nodered

Non abbiamo eseguito lo script automatizzato, ma eseguiti i seguenti passi

Editare /etc/init.d/nodered e modificare l’utente da pi a monitor, ossia cambiare il parametro

in

Eseguire

Avviare nodered

Controllare che nodered risponda accedendo con il browser al link

http://dashboardora.local:1880

noderedRiavviare il sistema e controllare che nodered si avvii automaticamente.

Procedere alla installazione dei moduli aggiuntivi di nodered

Grafana

Si procede al download alla versione per arm

Grafana per ARM

Abilitare e far partire Grafana

Accedere al sistema mediante l’url

http://dashboardora.local:3000

collegarsi con l’utenza admin e password admin; procedere al cambio della password

GrafanaUna volta impostata la nuova password si accede alla interfaccia di impostazione

Grafana2Nei prossimi articoli eseguiremo le impostazioni per poter visualizzare i dati dei sensori.

Installazione reverse proxy

Per poter accedere al sistema attraverso la porta 80 del server http si può utilizzare nginx come reverse proxy

nginx

Se si utilizza nginx come proxy si disabilita apache

Si procede alla installazione di nginx

Si configura il tutto per accedere ai due sistemi mediante i seguenti link

http://dashboardora.local/nodered per nodered

http://dashboardora.local/grafana per grafana

Per grafana si segue la documentazione ufficiale

Grafana proxy

Si procede quindi a modificare il file /etc/grafana/grafana.ini modificando i parametri domain e root_url; nel nostro caso si modifica tale sezione come segue

Si configura quindi nginx, creando nella cartella /etc/nginx/sites-available  il file servizi con il seguente contenuto

Di seguito la configurazione di nginx

Configurazione nginx

Si esegue il seguente comando

e si fanno ripartire i servizi grafana e nginx

A questo punto è possibile accedere ai due servizi mediante il link

http://dashboardora.local/nodered

nodered-nginx

http://dashboardora.local/grafana

grafana-nginxNel prossimo articolo si inizia la configurazione dei vari moduli necessari per la gestione del sistema

Monitoraggio Sensori – Configurazione MySql

Monitoraggio Sensori – Preparazione Ambiente

Nella impostazione della infrastruttura per il monitoraggio dei sensori costituiti da dispositivi ESP8266 in articoli pubblicati in precedenza

Mqtt con Beaglebone ed ESP8266 – Freeboard

si era impostato Freeboard per la visualizzazione dei dati provenienti dai sensori.

In questa nuova serie di articoli, si intende impostare Grafana

Grafana Dashboard

come ambiente per visualizzare i dati dei vari sensori.

L’ambiente in questo caso lo implementiamo su una scheda Orange Pi PC, ma può essere utilizzato altro sistema arm o pc.

Di seguito l’architettura utilizzata in questa serie di articoli

archGrafana

Nel corso di questi articoli si useranno utenze con il massimo delle autorizzazioni per ciascun ambiente, non si useranno autorizzazioni su mosquitto e non vengono utilizzare connessioni cifrate. In un ambiente di test tale impostazione va bene, ma in un ambiente di esercizio occorre impostare le corrette autorizzazioni e possibilmente le cifrature nelle connessioni in tutti gli ambienti.

Abbiamo installato una versione da noi compilata di Debian 9 Stretch per Orange PI PC. L’immagine usata è la seguente

Download Immagine

E’ stato creato l’utente monitor, mentre l’hostname è stata rinominato in dashboardora. Se non installato procedere ad installare il demone avahi

In tale modo i servizi sono accessibili tramite la pubblicazione dell’hostname, utilizzando dashboardora.local.

Utilizzando la utility armbian disabilitare ip6 sul sistema; per eseguire tale impostazione lanciare armbian-config

ipv6Disable1Procedere alla disabilitazione dell’ip6

ipv6Disable2

Come primo passo installiamo il broker mqtt mosquitto

Installare i servizi http ed i database Mysql e MySqlWorkbench

Apache2

e vari prerequisiti

Avviare apache

e controllare che il server risponde all’indirizzo web, che nel nostro caso corrisponde a http://dashboardora.local

apache

MySql

Con Debian 9 si installa MariaDB; bisogna impostare la password dell’utenza di amministrazione root del database con il seguente comando

Impostiamo la password di root e la possibilità di accesso da altri host come root

mariadb-secure

Il resto delle opzioni scelte sono elencate di seguito

mariadb-secure2

Installiamo  phpmyadmin per la gestione del database

Alla schermata successiva scegliere apache2

phpmyadmin

Infine  scegliere NO

phpmyadmin1

Eseguire i comandi di seguito elencati

Controllare che il sistema funzioni correttamente accedendo tramite web browser aggiungendo all’indirizzo di apache phpmyadmin, nel nostro caso

http://dashboardora.local/phpmyadmin

phpmyadmin2

Collegarsi con le credenziali di root del database.

Per poter accedere dall’esterno occorre abilitare mariadb ad accettare connessioni da altri host. Per tale scopo accedere in

ed editare come root il file 50-server.cnf, modificando l’impostazione

in

Per consentire all’utente root del database di poter accedere da un client esterno, occorre accedere su mariadb localmente con il suo client ed abilitare tale opzione; si esegue pertanto quanto segue

 

Installazione su PC di Mysql Workbench

Accedere al link

MySql Workbench

e scaricare la versione per il proprio sistema operativo per poi procedere alla installazione.

Sulle distribuzioni Linux è presente anche nei repository.

Dopo aver configurato la connessione si accede alla schermata di controllo del systema MySql

MySQLWorkbenchNel prossimo articolo continueremo la installazione degli altri componenti per il monitoraggio  dei sensori

Monitoraggio Sensori – Preparazione Ambiente 2

Configurazione OctoPrint su Orange PI PC – Stampa file di test

Dopo aver configurato la stampante sul server OctoPrint

Configurazione stampante

impostiamo i parametri di connessione alla stampante.

Dopo esserci connessi sul server OctoPrint con l’utenza di accesso octoprint/password si imposta la connessione della stampante

octoprint-connessione

Con queste impostazioni è possibile stampare un file gcode già generato con Cura o Slic3r

Cura

Slic3r

o fare l’upload di un file stl su cui verrà eseguito lo slice mediante il profilo cura caricato e la CuraEngine presente sul sistema Orange Pi PC.

Nel caso in cui si importa un file stl, viene proposto lo slicing del file

octoprint-sliceA questo punto è presente il file pronto per stampa

octoprint-filesliced Avviata la stampa si può controllare l’avanzamento, temperatura

octoprint-progressbare gli strati che si stanno creando

octoprint-sliceprogress

In tale esempio sono state utilizzare le impostazioni basilari per poter procedere ad un primo avvio del sistema.

Per ulteriori informazioni e configurazioni su OctoPrint fare riferimento alla documentazione del software

Documentazione Octoprint

Al seguente link, invece,  sono elencate le stampanti supportate

Stampanti supportate

Configurazione OctoPrint su Orange PI PC – Configurazione stampante

Dopo aver definito anche la pubblicazione dell’hostname

Pubblicazione Hostname

si passa a questo punto alla configurazione della stampante.

ATTENZIONE: L’ utilizzo delle impostazioni mostrate è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tali impostazioni generino malfunzionamenti o rottura della stampante.

Al primo accesso ad OctoPrint vengono richiesti i parametri fondamentali per la gestione della stampante. Nel nostro caso colleghiamo l’Orange PI PC ad una stampante 3d Anet A8 mediante la porta USB. Al primo accesso all’indirizzo

http://3dprinter.local

ci viene mostrata una maschera di configurazione

octoprint-accesssi preme next e si accede alla maschera successiva in cui si definisce l’utenza che ha la gestione della stampante con relativa password

octoprint-accesscontrolsi preme Keep Access Control e dopo il caricamento si passa al controllo della connessione Internet in cui disabilitiamo il Connectivity Check

octoprint-accessconnectivityAl passo successivo si inserisce il percorso all’eseguibile CuraEngine, compilato nell’articolo precedente

Installazione OctoPrint

e si importa un profilo di default per cura per la stampante Anet A8

octoprint-printerprofile

octoprint-curaengine

Il profilo importato deve essere generato da Cura 15.04.x o inferiore. Di seguito il link alle varie versioni del software Cura

Cura

Si impostano poi i parametri della stampante, nel nostro caso Anet A8

octoprint-printer1Si definiscono le dimensioni del piatto ed il volume

octoprint-printer2Al passo successivo si definisce la velocità di spostamento mediante il pannello di controllo; impostiamo dei parametri conservativi

octoprint-printer3Si impostano infine i parametri dell’estrusore

octoprint-printer4Alla schermata successiva si inseriscono i comandi da inviare a Debian direttamente dalla interfaccia web di OctoPrint; si impostano nel modo seguente

 

octoprint-command

dove in password va inserita la passord per eseguire i comandi di root su Debian.

Si inserisce per l’aggiornamento software la cartella in cui è presente OctoPrint

 

octoprint-swupdatePer la webcam  non inseriamo nulla

octoprint-webcamSi conclude infine la configurazione con il tasto Finish.

Si conclude infine la configurazione con il tasto Finish.

Per ulteriori impostazioni ed addon di OctoPrint fare riferimento al sito

OctoPrint

 Nel prossimo articolo stampiamo un modello di test

Stampa file di test

Configurazione OctoPrint su Orange PI PC – Pubblicazione hostname

Dopo aver configurato haproxy per la fruizione dei contenuti in http sulla porta standard

Installazione HAProxy

si può configurare la macchina Linux in modo da pubblicare il nome sulla rete con il demone avahi.

Nelle macchine Linux e OSX tale servizio è visibile nativamente, mentre per i sistemi Windows occorre installare il servizio Bonjour

Bonjour per Windows

Sull’Orange PI PC il demone avahi va installato con il comando

Si modificano il nome a cui deve corrispondere il nostro 3d print server  nei due file /etc/hosts ed /etc/hostname

Nel nostro caso è stato modificato il nome da orangepcpc a 3dprinter.

Facendo ripartire il box linux si accede ai servizi utilizzando il nome 3dprinter.local.

avahi

Nel prossimo articolo si mostra uan configurazione di stampante

Configurazione Stampante

Configurazione OctoPrint su Orange PI PC – Installazione HAProxy

Dopo aver configurato l’avvio automatico di OctoPrint

Avvio automatico OctoPrint

possiamo a questo punto farlo rispondere sulla porta standard di un server Http.

Per questo si installa e configura il reverse proxy HAProxy

HAproxy

Procediamo alla installazione

 Editare il file /etc/haproxy/haproxy.cfg ed aggiungere al default le direttive comprensive anche di utilizzo di webcam

Riavviare il proxy con il comando

Far ripartire l’Orange PI. Se tutto è configurato correttamente il server di stampa 3D risponde sulla porta 80 all’indirizzo ip dell’Orange PI PC

http://ORANGEPIPC_IP

haproxyE’ possibile mappare il servizio Octoprint sulla porta 5000  solo all’interfaccia loopback editando il file ~/.octoprint/config.yaml

ed aggiundendo sotto la direttiva server il riferimento host

 Far ripartire OctoPrint

Ora la porta 5000 è mappata solo con l’indirizzo 127.0.0.1.

Nel prossimo articolo si configura Linux a pubblicare il nome host sulla rete in modo da accedere mediante tale riferimento senza ricorrere all’indirizzo IP

Pubblicazione Hostname