Modulo WiFi+Bt ESP32

:o

:o E' proprio il caso.
Se ci fosse stato anche il peek e poke sarei tornato ai tempi del C64......

Veramente, se leggi bene, peek e poke ci sono eccome :D.

Sembra un Basic tipo Amstrad.

E' un porting del TinyBasic Plus
Visto che nel progetto originale peek & poke sono dichiarati "unimplemented" vuol dire che li ha aggiunti espressif

5 POKE &H3FF44020, 16
10 POKE &H3FF44004, 16
20 DELAY 200
20 POKE &H3FF44004, 0
30 DELAY 200
40 PHEX PEEK(&H3FF4403C)
50 GOTO 10

Mi hanno regalato una schedina ESP32 della sparkfun, questa:

$19.95

Dovrebbe arrivarmi a giorni.

Mi sono impostato le board come indicato nel sito della sparkfun,
compila gli esempi senza problemi

Ho fatto qualche esperienza con ESP8266/wemos utilizzando sempre
la libreria ESP8266WebServer

Esisterà una libreria simile alla ESP8266WebServer per questa scheda?

la sezione wifi e' dichiarata compatibile al 99%, quindi non dovresti avere problemi, le lib sono state prese quasi paroparo dal rpogetto 8266

Concordo, se vuoi puoi provare anche il mio Webbino.

bella cosa, quando ho un attimo lo testo, per ora ti watcho :slight_smile:

Grazie, proverò con le librerie dell' ESP8266

La scheda della sparkfun è arrivata, pagata il 20 dic arrivata il 5 gen dalla Germania.

Il solito blink caricato sulla ESP32 funziona.

Come detto ho fatto pratica con ESP8266 e la lib ESP8266WebServer con ottimi risultati.

@testato come suggerito

ho provato ad utilizzare la suddetta libreria con la ESP32 ma non va a buon fine, si ferma sulla queue.h

Messaggio di errore in compilazione:
In file included from /home/../hardware/espressif/esp32/libraries/ESP8266WiFi/src/ESP8266WiFi.h:33:0,

from /home/.../hardware/espressif/esp32/libraries/ESP8266WebServer/src/ESP8266WebServer.h:28,

from /home/.../ESP8266-01_un_LED_05.ino:14:

/home/.../hardware/espressif/esp32/libraries/ESP8266WiFi/src/ESP8266WiFiType.h:26:19: fatal error:

queue.h: No such file or directory

#include <queue.h>

Ho provato anche a copiare questo file insieme alle librerie ma il risultato non cambia.

devo trovare il tempo per mettere mano seriamente a questo chip.
Il fatto e' che e' ancora in una fase embrionale nonostante abbiano assunto il tipo del core esp8266
secondo me ci sono sotto cose ancora non pronte, cose importanti o bug non previsti.
Uno dei motivi per i quali voglio metterci mano e' il BT, eppure al momento sul core arduino nulla di nulla di BT, e sul IDF non puoi usarlo assieme al wifi :frowning:

Ho dato uno sguardo alla cartella libraries del ESP32:

Al momento sono state implementate poche librerie rispetto a quelle disponibili per ESP8266:

Inoltre molte delle librerie del ESP8266 si chiamano "ESP8266qualcosa" e non solo "qualcosa".

Per quel motivo si generano gli errori di compilazione che Busco ci ha segnalato, quando cerca di usare le librerie del ESP8266 anche per l'ESP32.

Dobbiamo aspettare che il team ESP32 implementi le librerie mancanti per usare l'ottima libreria WebServer:

Mi hanno regalato la ESP32 della Sparkfun:
Sparkfun ESP32 Thing

IDE arduino-1.8.1
Scheda ESP32 Dev Module
Utilizzo come base il codice degli esempi della lib WiFi nome SimpleWiFiServer.ino

Ho aggiunto due pulsanti e una textbox.
Il codice HTML l'ho messo in un file separato per facilitare il debug.
File: SimpleWiFiServer_13.ino //Codice C
paginaHTML.h //Codice HTML
maschera.png //Come appare

Il problema:
Gira abbastanza bene però dopo quanche minuto anche 10-15 minuti si blocca

Nel file allegato (ESP32_problemi.txt)
Visualizzo dei dati:
tempo in mS ad ogni passaggio
durata della prova.
alla fine alcuni messaggi emessi dalla board
e CPU Halt
A questo punto si blocca, questo è il mio problema.

Penso che tra i messaggi emessi dalla board ci sia anche
il motivo del problema ma non saprei come ricavarlo.

Allego i file.
Grazie per eventuali suggerimenti.

SimpleWiFiServer_13.ino (3.11 KB)

paginaHTML.h (2.23 KB)

ESP32_problemi_b.txt (3.96 KB)

maschera.png

Scheda.txt (143 Bytes)

Ho decodificato l'errore:

0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40083dce: xPortGetCoreID at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 4398
:  (inlined by) xTaskRemoveFromEventList at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 3018
0x40082ba1: xQueueGenericSend at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./queue.c line 1998
0x400e2a6d: sys_mbox_post at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/port/freertos/sys_arch.c line 500
0x400dbd41: tcpip_send_api_msg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/tcpip.c line 467
0x400e2cc8: tcpip_apimsg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400e30c4: netconn_recved at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400db24c: lwip_recvfrom at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db755: lwip_recvfrom_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db7ad: lwip_recv_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400d108c: WiFiClient::read(unsigned char*, unsigned int) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/Print.h line 50
0x4010735d: WiFiClient::read() at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/libraries/WiFi/src/WiFiClient.cpp line 158
0x400d0e40: loop at /home/giorgio/Programmi_gio/arduino-1.6.13/portable/sketchbook/SimpleWiFiServer_13/SimpleWiFiServer_13.ino line 51
0x4010015d: loopTask(void*) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)

Conviene caricare nel Arduino IDE l' EspExceptionDecoder
https://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.0.6/EspExceptionDecoder-1.0.6.zip

Istruzioni:

Qualcuno dice che serve cancellare la memoria flash del ESP32 quando comincia a dare i numeri

esptool --port COM3 erase_flash

Per chi usa linux:
invece di COM3 mettete l'indirizzo linux della porta USB

ho rpovato anche io una volta il decoder delle eccezioni sull 8266, buona cosa che sia stato aggiornato anche per il 32.
ma poi ti ha aiutato a beccare il rpoblema ? perche' a me non aiuto' piu' di tanto

Io lo uso parecchio, lo trovo molto utile.

fate un esempio,
tipo come si interpreta il risultato di roboticboyer ?
e' importante quella scritta discriminator 1 ?

Io ho interpretato che la CPU si è bloccata quando ha eseguito la linea 11 del main.cpp

0x4010015d: loopTask(void*) at /arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)

Sembra che l'errore segnalato da Busco capiti anche ad altri: