esp32

Bonjour , j aimerais avoir quelques conseils
sur notre projet actuelle nous utilisons un atmega 1284p avec un hc05
notre programme utilise

Le croquis utilise 38312 octets (29%) de l'espace de stockage de programmes. 
Le maximum est de 130048 octets.
Les variables globales utilisent 2303 octets (14%) de mémoire dynamique, ce qui laisse 14081 octets pour les variables locales. Le maximum est de 16384 octets.

nous avons la possibilité de televersé le code via le BT misa a jour OTA

J aimerais s avoir si la migration sur un esp32 et possible pour avoir beaucoup moins de chose a soudé sur le pcb
tous en gardant la mise a jour ota via le bluetooth ( en configuration normale pas ble)

Si je ne dit pas de betise pour l esp il faut le double de la capacité utilise car il stock le nouveaux programme en // de l ancien puis il redémarre sur le nouveaux .

Je suis un peux perdu avec tous les type de module existant , j ai commander celui ci

Dessolé pour le dérangement merci beaucoup

moijerem:
Si je ne dit pas de betise pour l esp il faut le double de la capacité utilise car il stock le nouveaux programme en // de l ancien puis il redémarre sur le nouveaux .

Le bootloader reste en permanence en mémoire (il permet le téléversement d'un nouveau code)

Bonjour

Si je ne dit pas de betise pour l esp il faut le double de la capacité utilise car il stock le nouveaux programme en // de l ancien puis il redémarre sur le nouveaux .

Oui. Pour l'ESP32 comme pour l'ESP8266 le flashage par OTA diffère du flashage par bootloader via le port série.

La mémoire (4MB pour le module acheté) est partionnée et contient, entre autres, deux partitions 'programme'.
L'une d'elles stocke le programme actif qui, lors du déclenchement de l'OTA charge le nouveau programme dans l'autre partition. le chargement effectué, la vérification étant faite l'ESP32 switche sur le nouveau programme.

Le raisonnement sur la taille du programme sera a revoir après avoir porté et compilé le code sur ESP32/Arduino. Le résultat sera beaucoup plus long que 38312 octets !! Mais 'en compensation' l'espace disponible est beaucoup plus grand que 130048 octets !!

Un bémol pour 'OTA par Bluetooth" avec ESP L'accès software au BT (surtout pour le BT classique qui laisse entrevoir une vitesse raisonnable pour l'OTA) est encore embryonnaire.

L'ESP32 est un composant prometteur, toutes ses ressources matérielles ne sont pas encore accessibles.

OTA par WiFi OK, OTA par BT en principe faisable avec l'ESP32....mais à mettre au point s'il s'agit d'utiliser le BT interne. Je ne suis pas certain que cela ait déjà été réalisé.

Merci pour vos réponse :slight_smile: j attend de recevoir les bestiole pour continué je ne manquerais pas de revenir vers vous pour plus de détails
Pour les personne qui passe par ici . Si vous avais des conseil je vous écoute :slight_smile:

Bien entendu il parait possible de reproduire ce qui est fait actuellement avec l'atmega1284 en laissant de côté le BT interne.

Connecter un HC05 sur le port série de l'ESP32,
permettre au module HC05 d'agir sur EN et GPIO0 pour activer le bootloader
télécharger sous contrôle du bootloader via HC05 et RX:TX

Et serait-il possible de faire une mise à jour OTA sur un UNO ou un nano avec un composant Bluetooth HC05 ou HC06 ?

al1fch:
Bien entendu il parait possible de reproduire ce qui est fait actuellement avec l'atmega1284 en laissant de côté le BT interne.

Connecter un HC05 sur le port série de l'ESP32,
permettre au module HC05 d'agir sur EN et GPIO0 pour activer le bootloader
télécharger sous contrôle du bootloader via HC05 et RX:TX

Le but serait de tous faire a partir de l esp 32 pour n avoir qu un seul module

lesept:
Et serait-il possible de faire une mise à jour OTA sur un UNO ou un nano avec un composant Bluetooth HC05 ou HC06 ?

bien sur c est possible en configurant correctement le hc05

Le but serait de tous faire a partir de l esp 32 pour n avoir qu un seul module

j'avais compris !! c'est dommage d'avoir 'sous le capot' un bloc Bluetooth et de ne pas pouvoir totalement s'en servir.

En l'état de l'API d'Espressif ('IDF") et de son accès via l'IDE Arduino l'OTA par le BT interne parait un travail de pionnier !! (Modification lourde de la librairie ArduinoOTA qui pour l'instant est bâtie sur de l'udp via WiFi)

al1fch:
j’avais compris !! c’est dommage d’avoir ‘sous le capot’ un bloc Bluetooth et de ne pas pouvoir totalement s’en servir.

En l’état de l’API d’Espressif ('IDF") et de son accès via l’IDE Arduino l’OTA par le BT interne parait un travail de pionnier !! (Modification lourde de la librairie ArduinoOTA qui pour l’instant est bâtie sur de l’udp via WiFi)

Je viens d allumé un cierge lol car cela et hors de mes compétences :confused: Dieux de l OTA si tu m entend hahaha

Mise à jour OTA par Bluetooth ? Içi une discussion sur le forum du constructeur..... à suivre.....

Quote from: lesept on Today at 08:42 am
Et serait-il possible de faire une mise à jour OTA sur un UNO ou un nano avec un composant Bluetooth HC05 ou HC06 ?

bien sur c'est possible en configurant correctement le hc05

Bonjour,

il faut un peu de soft :

il faut configurer le hc05 (il semble que cela ne fonctionne pas avec le hc06) de manière à ce qu'il génère un signal sur un de ses ports, à la réception dul DTR

et un peu de hard :

sur ce port il faut mettre le petit circuit r/c qui génère la pichenette sur le rst de l'arduino

question bette concernant esp
je le configure pour qu il émet un réseaux wifi je me connecte dessus et via des commande je lui dit de ce connecter sur tel réseaux(mon réseaux local ) ( mais imaginons que je donne mon appareil a une personne tierce ) y a t il un moyen de faire en sorte via un bouton par exemple de lui faire reprendre le role d origine emeteur pour pouvoir le configuré sur un nouveaux reseaux ? merci
edit( peut être tous simplement en le configurant dans cette configuration avec une commande prédéfinie avant la passation ? :slight_smile: )

ce n'est pas du tout une question bête !!!

nombre d'objets connectés WiFi sont vendus avec ce démarrage en point d'accès pour scanner l'environnement, sélectionner un point d'accès , saisir le mdp, basculer en mode 'station' et se connecter au réseau local.

il y des variantes pour forcer le mode AP : utilisation d'un bouton, dépassement d'un temps imparti pour se connecter au réseau local....

J'ai vu passer plusieurs librairies pour ESP8266 . je n'ai pas les noms en têtes mais pourrai rechercher.

Pour l'ESP32 il y a au moins l'exemple WiFiSmartConfig comme base de départ. Il fonctionne un peu différemment et nécessite l'utilisation d'une application spécifique sur smartphone, lequel smartphone est déjà connecté au réseau cible. C'est une solution proposée initialement par Texas Instrument.

On peut aussi imaginer une configuration du WiFI par Bluetooth !!

trimarco232:
il faut configurer le hc05 (il semble que cela ne fonctionne pas avec le hc06) de manière à ce qu’il génère un signal sur un de ses ports, à la réception dul DTR

C’est peut-être dû au fait que le HC05 peut être configuré en maître ou en esclave, alors que le HC06 seulement en esclave.

complément à la réponse au message #11 :

Pour faciliter la connection à un point d'accès ; la librairie Wifimanager :

configure (au besoin) temporairement l'ESP32 en point d'accès,
scanne l'environnement WiFi,
permet de sélectionner le réseau local auquel on veut se conecter, saisir le mot de passe
bascule l'ESP32 en mode station connecté au réseau

Il y a une possibilité d'activer ou réactiver ce processus par action sur un BP

et je continu avec mes questions comme vous me donnée des réponses concluante :stuck_out_tongue:
si je veux profiter de l option ota en wifi mon sketch ne doit pas prendre plus de 50% ou je me trompe ?
car actuelement mon sketch prend
Le croquis utilise 889141 octets (67%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 66092 octets (22%) de mémoire dynamique, ce qui laisse 228820 octets pour les variables locales. Le maximum est de 294912 octets.

Si c est le cas quel sont les solutions ?
merci

si je veux profiter de l option ota en wifi mon sketch ne doit pas prendre plus de 50% ou je me trompe ?

en gros oui, mais 50% de quoi ?

La mémoire d'un ESP32 sous IDE Arduino est partitionnée.

L'ensemble des partitions tient dans une mémoire Flash SPI de 4MB en général, soit 4 194 304 octets
Quand le compilateur te dis "Le maximum est de 1310720 octets." il te renseigne sur la taille d'une des deux partitions disponibles pour loger ton code. Une autre partition de taille identique permet en cas d'OTA de loger le futur code. Pas de souci pour l'OTA, l'emplacement a été réservé.

Pour information la table de partition par défaut est dans tools\partitions
la voilà avec ses 2 partitions (égales) pour le code:

[tt]# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
[color=red]app0,     app,  ota_0,   0x10000, 0x140000[/color],
[color=red]app1,     app,  ota_1,   0x150000,0x140000,[/color]
eeprom,   data, 0x99,    0x290000,0x1000,
spiffs,   data, spiffs,  0x291000,0x16F000,

[/tt]

:slight_smile: merci tu es trop rapide je venais de te transférer la question sur l autre poste .
merci merci merci

Du coup il et intéressant de stocker les paramètre wifi ssid et mdp ainsi que les paramètre BT dans l eeprom pour ne pas perdre les réglage lors de la mise a jour ?

al1fch:
en gros oui, mais 50% de quoi ?

La mémoire d'un ESP32 sous IDE Arduino est partitionnée.

L'ensemble des partitions tient dans une mémoire Flash SPI de 4MB en général, soit 4 194 304 octets
Quand le compilateur te dis "Le maximum est de 1310720 octets." il te renseigne sur la taille d'une des deux partitions disponibles pour loger ton code. Une autre partition de taille identique permet en cas d'OTA de loger le futur code. Pas de souci pour l'OTA, l'emplacement a été réservé.

Pour information la table de partition par défaut est dans tools\partitions
la voilà avec ses 2 partitions (égales) pour le code:

[tt]# Name,   Type, SubType, Offset,  Size, Flags

nvs,      data, nvs,    0x9000,  0x5000,
otadata,  data, ota,    0xe000,  0x2000,
app0,    app,  ota_0,  0x10000, 0x140000,
app1,    app,  ota_1,  0x150000,0x140000,
eeprom,  data, 0x99,    0x290000,0x1000,
spiffs,  data, spiffs,  0x291000,0x16F000,


[/tt]

il se pourrait (je n’ai pas creusé) que le ssid et le mot de passe valides soient , comme pour l’ESP8266 systématiquement stockés dans un coin de la mémoire Flash (partition nvs ?) pour que la prochaine connection au démarrage soit plus rapide

Il n’y a, bien entendu, pas de véritable EEPROM dans l’ESP32 mais une partition de mémoire Flash émulant ce fonctionnement. les contraintes en terme de nombre d’écritures et d’effacements sont celles de la technologie Flash.