Archivi tag: apache

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

MicroPython – Esempi nodi con DHT11, Relé ed MQTT

In una serie di articoli visti in precedenza su Mqtt, Beaglebone ed ESP8266

Mqtt con Beaglebone ed ESP8266 – Lista Articoli

abbiamo creato l’infrastruttura per la gestione dei nodi esp8266.

In questo articolo gestiamo i due nodi esp8266 invece che non Nodemcu e Lua con MicroPython.

Il resto della infrastruttura rimane identica; sul Beaglebone vi è il mqtt Mosquitto e Freeboard per la gestione dei topic mqtt, visualizzazione ed interazione.

Per gli esempi del nodo ESP8266 con relé e sensore DHT11 occorre caricare le librerie MicroPython umqtt, disponibili sul sito

umqtt simple

Negli esempi che seguono si utlizza solo la umqtt simple; nel codice sono stati inseriti vari delay per permettere alla scheda di gestire i messaggi e non incorrere in errori; è stato, inoltre, impostato che nel caso il server mqtt non risponda di riavviare la scheda.

Di seguito il codice utilizzato per gli esempi.

Nodo con sensore DHT11

  • boot.py: codice eseguito all’avvio

  • umqtt/simple.py: libreria mqtt

  • dht11.py: modulo per la lettura della temperatura ed umidità sul GPIO2.

  • main.py: codice eseguito dopo il boot

  •  client_mqtt.py: Modulo principale per la gestione del nodo

  • riavvia.py: codice di servizio per riavviare il modulo da uPyCraft

Nodo con relé

  • boot.py: codice eseguito all’avvio

  • umqtt/simple.py: libreria mqtt

  • main.py: codice eseguito dopo il boot
  •  client_mqtt.py: Modulo principale per la gestione del nodo

  • riavvia.py: codice di servizio per riavviare il modulo da uPyCraft

Di seguito il filesystem su ESP8266 per l’esempio del relé

ESPFilesystemAccedendo a Freeboard si hanno le stesse informazioni ottenute con Nodemcu e LUA

FreeboardMicroPython

Di seguito le schermate della gestione da Smartphone con MQTT Dashboard, con la possibilità di controllare lo stato del relè, leggere i parametri del sensore e far ripartire o mettere in sleep i due nodi

MqttPublish

MqttSubscribe

Questi sono i collegamenti per scaricare i due esempi

Esempio sensore dht11

Esempio relé

Nel prossimo articolo compileremo il firmware MicroPython per ESP8266

MicroPython – Compilazione MicroPython per ESP8266

 

 

 

 

Mqtt con Beaglebone ed ESP8266 – Freeboard

Dopo aver installato un client mqtt web

Mqtt con Beaglebone ed ESP8266-Web server e Mqtt websocket

passiamo ad installare la dashboard freeboard

Freeboard

Posizionamoci in /var/www/html sul Beaglebone come root e cloniamo il repository github di freeboard; cambiare il proprietario della cartella freeboard in www-data:www-data

 Accedendo con brower sul Beaglebone nella cartella freeboard si accede alla dashboard

freeboardOccorre a questo punto inserire dei plugin aggiuntivi a freeboard. Si aggiungono i seguenti plugin

  •  freeboard-mqtt

Clonare il github https://github.com/alsm/freeboard-mqtt

Scaricare la libreria javascript mqtt paho

Paho mqtt javascript library

Il link alla libreria è il seguente

Ultima Versione mqttws31.js

Creare una cartella mqtt sotto la cartella plugins di freeboard e copiare i file mqttws31.js e paho.mqtt.plugin.js

Editare il file paho.mqtt.plugin.js ed inserire il riferimento della libreria mqttws31.js nella sezione external_scripts; anche in questo caso cambiare il proprietario per la nuova cartella mqtt ed i suoi contenuti

Cambiare il proprietario

Editare il file /var/www/html/freeboard/index.html ed inserire il riferimento al nuovo plugin paho.mqtt.plugin.js  nella sezione head.js

  • Aggiungere il plugin dynamic-highcharts

Clonare in una cartella il github

Copiare il file plugin_highcharts.js nella cartella /var/www/html/plugins/thirdparty e cambiare il proprietario

Editare anche in questo caso il file /var/www/html/freeboard/index.html ed aggiungere il plugin come fatto al punto precedente

Accedere sulla dashboard freeboard ed aggiungere i collegamenti ai topic di temperatura ed umidità come datasource, i gauge per la misura instananea dei valori e la rappresentazione dei valori nel corso del tempo. Di seguito esempi di impostazioni :

  • Datasource

freeboard datasource

  • Gauge

freeboard gauge

  • Timeseries

freeboard timeseriesUtilizzando Chrome/Chromium come brower è possibile salvare le impostazioni in un file json. La configurazione può essere caricata localmente dal brower o può essere caricata dal browser dal webserver, salvando ad esempio il file dashboard.json in /var/www/html/freeboard; inserendo l’url

si accede alla Dashboard.

Di seguito la interfaccia Freeboard con varie widgets che mostrano lo stato e l’andamento dei sensori e relay ESP8266

freeboard dashboardIn questa serie di articolo il Beaglebone è stato configurato in modo da porte accedere utlizzando l’alias beaglebone.local/beaglebone

Preparazione sd card Debian per Beaglebone Black

ma si può usare comunque l’IP del Beaglebone per accedere ai servizi forniti dalla scheda.

Nel prossimo articolo si tratta la configurazione di client Mqtt Android

Mqtt con Beaglebone ed ESP8266 – Client Android

 

 

Mqtt con Beaglebone ed ESP8266-Web server e Mqtt Websocket

Dopo aver configurato il server MQTT ed i nodi ESP8266

Mqtt con Beaglebone ed ESP8266 – Installazione mosquitto su Beaglebone

Mqtt con Beaglebone ed ESP8266-MQTT ESP8266

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per sensore temperatura

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per Relé

passiamo alla configurazione del webserver su Beaglebone ed alla configurazione del websocket sul broker mqtt mosquitto.

 Accediamo sul Beaglebone in ssh e disabilitiamo i seguenti servizi

Accedere in /etc/apache2/sites-enabled e modificare in 000-default.conf la porta del webserver da 8080 ad 80

In /etc/apache2/port.conf modificare la porta in ascolto da 8080 ad 80

Far ripartire il server http con il comando

Accedere alla configurazione di mosquitto in /etc/mosquitto/conf.d e creare il file websockets.conf con il seguente contenuto

Dopo aver salvato il file far ripartire mosquitto

Disabilitiamo l’ipv6 sul Beaglebone come descritto al link

Disabilitazione Ipv6 Debian

Nel file /etc/sysctl.conf aggiungiamo

e facciamo ripartire il Beaglebone.

Procediamo a questo punto ad installare sul server http un client MQTT su websocket e la dashboard Freeboard.

 Per quanto concerne il client websocket mqtt hive-mqtt si scarica il codice dal github

Hive mqtt

Accedere come root in ssh sul Beaglebone in /var/www/html;  clonare il client sotto mqtt-web e cambiare il proprietario della cartella clonata

Se accediamo da brower sul server http in mqtt-web viene mostrato il client web; si inseriscono le informazioni per la connessione

mqtt web client connessioneSi inserisco i topic in sottoscrizione e publishing e si hanno i vari messaggi e comandi per il broker

mqtt web clientNel prossimo articolo imposteremo la dashboard Freeboard sul Beaglebone

Mqtt con Beaglebone ed ESP8266 – Freeboard