Archivi tag: debian

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

Installazione OctoPrint su Orange PI PC – Avvio Automatico

Dopo aver descritto l’installazione di OctoPrint e di CuraEngine nell’articolo precedente

Installazione Pacchetto OctoPrint

si passa alla configurazione del server di stampa 3d.

Come prima operazione si imposta la partenza automatica di OctoPrint.

Si esegue quanto segue

Editare il file /etc/defaults/octoprint modificando il puntamento all’eseguibile per l’avvio di OctoPrint tramite vi

o nano

e modificare il file da

a

tenendo conto anche del diverso utente utilizzato.

Aggiungere lo script all’avvio automatico

 Avviare OctoPrint  con il comando

 Controllare che OctoPrint è attivo sulla porta 5000 dell’Orange PI PC accedendo all’indirizzo

 Facendo ripartire   l’Orange PI PC il server OctoPrint parte ora automaticamente.

Nel prossimo articolo si configurerà Linux in modo da connettersi ad OctoPrint sulla porta standard Http, ossia sulla porta 80

Installazione HAProxy

Installazione OctoPrint su Orange PI PC – Installazione pacchetto python

In questo articolo si descrive come abilitare la scheda Orange PI PC a  server di rete per stampanti 3d.

Un sofware che fornisce tale funzionalità è OctoPrint

OctoPrint

Dal sito OctoPrint è possibile scaricare una immagine per Raspberry PI con il sistema già pronto; nel caso dell’Orange PI PC occorre procedere alla installazione del sistema OctoPrint su una immagine Linux.

E’ possibile anche usare una immagine Linux per Orange PI PC e seguire i passi relativi alla installazione di OctoPrint, ma è necessario verificare i prerequisiti del pacchetto python di OctoPrint.

Noi invece per questo articolo abbiamo compilato una immagine Debian mediante gli scripts Armbian.

Come prima operazione occorre preparare la scheda sd con una immagine Armbian. Nel caso specifico è stata creata una immagine Debian Jessie utilizzando lo script di Armbian, come indicato al link

Compilazione Armbian

e descritto in un precedente articolo

Creazione immagine Armbian per Orange PI PC

Abbiamo seguito i seguenti passi per la compilazione dell’ immagine Armbian su Ubuntu Xenial 16.04 ; da shell linux

Nelle  opzioni di compilazione scegliere quanto segue

armbianopipcfosNon si cambia la configurazione di default del kernel

armbianopipckernelScegliere come scheda Orange PI PC

armbianopipcboardScegliere il mainline kernel

armbianopipcmlkernelScegliere Jessie come distribuzione

armbianopipcjessieAbbiamo scelto come opzione il Desktop Envinronment

armbianopipcjessiedeDopo  tale opzione lo script procede alla compilazione. L’immagine da noi generata è Armbian_5.34_Orangepipc_Debian_jessie_next_4.13.12_desktop.img. Tale immagine può essere scaricata al link

Immagine Armbian per Orange PI PC

Si avvia Armbian e si crea l’utenza per l’utenza; in questo caso è stato scelta come utenza octoprint/password.

Se necessario riconfigurare la tastiera con il comando

e procedere all’aggiornamento del sistema

Se il sistema deve essere configurato tramite connessione wireless occorre che la connessione sia attiva all’avvio; per tale scopo nel nostro caso abbiamo utilizzato il demone wicd

Wicd Debian

 Si rimuove il network-manager presente

che rimuove i pacchetti network-manager e network-manager-gnome.

Si controlla che l’interfaccia wireless non sia presente in /etc/network/interfaces

Si procede alla installazione di wicd

Si controlla che l’utenza octoprint sia presente nel gruppo netdev

Nel nostro caso è già presente, dando come risultato

netdev-group

Nel caso non fosse presente aggiungerlo con il comando

Far partire wicd

Collegarsi sul desktop grafico di Armbian e configurare la connessione wireless con il comando

wicd-clientConfigurare e salvare la connessione di rete dall’interfaccia grafica.

Se si desidera il remote desktop si eseguono le operazioni già elencante all’articolo

Abilitazione Desktop Remoto su Armbian in Orange PI PC

Si può a questo punto procedere alla installazione di OctoPrint. Si seguono le indicazioni presenti al link

Installazione OctoPrint su Linux

Si installano i prerequisiti

Creare sotto /opt la cartella octoprint ed assegnare l’ownership ad octoprint

Posizionarsi in /opt/octoprint e scaricare il sofware

Eseguire quindi

Creare la cartella .octoprint

Assegnare i permessi all’utenza octoprint per gestire la porta della stampante 3d

Si testa la corretta installazione eseguendo il comando

Il server OctoPrint è raggiungibile sulla porta 5000 all’indirizzo ip del Orange PI PC

http://indirizzoip:5000

octoprinttestInstallare a questo punto la Cura Engine; posizionarsi nella home dell’utente octoprint e scaricare il pacchetto dei sorgenti

Scompattare il pacchetto

Entrare nella cartella scompattata

Eseguire la compilazione con il comando

Il software compilato è presente sotto la cartella build

curaengineCreare la cartella /opt/octoprint/cura e copiare il file CuraEngine in questa cartella

L’eseguibile è ora presente nella cartella /opt/octoprint/cura e sarà utilizzato in seguito da OctoPrint.

Nel prossimo articolo si descrive come configurare l’avvio automatico di OctoPrint

Avvio Automatico OctoPrint

Compilazione Immagine LEDE per Linkit 7688 Duo

Dopo aver generato l’immagine OpenWrt utilizzando l’SDK Mediatek

Compilazione Immagine OpenWrt per Linkit 7688 e 7688 Duo

in questo articolo si descrive come generare una immagine LEDE per il Linkit 7688 Duo.

Le indicazioni su come compilare LEDE sono disponibili al link

Compilazione LEDE

Procedere alla clonazione del github in una shell, sempre dalla cartella Linkit

eseguire

Creare uan cartella src sotto Linkit ed espandere il file compresso

Feed per Linkit

Tale feed è stato creato a partire da quello Mediatek , eliminando la parte gestita con i drivers  proprietari.

Copiare il file nella cartella src e scompattarlo

Accedere nella cartella Lede e copiare il file feeds.conf.default in feeds.conf

Eseguire

Aggiorniamo le informazioni dei feed per tutti i package

Installiamo i package

Configuriamo il kernel eseguendo

con le seguenti impostazioni

  • Target System: Mediatek Ralink MIPS
  • Subtarget: MT7688 based boards
  • Target Profile: Mediatek  LinkIt Smart 7688

menuconfigledeEntriamo in Base system ed abilitiamo mtk-linkit

mtk-linkitbasesystemSalviamo ed usciamo,

Eseguire la compilazione con il comando

dove con x si indica il numero di core da utilizzare.

Al termine della compilazione l’immagine è presente nella cartella bin/targets/ramips/mt7688/lede-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin.

L’immagine compilata è disponibile qui

Immagine Lede per Linkit 7688 Duo

ATTENZIONE: L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del dispositivo.

Se si aggiorna la scheda usando una chiavetta usb bisogna rinominare il file lede-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin in lks7688.img.

Tale firmware può presentare dei malfunzionamenti in quanto non testato approfonditamente e basato su driver in fase di sviluppo.

Nei prossimi articoli si descrive come installare le immagini sulla scheda e configurarle

Installazione e configurazione immagine OpenWrt su Linkit 7688 e 7688 Duo

Compilazione Immagine OpenWrt per Linkit 7688 e 7688 Duo

Dopo aver descritto nel precedente articolo le caratteristiche generali delle due schede

Schede di sviluppo Linkit 7688 e 7688 Duo

si passa alla compilazione della immagine OpenWrt dai sorgenti. Si segue quanto descritto al link

Compilazione immagine dai sorgenti

 Procediamo quindi a creare una cartella Linkit sotto /home/sviluppo nella nostra immagine Debian, già utilizzata per la compilazione di OpenWrt in altro articolo

Compilazione immagine OpenWrt

Passiamo alla installazione dei prerequisiti

Cloniamo il repository con il comando

Entriamo nella cartella openwrt e copiamo il file feeds.conf.default in feeds.conf

 Aggiungere  il feed Mediatek per la scheda

Aggiorniamo le informazioni dei feed per tutti i package

Installiamo i package

Configuriamo il kernel eseguendo

con le seguenti impostazioni

  • Target System: Ralink RT288x/RT3xxx
  • Subtarget: MT7688 based boards
  • Target Profile: LinkIt7688

menuconfigSalviamo ed usciamo,

Eseguire la compilazione con il comando

Ad un certo punto la compilazione genera un errore sulle librerie della scheda wireless. Mediatek non ha rilasciato i sorgenti della scheda wireless, ma un sdk con i binari che hanno versione differente rispetto al kernel che si sta usando; l’errore riportato è

Un modo per risolvere il problema è il seguente.

Accedere alla cartella /home/sviluppo/Linkit/openwrt/feeds/linkit/mtk-sdk-wifi/wifi_binary/ e copiare i seguenti file

Rilanciare la compilazione. Al termine della compilazione il file viene generato nella cartella bin/ramips

immaginelinkitIl file compilato è scaricabile da qui

Immagine OpenWrt Linkit 7688 e 7688 Duo

ATTENZIONE: L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del dispositivo

Se si aggiorna la scheda usando una chiavetta usb bisogna rinominare il file openwrt-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin in lks7688.img.

Il kernel dell’immagine è alla versione 3.18_45; se si volesse utilizzare un kernel recente occorre usare i driver opensource disponibili per la scheda; nel caso della scheda Linkit 7688 Duo, in nostro possesso, è possibile ricompilare il tutto utilizzando i driver Realtek rt76 per la scheda di rete wireless ed aggiungere i componenti aggiuntivi per l’ mcu Atmel utilizzando la distribuzione fork di OpenWrt Lede

Progetto LEDE

Nel prossimo articolo si compila una immagine LEDE per la scheda Linkit 7688 Duo. Per la scheda Linkit 7688 al momento non sono ancora compatibili le librerie mraa, che gestiscono l’interfacciamento con le periferiche,  con l’ultima versione di LEDE e le funzionalità dell’immagine sono limitate. Possono essere presenti anche dei bug  dei driver opensource della scheda wireless, che si spera siano risolti nell’affinamento di tali driver.

Compilazione Immagine LEDE per Linkit 7688 Duo

Mqtt con Beaglebone ed ESP8266 – Lista articoli

Di seguito si elencano i vari articoli da seguire per costruire il proprio ambiente IOT composto da sensori e relé con Beaglebone, ESP8266 e server MQTT Mosquitto.

  1. Architettura e protocollo Mqtt
  2. Mqtt Mosquitto su Beaglebone
  3. Mqtt su ESP8266
  4. Sensore di Temperatura su ESP8266 con protocollo Mqtt
  5. Relé su ESP8266 con protocollo Mqtt
  6. Impostazione server Http, protocollo websocket Mqtt su Beaglebone
  7. Installazione e configurazione Dashboard Freeboard per report misure su Beaglebone
  8. Client Android con protocollo Mqtt per gestione sensori

 

 

Mqtt con Beaglebone ed ESP8266 – Client Android

Dopo  aver configurato il server Mosquitto, i nodi ESP8266 e la dashboard Freeboard

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é

Mqtt con Beaglebone ed ESP8266 – Freeboard

passiamo ad installare un client Mqtt su un dispostivo Android.

 Dal playstore sono disponibili vari client Mqtt

android mqttDopo aver configurato i topic di publishing e subscriber sul client Android, in modo analogo a quanto fatto per i widget di Freeboard

Mqtt con Beaglebone ed ESP8266 – Freeboard

è possibile controllare temperatura ed umidità del sensore, monitorare lo stato dei dispositivi, inviare comandi al relé (Accensione, Spegnimento, Stato, Riavvio, Sleep) ed al sensore (Riavvio,Sleep, Stato).

Di seguito uno screenshot con alcuni topic e publishing dell’esempio con MQTT Dashboard

android mqtt relayoffCon il relé attivato

android mqtt relayon

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

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

Dopo aver esaminato la connessione con il sensore di temperatura ed umidità

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

in questo articolo si imposta l’esp8266 per gestire un relé. Di seguito i collegamenti utilizzati

nodemcu relay

Anche in questo esempio metteremo il nodemcu in sleep. Perché il sistema possa riavviarsi dopo il comando di sleep è necessario collegare il PIN D0 (GPIO16) al PIN RST come specificato nella documentazione nodemcu

Nodemcu sleep

Passiamo ad analizzare il codice da caricare sul dispositivo; consta del init.lua e del file relay.lua.

Analizziamo i punti principali di ciascun file.

  • init.lua

Nel file sono impostate globalmente i parametri dell’access point, l’indirizzo e porta del broker mqtt ed il file da eseguire sull’esp dopo la connessione all’access point. Nel caso non riesca ad acquisire l’indirizzo il sistema viene fatto ripartire.

  • relay.lua

Il file relay.lua gestisce il relay, la sottoscrizione sul broker mqtt con invio dello stato con il topic monitor. Sono stati impostati dei parametri globali per gestire i topic, i tempi di attesa in tmr.alarm. Sono presenti in particolare i seguenti topic

  • /home/relay1/status : viene inviato lo stato del relé all’avvio ed in risposta dei comandi nel topic /home/relay1/command.
  • /home/relay1/monitor: periodicamente viene inviato lo stato del relé.
  • /home/relay1/command: Da altri client è possibile inviare dei comandi all’esp8266.
    • Restart: riavvia l’esp.
    • Sleep n: Tempo di sleep di n secondi.
    • ON: Accende il relay.
    • OFF: Spegne il relay.
    • Status: Richiede lo stato del relé (Acceso o Spento).

Vi sono varie funzioni di servizio che gesticono il tutto. I commenti all’interno del codice descrivono ciascuna funzionalità.

Nel prossimo articolo tratteremo la configurazione del webserver sul Beaglebone e la configurazione del websocket per Mosquitto sempre sul Beaglebone

Mqtt con Beaglebone ed ESP8266-Web server e Mqtt Websocket