Installazione dell'SDK per compilare firmware ESP8266 compatibili HomeKit

Questa guida mostra passo passo come generare file .BIN partendo da un firmware in linguaggio C e compatibile con Homekit e successivamente caricarlo su un dispositivo basato su ESP82266.

Questa guida mostra passo passo come generare file .BIN partendo da un firmware in linguaggio C e compatibile con Homekit e successivamente caricarlo su un dispositivo basato su ESP82266.
Alla fine del processo avremo creato un dispositivo IOT HomeKit compatibile.

Per fare questo utilizzeremo una macchina virtuale LINUX installata su VIRTUAL BOX e VAGRANT per gestirla.Una macchina virtuale è un ambiente virtuale che simula un computer fisico.
Come avviene in una macchina fisica, anche la virtuale ha specifiche risorse come RAM, CPU, spazio HDD ed Interfacce di rete ed infine è equipaggiata con un Sistema Operativo.
Sulla macchina virtuale installeremo anche VAGRANT che in sostanza è un gestore di macchine virtuali.
Ci permette di automatizzare la creazione, la configurazione e la gestione della macchine virtuali appena create.

Per la demo è stata utilizzata una macchina fisica WINDOWS 32-bit. Tuttavia scegliendo opportunamente l’istallazione VIRTUAL BOX e VAGRANT e modificando di conseguenza il file di configurazione VAGRANT, è possibile configurare una macchina WINDOWS 64-bit o Mac OSX. La modifica del file di configurazione di VAGRANT è molto semplice ed intuitiva. 

Fatta una breve introduzione su ciò che maneggeremo, iniziamo a scaricare l’occorrente. L’ho già detto ma sottolinearlo di nuovo non fa male, i file devono essere scaricati in base alla macchina e al sistema operativo FISICO in nostro possesso. Nel caso della demo ho utilizzato una macchina WINDOWS 32-bit, quindi i vari componenti dovranno essere tutti 32-bit ed il file di configurazione VAGRANT dovrà contenere i riferimenti al 32-bit.
Altra cosa importante LEGGERE LA GUIDA FINO IN FONDO, rileggere ciò che non è chiaro e solo allora iniziare l’installazione. 

Per praticità si consiglia di creare una cartella dove metteremo tutto ciò che abbiamo scaricato. 

PASSO 1 – Download dei componenti

Dal sito ufficiale di VIRTUALBOX scaricare l'ultima versione del programma di virtualizzazione.

Generalmente l’ultima versione è in evidenza.

https://www.virtualbox.org

 

Scegliere il pacchetto VIRTUALBOX in base al sistema operativo in uso sulla propria macchina (vedi punto 1 immagine sottostante)

ATTENZIONE!!!
Per sistemi operativi windows a 32 bit scegliere la versione 5.2
https://www.virtualbox.org/wiki/Download_Old_Builds_5_2

Scaricare anche l’extension pack (vedi punto 2 immagine sottostante).
Questa estensione è compatibile con sistemi 32 e 64 Bit.

 

 

Adesso andiamo sul sito VAGRANTUP e scarichiamo il pacchetto in base al sistema operativo in uso nella propria macchina. Nel caso della demo WINDOWS 32-bit.

https://www.vagrantup.com

 

Adesso scegliamo il pacchetto da scaricare in base al sistema operativo in uso (32 o 64 bit)

 

Infine scarichiamo il file di configurazione di VAGRANT che eventualmente modificheremo secondo le esigenze:

DOWNLOAD FILE

 

PASSO 2 – Settaggi BIOS e WINDOWS

Sarà necessario effettuare 2 settaggi per far funzionare senza errori la virtualizzazione

1) Abilitare la virtualizzazione nel Bios

 

2) Nelle funzionalità di windows disabilitare la cartella Hype-V e le relative sottocartelle

  

PASSO 3 - Installazione dei pacchetti scaricati

VIRTUALBOX

Iniziamo con l’installazione di VIRTUALBOX. Doppio click sull’eseguibile VirtualBox-x.xx.xx-xxxxxx-Win.exe. Terminata l’installazione di VIRTUALBOX, installiamo il pacchetto VirtualBox_Extension_Pack-x.xx.xx. Al termine dell’installazione VirtualBox si aprirà. Qualora venga proposto un aggiornamento fare clic su "Aggiorna" ed accettare l'accordo. 

VAGRANT

Adesso è il momento di installare è VAGRANT. Doppio click sull’eseguibile vagrant__._.__x86_32.exe. Al termine dell’installazione si aprirà una finestra che chiederà di riavviare il computer. Confermare il riavvio.

CREAZIONE SDK

Cominciamo creando una cartella di archiviazione. Aprire "Risorse del computer" e recarsi in C:
Creare una cartella a cui si darà il nome di "homekit_vagrant". All’interno della cartella inserire il file "Vagrantfile" scaricato in precedenza. Sicuramente noterete che è privo di estensione, ed è corretto che sia così. Adesso utilizzate il programma “Blocco Note” di Windows per aprire il file.  

La prima modifica che andremo a fare è quella alla versione di Ubuntu Trusty in base al sistema operativo installato sulla nostra macchina fisica (32 o 64 bit). Nel caso della demo ricordo è 32 bit e quindi lo correggeremo.

 

Scorrendo in basso dovremo indicare la repo GitHub dalla quale vorremo generare il file .bin. Nel nostro caso creeremo un .bin dalla repo di Maxim Kulkin.

Infine dovremo indicare il nome della nostra rete WiFi e la relativa Password, come mostrato nell’immagine sotto

Fatto questo salviamo la configurazione ed usciamo dalla cartella.

 

Adesso apriamo il prompt dei comandi. Scegliamo ESEGUI, digitiamo cmd e premiamo il tasto invio

Andiamo adesso nella cartella C:\homekit_vagrant

Digitiamo:

cd.. fino a risalire alla posizione C:\

Dopodiché digitiamo cd\homekit_vagrant

 

Adesso digitiamo il comando vagrant up

Inizierà il download dell’ambiente vagrant impostato nella configurazione.

Occorreranno molti minuti, generalmente oltre un’ora, per completare l’installazione.

La comparsa del seguente screen è assolutamente normale

 

Al termine dell’installazione si visualizzerà una schermata simile alla seguente:

 

PASSO 4 - CONFIGURAZIONI FINALI

Al termine dell’installazione indicata nel punto 3, avviare VirtualBox. VirtualBox mostrerà una nuova macchina virtuale.

 

Adesso inseriramo il convertitore FTDI nella porta USB

Fare clic su "Impostazioni" - "USB"

Poi a destra clic sul simbolo + "Aggiungi un nuovo filtro USB"

Adesso selezioniamo la voce "Silicon Labs CP1202 USBtoUART Bridge Controller [0100]" o similare, a seconda del vostro dispositivo. Così facendo andremo ad aggiungere il proprio FTDI come mostrato in figura.

 

Adesso chiudiamo VirtualBox e torniamo al prompt comandi. Digitiamo i seguenti comandi, seguiti da invio: 

vagrant halt (arresta il processo)

vagrant up (lancia)

vagrant ssh (per connettersi al nostro sistema tramite ssh)

Dopo quest’ultimo comando dovremmo vedersi avviare il S.O. installato in modalità Shell

Digitare di nuovo il comando vagrant halt e premere il tasto invio

Appena il cursore compare di nuovo, estrarre il convertitore FTDI dalla porta USB

Adesso digitare il comando vagrant halt e premere il tasto invio

Il S.O. verrà caricato.

Al termine sarà visualizzato un report simile al seguente.

Adesso Vagrant è pronto a ricevere il comando per creare il proprio file con estensione bin.

Reinserire quindi il convertitore FTDI nella porta USB e procediamo.

Per la demo di questa guida è stata utilizzata la repo di Maxim Kulkin contenente diversi dispositivi HomeKit compatibili con ESP8266.

In particolare genereremo il file .bin per controllare un led (consilgiato come primo test)

Dopo aver preso pratica con la procedura, si potrà ovviamente utilizzare qualsiasi altra repo. 

Verifichiamo intanto che Vagrant riconosca la porta USB e l’FTDI connesso.

Digitiamo il comando: usb-devices

Il risultato dovrebbe essere simile a questo:

I primi due blocchi fanno riferimento ai settaggi sulla macchina virtuale.

A noi interessa il terzo blocco poiché è la conferma che l’FTDI viene riconosciuto, il driver è caricato e la comunicazione è attiva.

Qualora la parte relativa a FTDI è mancante, estrarre il dispositivo e riconnetterlo e ripetere il comando usb-devices.

Ovviamente sarà necessario mettere in flash mode il dispositivo da programmare

Se tutto è a posto possiamo iniziare a lanciare i comandi per creare il nostro file bin.

Digitare: cd esp-homekit-demo

quindi facendo attenzione a minuscole, maiuscole e spazi: make -C examples/led test

Se il dispositivo è correttamente in flash mode ed i comandi sono stati inseriti con i giusti spazi, verrà costruito il firmware e flashato il dispositivo.

Al termine vedremo qualcosa del genere

 

A conferma che la procedura è stata completata, il terminale vi mostrerà il dispositivo collegato alla vostra rete wifi ed il relativo canale. 

Non rimane altro che avviare App CASA su iPhone o iPad selezionare + (aggiungi accessorio) ed inserire manualmente il codice 11111111 (8 volte 1).

 

Alcune informazioni sono tratte dall'articolo Installazione dell'SDK per compilare il firmware ESP8266 per HomeKit scritto da Batyushin Dmitriy

 

 

 

Riferimenti:

https://github.com/open-eio/esp32-micropython-vagrant

https://www.silabs.com/community/interface/forum.topic.html/cp210x_usb_to_uartb-y2X3

https://www.thingforward.io/techblog/2016-11-28-installing-platformio-and-usb-serial-in-a-linux-vm-using-vagranthtmlmarkdown.html 

https://www.youtube.com/watch?v=-p_8u_0GNZE


Gianluca Piergentili

15 Blog post

Commenti
diodo157 4 anni

sono riuscito a compilare il file in bin, lo vedo in ssh, ma non so come posso prenderlo....

 
 
warrior1985 5 anni

Si potrebbe mettere il punto 2 con la variante per Mac?