Archivi categoria: Configurazione

Mqtt con Beaglebone ed ESP8266 – Installazione mosquitto su Beaglebone

Dopo aver riassunto l’architettura che si sta implementando nel precedente articolo

Mqtt con Beaglecone ed Esp8266-Architettura

Si procede con l’installazione del message broker mqtt sul Beaglebone Black con il sistema mostrato di seguito

L’immagine usata è la seguente

Immagine Beaglebone Black

Si procede anche alla ulteriori configurazioni già elencate nell’articolo

Preparazione sd card Debian per Beaglebone Black

Procedere ad una estensione dello spazio sulla scheda sd con l’applicazione gparted su host linux o con il tool grow_partition.sh disponibile sul Beaglebone nella cartella /opt/scritpts/tools

Nell’eseguire l’upgrade con tale immagine si riscontrano problemi di spazio con la partizione di 4Gb.

Il message broker che si installa è mosquitto

Mosquitto

Con la versione presente su Debian Jessie di Mosquitto non si hanno a disposizione i servizi di websockets, che si utilizzeranno successivamente con la Dashboard. Per tale motivo occorre installare la versione aggiornata del broker.

Si accede in una shell sul Beaglebone come root e si inserisce il repository di test di debian

aggiungere

Eseguire poi

Dopo l’installazione commentare il riferimento ai software di test di debian in /etc/apt/sources.list

ed eseguire

Testiamo a questo punto se il server è installato correttamente eseguendo in una shell la sottoscrizione ad un topic

In un’altra shell eseguire la pubblicazione sul topic “topic/test”

La  prima shell deve mostrare il messaggio “Prova”

mqtt Test

Con il protocollo MQTT si possono definire diversi QOS , come descritto nelle FAQ di Mosquitto

QOS Mosquitto

Con QOS=0 il messaggio viene spedito una sola volta e non è richiesta la conferma della avvenuta ricezione da parte dei sottoscrittori; negli esempi che si faranno il QOS=0 e non vi sarà protezione dello smistamento dei messaggi con nome e password o canale ssl.

 Nel prossimo articolo si procederà alla preparazione dell’ESP9266 con le librerie lua per gestire il protocollo MQTT

Mqtt con Beaglebone ed ESP8266-MQTT ESP8266

Mqtt con Beaglebone ed Esp8266-Architettura

In questa serie di articoli trattiamo come impostare un message broker mqtt sul Beaglebone Black che permetta di gestire vari dispositivi esp8266, collegati a loro volta a sonde di temperatura, relays.

Il tutto viene gestito con l’ausilio di app su smartphone Android e Dashboard installata su Apache sul Beaglebone.

Partiamo dal message broker  MQTT (Message Queue Telemetry Transport); qui vi è la descrizione del protocollo

MQTT

In particolare nella sezione FAQ vi sono le prime indicazioni sul protocollo e suo utilizzo

MQTT Faq

Il sistema è formato da tre componenti:

  • Mqtt Broker: ruota i messaggi pubblicati a tutti i sottoscrittori.
  • Publisher: Pubblica i messaggi nel topic  sul Mqtt Broker.
  • Subscriber: Riceve i messaggi sui topic su cui è sottoscritto dal Mqtt Broker.

Di seguito mostriamo la topologia per due topic utilizzata nel nostro esempio

archIl sistema è costituito da un server MQTT broker sul Beaglebone. In questo server MQTT broker si possono definire dei topics a cui si possono registrare vari client. Per ciascun topic l’azione può essere di sottoscrizione e di pubblicazione. Con la sottoscrizione si ricevono tutti i messaggi del topics, mentre con la pubblicazione si possono eseguire delle azioni sul topic (ad esempio accendi un  relé, riavvia un dispositivo, inviare la misura del sensore, ecc). Nel caso in esame vi sarà, ad esempio, una coda per il monitor delle temperature, agganciata al client esp8266 di lettura temperatura, un’altra per la gestione di un relay, sempre gestito con esp8266. Il server MQTT broker provvede ad ruotare i messaggi ricevuti fra tutti i client sottoscrittori/publisher per ciascun topic.

Ai topic sul broker mqtt ci si accede con app android mediante le quali si interagisce oltre che per la ricezione dei messaggi anche mediante la pubblicazione di comandi  verso i client esp8266 (Accendi Relay, Riavvia Sensore, ecc).

Con il framework javascript Freeboard

Freeboard

installato su Apache del Beablebone si accede ad una dashboard per il monitor dei dispositivi in tempo reale.

Per ulteriori informazioni sul sistema MQTT fare riferimento al sito indicato sopra.

Nel prossimo articolo si parte dalla installazione del server MQTT sul Beaglebone Black

Mqtt con Beaglebone ed ESP8266 – Installazione mosquitto su Beaglebone

Creazione Immagini per Beaglebone con Omap Image Builder

In questo articolo si descrive come procedere alla creazione autonoma di una immagine per il Beaglebone Black/Green con lo strumento Omap Image Builder. Nell’esempio specifico si crea l’immagine per il Beaglebone Black Rev. C.

 Le informazioni sulla procedura da seguire sono presenti sul sito

Omap image builder

Come prerequisito alla creazione della immagine vi è la necessità di eseguire le operazioni su hardware arm; con altri sistemi si possono avere problemi. Per tale scopo procederemo ad eseguire le operazioni su una scheda Orange PI PC con sistema operativo Armbian. Dopo aver preparato il sistema Armbian per Orange PI PC, come descritto nell’articolo

Avvio Armbian su Orange PI PC

Collegarsi in ssh sull’Orange PI PC; nel nostro caso abbiamo usato  l’utenza sviluppo/password

ssh su Orange PI PC

Ci si può anche connettere abilitando il Desktop Remoto

Abilitazione Desktop Remoto Orange Pi PC

Creare una cartella beaglebone

Clonare il codice per la creazione della immagine

La lista delle cartelle è la seguente

Procediamo alla creazione di una immagine standard Debian 8 per Beaglebone Black

Il task dura parecchio tempo e crea altre cartelle fra cui deploy entro la quale troveremo le immagini. Al termine posizionarsi nella cartella deploy/immagine compilata ed eseguire

Comprimere l’immagine creata con il comando

Per creare una immagine con delle personalizzazioni procedere come indicato di seguito:

  1. Posizionarsi in image-builder/configs e copiare una configurazione da cui partire in custom-debian.conf. Noi abbiamo usato come base la configurazione bb.org-debian-jessie-lxqt-4gb-v4.1.conf. In custom-debian.conf aggiungere le seguenti modifiche nealla sezione deb_include per avere pronto il server vsftpd nella immagine da creare e si cambia il chroot_script


    Per escludere di pacchetti da installare si utilizza la sezione deb_exclude. Nello script sono commentate le varie sezioni, tra le quali ricordiamo quelle relative alla definizione del nome host, password, utenza da creare, ecc.
  2. Accedere alla cartella image-builder/target/chroot e copiare beagleboard.org-jessie.sh come custom-debian.sh.
  3. Nel caso si vogliano aggiungere pacchetti python editare il file custom-debian.sh ed aggiungere gli altri pacchetti nella funzione  install_pip_pkgs

    In tale esempio si è aggiunto solo il server ftp. Accedere nella cartella image-builder ed eseguire il comando

    Il task dura parecchio tempo. Al termine accedere nella cartella deploy/nomeimmagine ed eseguire

    Procedere alla compressione della immagine con il comando

    Si può  creare la scheda micro sd con l’immagine personalizzata con il server ftp già presente e l’hostname modificato in beagleboneblack.

    L’installazione sulla scheda microsd avviene nel modalità già vista nell’articolo

    Preparazione scheda sd per Beaglebone Black

    Sul sito Omap image builder sono descritte le altre tipologie di immagine tra le quali segnaliamo quelle per BeagleBone Black, Green, Iot, Machine Kit (immagine per gestire macchine CNC Machinekit), ecc.

Avvio della scheda Beaglebone

In un articolo precedente abbiamo dato una breve descrizione della scheda Beaglebone Black e delle sue varianti.

 Scheda di sviluppo Beaglebone

 Il Beaglebone in questa revisione viene con 4GB di spazio a bordo e con il sistema operativo già installato.

E’ possibile accedere al Beaglebone, nel nostro caso il Black, senza collegarlo alla rete ethernet, ma collegandolo ad un pc attraverso la connessione mini usb di servizio, come specificato sul sito del Beaglebone

Avvio Beaglebone

Dopo aver connesso il Beaglebone Black al pc tramite il cavo USB viene aggiunto un altro dispositivo rimobile ai dischi già presenti

Disco rimovibile BeagleboneEseguendo start.htm si avvia una interfaccia analoga a quanto presente sul sito web getting-started

AvvioSi procede alla installazione dei driver network-over-usb per il proprio sistema operativo, windows a 64 bit nel nostro caso

driver network over usbSu Firefox procedere a scaricare il file ed eseguirlo, dando i permessi richiesti da windows

BeagleBone Driver InstallerAl termine viene mostrata la finestra con le operazioni eseguite

completamento beaglebone driver installerUsando Firefox o Chrome accedere al seguente indirizzo http://192.168.7.2; si accede in tal modo sul nostro Beaglebone attraverso la rete su  usb al server web avviato sulla scheda

beaglebone pagineinizialeNella pagina viene mostrato come aggiornare il sistema,  collegarsi all’interfaccia IDECloud9,  eseguire vari esempi in Bonescript.

L’accesso all’ IDE di Cloud9

Informazioni su IDE Cloud9

avviene sulla porta 3000 allo stesso indirizzo IP specificato sopra, ossia http://192.168.7.2:3000

Cloud9Nei nostri esempi non modificheremo il sistema operativo presente sulla scheda eMMC interna, ma scaricheremo una versione aggiornata di Debian per Beaglebone e lo installeremo su una scheda micro sd. Il sistema può essere chiuso con il pulsante Power presente sulla scheda

power buttono collegandosi tramite shell ssh all’indirizzo 192.168.7.2 con l’utenza debian/temppwd ed eseguendo il comando “sudo poweroff”

sshNel prossimo articolo procederemo a scaricare ed installare su scheda micro sd l’immagine Debian per Beaglebone

Preparazione sd card Debian per Beaglebone Black

Configurazione telecomando su Libreelec per soc Amlogic

Nel precedente articolo abbiamo provveduto ad installare su scheda micro sd una immagine Libreelec ed avviato il dispositivo con tale immagine

Immagine Libreelec per soc Amlogic

Il telecomando del Beelink Minimx III è basilare, per cui per avere più tasti si è pensato di associare un altro telecomando a Libreelec.

Si è scelto il seguente telecomando che ha più pulsanti in dotazione

telecomando

In base al documento presente sul sito Amlogic, sebbene redatto in cinese, mediante l’utilizzo di traduttori online

Come cambiare i codici IR

si evince che il soc Amlogic gestisce nativamente il protocollo NEC per i telecomandi e che mediante il file remote.conf si possono associare il codice di un telecomando agli eventi di sistema Linux. La mappa dei codici degli eventi di sistema Linux  è presente nel file header del kernel Linux

Input Event Codes

Come prima operazione ci si collega su Libreelec in ssh con root/libreelec. Copiare il file /etc/amremote/libreelec.conf in remote.conf nella cartella /storage/.config

e modificarlo come segue

Caricare il nuovo file dei codici del telecomando mediante il comando

Premere qualche tasto del nuovo telecomando ed eseguire

Perché il telecomando sia compatibile si devono vedere dei messaggi del tipo

Il formato è il seguente: 0xAABBCCCC. Seguendo il documento Amlogic linkato sopra, Il codice del telecomando per un tasto specifico è 0xBB; mentre per definire il codice del telecomando si usa 0xCCCC0001. AA corrisponde all’inverso logico del comando, nell’esempio sopra elencato

BB=0x51. In binario=01010001. L’inverso logico in binario =10101110, che è proprio 0xAE.

AA=0xAE. In binario=10101110

Il codice AA non viene utilizzato per la nostra configurazione del telecomando.

Premere tutti i pulsanti del telecomando ed eseguire il comando dmesg -c . Nel nostro caso abbiamo i seguenti codici

La mappatura del telecomando in kodi è presente in /usr/share/kodi/system/keymaps/remote.xml.

Si mappano i tasti del telecomando agli input events di Linux. Come esempio prendiamo in considerazione il tasto Power. Il codice del telecomando è

l’evento KEY_POWER nel file input-event-codes.h corrisponde a

Si crea pertanto una correlazione tra il codice del telecomando e l’evento in Linux nella sezione key_begin, key_end del file remote.conf

Tra i due dati

inserire uno spazio, così come indicato nel documento Amlogic linkato sopra. Il file utilizzato nel caso specifico è disponibile al seguente link

Esempio remote.conf

Alla ripartenza del box viene letta la nuova configurazione presente in /storage/.config/remote.conf potendo così utilizzare il nuovo telecomando.

Abilitazione Desktop Remoto su Armbian in Orange Pi PC

Per abilitare il server di desktop remoto su Armbian per Orange PI PC collegarsi in ssh sulla scheda

loginEliminare, se presenti, i seguenti pacchetti

Installare i pacchetti

A questo punto è possbile collegarsi in desktop remoto sul sistema.

Remote Desktop ConnectionEseguire il login con l’utenza creata al momento della configurazione di Armbian

Remote Desktop_LoginOra si può lavorare remotamente sulla scheda Orange PI PC

Remote_Desktop

 

Avvio immagine Armbian su Orange PI PC

Dopo aver creato la scheda con l’immagine Armbian per Orange PI PC

Immagine Armbian su scheda micro sd

possiamo inserire la scheda sull’Orange PI PC e si avvia il dispositivo. Dopo aver esteso la partizione sulla scheda sd viene richiesto il login come root con password 1234. Successivamente viene richiesto il cambio di password. Dopo il cambio della password di root viene abilitata la creazione di una utenza di Debian, ad esempio user1. Si immettono le informazioni richieste e si accede alla interfaccia grafica a risoluzione di default. Per cambiare la risoluzione eseguire il seguente comando

Viene mostrata la lista delle opzioni; per una risoluzione 1080p60 eseguire

 Si passa alla riconfigurazione della tastiera e delle lingue.

Eseguire

per impostare le lingue.

Per riconfigurare la tastiera eseguire

Modifica risoluzione uscita video Openelec su Orange PI PC (Parte2)

Dopo aver installato e compilato gli strumenti sunxi per la gestione dello script.bin

http://www.microdev.it/wp/it/2016/07/29/modifica-risoluzione-uscita-video-openelec-su-orange-pi-pc-parte1/

siamo ora in grado di apportare le modifiche necessarie per variare la risoluzione di uscita della nostra scheda.

Copiare nella cartella scriptfile il file binario script.bin.

Dal link di sunxi è possibile visionare la guida sui parametri del file fex

Guida Fex

Con il tool compilato trasformiamo il file da binario in formato testo editabile

Abbiamo generato il file script.fex. Lo si edita con un tool di testo, come ad esempio pluma in Debian

script.fex

Si cerca il parametro di nostro interesse, in particolare interessano i seguenti parametri

Nel nostro caso abbiamo trovato le seguenti impostazioni

In base alla guida fex se vogliamo l’uscita HDMI (screen_output_type=3)  a 720p60 al posto di 10 per il parametro screen0_output_mode dobbiamo inserire 5

ATTENZIONE: Questo file stabilisce tutti i parametri principali per il funziomento della scheda. Non modificare nulla se non si è sicuri della operazione da eseguire.

Procedere alla trasformazione in binario del file fex con il comando

Spostare il file sulla scheda sd; rinominare l’originale in script.bin.bak e sostituirlo con il file script720p60.bin rinominato come script.bin.

Nella guida Guida Fex sono indicati i parametri da impostare per le varie risoluzioni di uscita.

Si può ora inserire la scheda sd sull’Orange PI PC e testare al nuova risoluzione avviandolo dopo aver collegato l’uscita hdmi della scheda al nostro televisore.

Modifica risoluzione uscita video Openelec su Orange PI PC (Parte1)

L’immagine della distribuzione Openelec per Orange Pi PC ha come impostazione di default la risoluzione 1080p60. Se siamo in possesso di un televisore con una risoluzione differente non si avrà alcuna immagine sul televisore.

Per ovviare a questa problematica è possibile modificare la risoluzione e gli fps della uscita video della scheda Orange PI PC.

La scheda micro sd è composta di due partizioni. Quella che interessa in questa operazione è quella in formato vfat.

schedasd

Il file da modificare presente sulla scheda micro sd è script.bin

contenutoschedasd

Nella cartella principale dell’utenza debian (sviluppo nel nostro caso) creare una cartella orangepi ed una sottocartella sunxi e posizionarsi in sunxi

Si seguono a questo punto le instruzioni dal sito linux-sunxi per poter modificare il file script.bin. Per prima cosa si installano i tool necessari

Sunxi Tools

Si installa il package libusb

Installare git e pkg-config

Scaricare i sorgenti dei tool

Accedere nella cartella creata da git

Eseguire la compilazione

Abbiamo a questo punto il tool per modificare i parametri della scheda Orange PI PC.

Creare una cartella sotto sunxi, ad esempio scriptfile

Aggiungere nel PATH la cartella dei tool compilati di sunxi

Nel prossimo articolo si descrive come modificare il file script.bin

http://www.microdev.it/wp/it/2016/07/29/modifica-risoluzione-uscita-video-openelec-su-orange-pi-pc-parte2/

Preparazione ambiente Debian per sviluppo sistemi embedded

In questo articolo si descrive l’installazione di Debian 8.5 che sarà utilizzata per compilare l’immagine Openelec per Orange Pi PC, creazione immagine Enigma2 ed altre operazioni su dispositivi embedded.

Scaricare l’iso AMD64 di Debian 8.5

Immagini Debian per X86_64

 Procedere alla installazione. Si può usare anche una virtual machine, come ad esempio VirtualBox. Usare almeno 4 gb di Ram e 50 Gb di hard disk

VirtualBox

Con VirtualBox si può creare un disco virtuale che alloca lo spazio dinamicamente quando è richiesto. Ad installazione del sistema operativo collegarsi con l’utenza creata durante l’installazione di Debian; nel nostro caso l’utenza è sviluppo. Ci si può collegare direttamente dall’interfaccia grafica o su ssh conoscendo l’indirizzo IP del sistema Debian installato.

Aggiungere al gruppo sudo l’utente usato durante la configurazione; in una shell eseguire il comando

Nel nostro caso abbiamo il seguente risultato

L’utente sviluppo non appartiene al gruppo sudo. Diventare superuser con il comando

Inserire la password di root alla richiesta nella shell. Come root eseguire

Nel nostro caso

Far ripartire il sistema con il comando

Al riavvio collegarsi con l’utenza da utilizzare nello sviluppo, nel nostro caso sviluppo. Si aggiunge nei sorgenti dei pacchetti, se non presenti, i repository dei pacchetti aggiuntivi e di aggiornamento.

Posizionarsi in /etc/apt

Fare un backup di sources.list

Editare il file, ad esempio con vi

Commentare le righe posizionandosi all’inizio della riga e con il tasto i si passa in modalità di modifica avendo la possibilità di inserire #. Con il tasto Esc si passa alla modalità lettura e ci si può spostare con le frecce direzionali. Nel caso si commetta un errore e si voglia tornare alla situazione  precedente premere Esc+u.

Commentare le righe

Inserire le seguenti righe

Per inserire le righe si può premere in modalità di lettura il tasto o che aggiunge una riga in modalità di scrittura; si può procedere ad un copia ed incolla o ad inserire manualmente le righe.

Per salvare il tutto premere Esc+:wq; si salva il file e si esce dallo stesso.

Si può anche usare un editor di testo direttamente dall’interfaccia grafica di Debian per eseguire le medesime operazioni. Per esempio per usare pluma aprire una shell unix ed eseguire

Da pluma aprire il file  /etc/apt/sources.list, apportare le modifiche descritte sopra e salvare il file.

Aggiornare il riferimento dei repository ed i pacchetti con i comandi

Installare i pacchetti di sviluppo

Installare il server ftpd per eventuali trasferimenti remoti

Scommentare nel file /etc/vsftpd.conf il parametro

Aprire il file con

Cercare la stringa dall’editor vi in lettura con

Eliminare il carattere # posizionandosi su di esso e premendo x

Salvare il tutto con ESC+:wq

Far ripartire il server ftp con il comando

Ora abbiamo l’ambiente per compilare, modificare, sviluppare i nostri sistem embedded.