Aggiunto ESP8266-12E al mio progetto

Come primo aggiornamento per ampliare il mio progetto di controllo luci, temperatura e umidità all'interno del terrario ho scelto l'esp8266, ho cercato e letto vari siti poi ho trovato questo: https://www.amazon.it/Scudo-Wireless-Esp8266-Esp-12e-Arduino/dp/B01C3ZN920/ref=cm_rdp_product pensando che per comodità e ingombro ci stava bene nella scatola, solo che nn ho ancora capito l'utilizzo dei jumper da 1 a 4 e i pin in più a sx e a dx dei jumper, a quali librerie fare riferimento e come si aggiorna il firmware, qualcuno l'ha usato o provato? Ho trovato quasi tutti i siti che parlano del Esp8266-01 come progetto di esempio, a me questo sembra totalmente diverso da quello o sbaglio?

Una domanda offtopic, qualcuno usa linux? perchè da qualche settimana sto usando linux kubuntu e la versione 1.8.1 dell'IDE arduino riconosce la porta dov'è collegata la scheda arduino ma quando è il momento di caricare dentro uno sketch va in errore dicendo che nn vede la scheda collegata. Posto l'errore sapendo che è offtopic quindi nel caso posso sempre ritornare windows se vedo che nn riesco a risolvere.

Arduino:1.8.1 (Linux), Scheda:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Lo sketch usa 2276 byte (0%) dello spazio disponibile per i programmi. Il massimo è 253952 byte.
Le variabili globali usano 282 byte (3%) di memoria dinamica, lasciando altri 7910 byte liberi per le variabili locali. Il massimo è 8192 byte.
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
ioctl("TIOCMGET"): Inappropriate ioctl for device
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: ser_send(): write error: Bad file descriptor
avrdude: stk500_send(): failed to send command to serial port
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
La porta seriale selezionata avrdude: stk500v2_getsync(): timeout communicating with programmer
 non esiste o la scheda non è connessa

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

quello che mi fa strano è che se vado nella finestra strumenti alla voce "porta" riconosce che è collegata e alla voce "informazioni scheda" mi da anche il numero di serie ma quando tento di caricare qualcosa dice che nn c'è.

La scheda è buona, lascia perdere l'ESP-01, io non capisco perché tutti si ostinino ad usare questo modulo che, a mio avviso, è uno dei più scomodi.

Su quella scheda c'è lo stesso chip, è solo più comoda da montare e hai la sicurezza di fare i collegamenti giusti. La puoi usare con la libreria WiFiEsp, decisamente consigliata.

L'unico mio dubbio è che non so su quali pin colleghi la porta seriale dell'ESP. Io ho altre schede simili, ma non quella in particolare, per cui non ti so dire. Se vuoi fare qualche prova, prendila. In alternativa c'è l'ottimo shield di MLT (googla, non ho il link al momento) con seriale configurabile tramite jumper, ma devi comprare l'ESP a parte, e allora sì che va bene lo 01.

Per Ubuntu:

sudo usermod -G -a tuoutente dialout

Aggiornamento: ho trovato foto in alta risoluzione dello shield e, seguendo le tracce, mi pare di capire che la seriale dell'ESP venga portata sui pin 0/1, quindi sulla seriale di Arduino. Con gli switch 1 e 2 è possibile interrompere questo collegamento. A quel punto si possono usare un paio di cavetti per portare la seriale dove si vuole, perché altrimenti non si può usare il monitor seriale, il che complica parecchio il debug degli sketch.

Se questo è accettabile, allora prendilo (nota che sui siti cinesi si trova a meno), altrimenti prendi l'altro shield che ho citato.

Per ubuntu ho provato quel comando ma mi da questo errore: usermod: group '-a' does not exist

Invece per l'ESP ho visto che nn c'è il collegamento diretto tra il tx - rx dai pin di debug ai pin 0 - 1 della shield dal momento che cmq la monto sopra ad arduino metterò dei ponticelli tra quei pin ma nn ho capito se devo mettere cmq i dipswitch 1-2 su ON

Allora prova:

sudo usermod -a -G dialout tuoutente

Beh no, se li metti su ON li colleghi appunto a 0/1, cosa che tu NON vorrai fare. Fai una SoftwareSerial su due pin a caso tipo 6/7 e collegali lì.

Qua comunque trovi l'altro shield di cui ti parlavo.

per ubuntu ho trovato un video su youtube che mi ha aiutato, c'era giusto un altro passaggio oltre a quello che mi avevi consigliato tu :stuck_out_tongue:

per arduino adesso vedo di capire come definire i pin che di solito nn sono usati per la comunicazione e inizio a fare qualche collegamento, la mia paura è quella di bruciare la scheda :stuck_out_tongue: mi scoccia un pò se si brucia

E qual era l'altro passaggio?

Non c'è molto da definire, solo un'istanza di SoftwareSerial, vedi gli esempi della libreria WiFiEsp. Vai tranquillo che non bruci niente, al massimo non funziona...

Sto usando linux da una settimana, quindi nn lo conosco molto bene, però ho dovuto aggiungere anche "sudo chmod a+rw /dev/ttyACM0"

Quello è un fix temporaneo che scompare al reboot o se togli e rimetti il dispositivo. L'aggiunta al gruppo dialout che ti ho consigliato è invece il fix permanente.

Ho omesso però di dirti che dopo il comando avresti dovuto sloggarti e riloggarti.

Allora forse è per quello che nn funzionava :stuck_out_tongue: stasera ci guardo