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.
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.
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:
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
diodo157 5 anni
sono riuscito a compilare il file in bin, lo vedo in ssh, ma non so come posso prenderlo....