Archivi categoria: Software

Installazione e configurazione immagine OpenWrt su Linkit 7688 e 7688 Duo

Dopo aver eseguito il collegamenti ai dispositivi di supporto come specificato nel precedente articolo

Collegamenti Linkit 7688 Duo

e generato l’immagine

Compilazione Immagine OpenWrt per Linkit 7688 e 7688 Duo

si procede alla installazione della stessa sul dispositivo.

Come da indicazioni sul sito Mediatek

Aggiornamento Firmware da chiavetta USB

per eseguire l’aggiornamento del firmware da chiavetta usb copiare l’immagine openwrt-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin su una penna usb formattata fat32 e rinominarla in lks7688.img.

A questo punto inserire la chiavetta USB in un dispositivo USB OTG collegato alla scheda  ed eseguire quanto segue

  1. Tenere premuto il pulsante WiFi sulla scheda.
  2. Premere una volta il pulsante MPU, con il pulsante WiFi sempre premuto.
  3. Tenere premuto il pulsante WiFI per almento 5 secondi e meno di 20 finché il Led arancione del WiFi si spegne. A quel punto rilasciarlo. Non tenerlo premuto oltre 20 secondi in quanto si procederebbe all’aggiornamento del bootloader.
  4. La scheda riparte e provvede ad eseguire l’aggiornamento con il led arancione del wifi che lampeggia velocemente.

aggiornamento7688duo

Si può controllare l’operazione tramite la USB TTL seriale collegata sul pc ed attivata sulla seriale abilitata con le seguenti impostazioni

  • Port:  COM abilitata
  • Speed: 57600
  • Data Bits: 8
  • Stop Bits: 1
  • Parity: None
  • Flow Control: XON/XOFF

putty-configurationCollegandosi con putty, premere invio se non vi vede nulla, mentre sta eseguendo l’aggiornamento si verificano le operazioni

aggiornamento

Quando il led arancione incomincia a lampeggiare con una frequenza minore la scheda è pronta ad essere utilizzata.

Fare uno ricerca degli access point visibili e si dovrebbe trovare un access point identificato come LinkIT_Smart_7688_xxxxxx, dove le xxxxxx identificano il dispositivo specifico.

Collegarsi a tale Access Point ed accedere tramite browser all’indirizzo 192.168.100.1 o all’indirizzo mylinkit.local se si hanno i prerequisti elencati

Accesso a Linkit

collegamentolinkitInserire una password ed accedere al passo successivo

collegamentolinkit2Selezionare OpenWrt per la configurazione avanzata

collegamentolinkit3Impostare la password su OpwenWrt

collegamentolinkit4immettendola due volte

collegamentolinkit5A questo punto il sistema è configurato come Access Point. Nel nostro caso si è voluto impostare il Linkit 7688 Duo come client di un Access Point con sicurezza WPA2. Per ottenere tale impostazione nel caso si abbia una rete visibile accedere alla sezione Network della interfaccia principale della console web

accesso_linkit-smart_network1ed impostare i valori per l’ Access Point e far ripartire il tutto

accesso_linkit-smart_network2

Nel caso l’Access Point sia nascosto occorre seguire la strada di impostare i parametri direttamente nei file di configurazione presenti in /etc/config.

Ci si collega con putty sulla USB TTL seriale  collegata in precedenza e si accede in /etc/config e si eseguono i comandi per Access Point con sicurezza wpa2

 Si salva la configurazione

e la si attiva

Se si controlla il file /etc/config/wireless si nota l’aggiunta di una nuova sezione, config wifi-face ‘sta’, per la connessione all’access point

Ora la scheda agisce da client e si accede all’indirizzo indicato dall’ Access Point o tramite nome come indicato dalla documentazione

Accesso a Linkit

accesso_linkit-smartNel prossimo articolo si procede alla installazione e configurazione  del firmware Lede personalizzato

Installazione e configurazione immagine Lede su Linkit 7688 Duo

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

Compilazione addon Libreelec8 per Orange PI PC

Nell’articolo sulla compilazione di Libreelec  8 per Orange PI PC

Libreelec8 su Orange PI PC

avevamo creato l’ambiente  e compilato l’immagine Libreelec 8 per la nostra scheda di sviluppo. Integriamo quanto detto nel precedente articolo mostrando come compilare gli addons per Libreelec 8.

Procediamo ora a compilare degli addon. I packages che si possono compilare sono presenti nelle cartelle kodi-binary-addons

libreelec8 addonse nella cartella packages/addons

addons packagesCompiliamo per esempio il modulo pvr.iptvsimple con il  seguente comando da shell dalla cartella /home/sviluppo/orangepi/libreelec/libreelec-8.0

 addon command

Compiliamo l’addon proftpd, tra quelli presenti in packages/addons, con il comando

Gli addon risultanti sono presenti nelle relative cartelle in

addon compilatiDi seguito i link per scaricare alcuni addons compilati

PVR addon

Service Addons

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

 

 

Libreelec8 su OrangePI PC

In questo articolo si descrivono i passi che ho eseguito per preparare una prima versione di Libreelec 8 su Orange PI PC e altre schede con soc H3.

Partendo dall’ambiente di sviluppo Debian, con i relativi pacchetti installati,  già utilizzato per la compilazione di Openelec 7

 Compilazione immagine Openelec per Orange PI PC

si procede alla generazione della immagine per Libreelec 8.

E’ stato utilizzato come base il lavoro fatto per Openelec 7 e Libreelec 7 presenti sui due repository github

Github H3 Openelec 7

Github H3 Libreelec 7

Collegandosi sulla shell come sviluppo operiamo in modo analogo a quanto fatto per Openelec. Creaiamo una cartella libreelec sotto orangepi e spostiamoci in essa

Cloniamo il github di Libreelec con il comando

Le patch sono state create per una versione specifica del commit, per cui allineiamo il nostro clone github a quella versione

Scarichiamo dal link le patch ed il progetto per H3

H3 Libreelec 8

e scompattarlo in /home/sviluppo/orangepi/libreelec

Eseguire le seguenti operazioni

1)Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/projects la cartella

H3

2) Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/packages/multimedia le cartelle

cedarx
libmpeg2

3) Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/packages/tools la cartella

sunxi-tools

4) Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/packages/sysutils  la cartella

  sunxi-sys-utils

5) Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/packages/graphics  la cartella

sunxi-mali

6) Copiare in /home/sviluppo/orangepi/libreelec/libreelec-8.0/packages/linux-drivers  la cartella

mt7601u

7)  Le patch sono presenti in /home/sviluppo/orangepi/libreelec/H3LE8/patches

linux.patch

image.patch

mkimage.patch

kodi.patch

libcec.patch

u-boot.patch

u-boot-release.patch

u-boot-update.patch

Patchare il codice posizionandosi in /home/sviluppo/orangepi/libreelec ed eseguendo i comandi

Procedere alla compilazione della immagine per OrangePI PC dalla cartella /home/sviluppo/orangepi/libreelec/libreelec-8.0 con il comando

L’immagine viene generata nella cartella /home/sviluppo/orangepi/libreelec/libreelec-8.0/target

 Dal link

Openelec 7 H3 FAQ

sono elencati le schede che si possono compilare modificando il parametro SYSTEM nel comando di compilazione

SYSTEM=opi2
SYSTEM=opione
SYSTEM=opipc
SYSTEM=opiplus
SYSTEM=opilite
SYSTEM=opipcplus
SYSTEM=opiplus2e
SYSTEM=bpim2p
SYSTEM=bx2

Tale immagine è un primo tentativo di porting di H3 su Libreelec 8. L’immagine è stata installata su Orange PI PC e il sistema ha funzionato bene, ma sono possibili comunque bug e malfunzionamenti.

Qui è presente l’immagine Libreelec 8 compilata per Orange PI PC

Immagine Libreelec 8 Orange PI PC

Tale immagine è stata testata su Orange Pi PC.

Di seguito altre immagini non testate sui vari dispositivi

Immagine Libreelec 8 Orange Pi2

Immagine Libreelec 8 Orange Pi Lite

Immagine Libreelec 8 Orange Pi One

Immagine Libreelec 8 Orange Pi PC Plus

Immagine Libreelec 8 Orange Pi Plus

Immagine Libreelec 8 Orange Pi Plus 2e

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.

 Nel seguente articolo si mostra come compilare gli addon

Compilazione addon Libreelec8 per Orange PI PC

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