Trasferimento di file da UBUNTU a ESP
Transcript
Trasferimento di file da UBUNTU a ESP
Trasferimento di file da UBUNTU a ESP-8266. Premessa I System on Chip (SoC) Espressif ESP-8266 dispongono di due canali di comunicazione teoricamente utilizzabili per scambiare dati con il mondo esterno: l'interfaccia WiFi e la seriale RS232; quest'ultima è generalmente la soluzione prescelta per l'aggiornamento del software. Sfortunatamente le porte seriali sono state dichiarate obsolete oltre vent'anni fa per cui i normali PC ne sono sprovvisti, ragione per cui si è in genere costretti a ricorrere a dei cavetti di conversione speciali come quelli basati sui chip della FTDI, per cui prima ancora di affrontare il problema del trasferimento dei file sui piastrini ESP bisogna risolvere la questione dell'installazione e/o dell'attivazione dei driver di controllo dei convertitori FTDI, fatto che comporta una sere di passi che potrebbero non essere del tutto ovvi (sopratutto se si opera in ambiente Linux). Driver FTDI per Linux Stando a ciò che è riportato nelle "Application Note AN220: FTDI Driver Installation Guide for Linux" la FTDI fornisce due tipi di driver per ciascuno dei diversi sistemi operativi supportati: i virtual COM port driver (VCP) e i D2XX API driver. In queste note ci concentreremo sui primi (VCP) poiché hanno il pregio di essere spesso già installati nel kernel di Linux. Per verificare la funzionalità della porta seriale bisogna innanzitutto collegare il convertitore FTDI al nostro PC inserendolo in una porta USB. Ciò può essere patto inserendo direttamente il convertitore, nel caso in cui questo abbia la forma di una chiavetta, oppure collegando la spina USB nel caso in cui il convertitore si presenti come un cavo con due connettori di tipo diverso (USB e RS232). Inserita la spiana per attivare il convertitore e verificarne la funzionalità del driver (che si chiama ttyUSBx dove x è un numero) bisognerà aprire una finestra di terminale e digitare: dmesg | grep FTDI I il sistema operativo mostrerà alcune righe di informazioni, la più importante delle quali è quella che ci fornisce la conferma del nome del driver (che nel caso seguente è :ttyUSB0) [ [ [ [ 436.814756] 437.962229] 437.962347] 437.963449] usb 2-1.1: Manufacturer: FTDI usbserial: USB Serial support registered for FTDI USB Serial Device ftdi_sio 2-1.1:1.0: FTDI USB Serial Device converter detected usb 2-1.1: FTDI USB Serial Device converter now attached to ttyUSB0 Effettuata la verifica dovremo aggiungere il nostro nome utente (ad esempio pippo) al gruppo dialout digitando: sudo adduser pippo dialout I se non ci sono problemi il sistema operativo confermerà l'esecuzione del comando con la parola “done”. Adding user `pippo' to group `dialout' ... Adding user pippo to group dialout Done. Infine occorrerà cambiare i permessi di utilizzo del device digitando: sudo chmod a+rw /dev/ttyUSB0 I Trasferimento dei file utilizzando nodemcu-httpserver-master Gli utenti di Linux potrebbero essere interessati ad avvalersi di nodemcu-httpserver-master poiché tale strumento è compatibile con la catena di compilazione GNU, per cui si prospetta la possibilità di automatizzare il caricamento (upload) dei file sui piastrini ESP avvalendosi dei tradizionali makefile. Nel caso in cui si utilizzasse il compilatore C del SDK dalla Espressif si potrebbe teoricamente immaginare di inserire il comando di caricamento al termine della sequenza di compilazione, in modo da effettuare automaticamente il caricamento degli eseguibili nel caso di completamento senza errori delle operazioni precedenti. Per utilizzare nodemcu-httpserver-master bisogna innanzitutto scaricarlo da Internet (https://github.com/marcoskirsch/nodemcu-httpserver), estrarre la directory contenuta nel pacchetto compresso e ricompilare l'eseguibile. Rigenerato l'eseguibile per poter utilizzare lo strumento per caricare i file dell'esempio su di un piastrino ESP è necessario ancora un piccolo intervento Poiché nodemcu-httpserver-master è stato sviluppato apparentemente in ambiente Apple, è bisogna modificare il makefile di caricamento sostituendo il nome delle porte del Mac con quello precedentemente ottenuto (ad esempio ttyUSB0). Nel caso in cui non ve lo ricordaste digitate il comando: dmesg | grep FTDI I Conoscendo il nome della porta RS232 associata al convertitore FTDI basterà editare il makefile e sostituire la riga: PORT=/dev/cu.SLAB_USBtoUART facente riferimento alle seriali del Mac con: PORT=/dev/ttyUSB0 dopodiché per effettuare l'uploading dei file elencati nel makefile sul piastrino non si dovrà far altro che digitare il comando: make I Riferimenti: http://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guid e_for_Linux%20.pdf https://github.com/marcoskirsch/nodemcu-httpserver