ESP8266 config reseau en Flash

Bonjour, Je sèche sur comment accéder (voir modifier) les paramètres réseau enregistrés en Flash sur un ESP8266 lors d'un premier paramétrage ayant permis une connexion.

Je ne veux pas utiliser de librairie comme WiFiManager ou WiFiMulti etc... Mon programme est conséquent et je ne veux pas alourdir.

Le paramétrage se fait sur un écran tactile capacitif (H35B-IC). Actuellement je mets cela dans un fichier de config général dans le SPIFFS mais ce n'est pas l'idéal et surtout c'est redondant.

Merci pour toute aide.

Tu n'expliques pas tout. Est-ce que tu veux te connecter à un réseau parmi N, dont tu connais les SSID et pass ? Pour ça tu peux prévoir N boutons sur ton écran tactile. Ou bien entrer les informations de connexion via ton écran tactile ?

Merci pour la réponse. Je veux en effet saisir le SSID, Password et IP depuis mon écran tactile. Ca fonctionne déjà, c'est juste que je ne veux pas stocker ces infos dans mon fichier de config. Il me semble que la config reseau utilisé par l'esp est sous forme json, mais j'en suis pas sûr.

Je ne comprends pas, il suffit de les mettre dans des variables que tu utilises dans les fonctions pour te connecter au réseau. Nul besoin de les stocker sauf si tu veux les conserver pour la prochaine utilisation. Dans ce cas tu peux les stocker en SPIFFS

C'est ce que je fais déjà, mais la librairie stock aussi les infos, alors pourquoi vouloir réinventer la roue?

Je ne vois pas d’autre solution, sauf peut-être la PROGMEM, mais je n’ai jamais testé

Plutot que la Flash, tu peux aussi la sauvegarder dans la mémoire RTC. En particulier, tu peux regarder du coté de ma librairie KeepInRTC. Il n'y a pas de doc mais l'API est très simple et les exemples sont explicites.

Perso, j'utilise ca pour les sondes déportées de mon poulailler et de la piscine (les codes sont aussi sur mon Github). Contrairement au Flash, tu perds évidement les infos en cas de coupure de jus ... mais a l'inverse, c'est très léger pour ton code. Si je veux changer les valeurs par défaut, j'envoie des commandes en MQTT.

Ca marche très bien :)

Merci à tous pour votre aide, mais je vais en fait sauver la config réseau dans un fichier json. J'utilise déjà un fichier de config général, mais en .ini. Je vais juste sauver à part le réseau en json ça me parait plus simple.

destroyedlolo => Je n'utilise pas de module RTC, donc pas de mémoire RAM (souvent sauvé par batterie) Pour l'heure, j'utilise les interruptions et mise à l'heure par internet, aussi fiable (voir plus) qu'un module RTC et une librairie de moins à charger.

Merci encore à vous.

Non, ca n'a rien a voir avec un module horloge :) Le mémoire "RTC" (on se demande bien pourquoi ils l'ont appelé comme ça) est une partie de la RAM qui survie lorsque l'ESP8266 est mis en deep sleep et elle est incluse de base. Par contre, comme je le disais, elle sera perdu lorsque l'alim tombe.

destroyedlolo: Non, ca n'a rien a voir avec un module horloge :) Le mémoire "RTC" (on se demande bien pourquoi ils l'ont appelé comme ça)

Moi je me suis toujours demander pourquoi ils ont appelé une "tocante" comme un DS3231 une RTC.

La difficulté c'est que déjà en français les mots "date" "temps" et "heure" ont un grand nombre de significations différentes. Il n'y a que le contexte qui permet de s'y retrouver. Et en anglais c'est pareil mais à la puissance 1000. Dans les microcontôleurs une RTC est un compteur. Certain microcontroleurs comme les STM32 possèdent une entrée pour connecter une pile qui permet de de conserver le fonctionnement de ce compteur en cas d'interruption de l'alim générale.

Désolé de ne répondre que maintenant. Merci pour ces éclairages, je ne connaissais pas la mémoire RTC de l'ESP8266. Ce qu'il y a de bien ici, c'est qu'on apprend toujours quelques choses. Merci à tous.

Bonjour,

Il y a aussi l'EEPROM du 8266. Ce n'est pas une EEPROM, mais ça fonctionne tout comme. Gros avantage, les paramètres sont conservés en cas de coupure de courant. Personnellement, j'y sauve tous les paramètres avec une CRC. Si à la lecture, la CRC est bonne, on prend les paramètres EEPROM, sinon les paramètres par défaut en PROGMEM.

Toutes ces bibliothèques font partie de l'IDE Arduino ESP8266.

Bonne bidouille

MicroQuettas

Au final j'utilise mon fichier de config dans le SPIFFs et ça fonctionne. MicroQuettas => La pseudo EEPROM qui en fait une partie de la flash réservée pour cela, je connaissais, mais mon fichier est équivalent, puisqu'il est en flash aussi. Ton idée de mettre un CRC est vraiment très bonne et je la retiens, merci à toi.

Salut, Comme est que t'as fais pour utiliser l'ecran H35B-IC ? J'ai deux comme ca et j'ai pas trouve rien d'information pour le programmer. Peut tu partager information sur la programation SVP? Merci

Bonjour à tous, Pacowind9 => En fait, c'est assez simple, tu utilises le logiciel que tu as obtenu "Visual LCD Studio" et tu utilises dans la barre d'outils "flèche vers le bas" une boite de dialogue s'ouvre, règle la "com" (port) mais ne touche pas à la vitesse qui est réglé par défaut, elle n'est pas standard, mais correspond à l'écran. Bien entendu, tu as branché l'écran avec l'interface vendue avec. Après tu vides l'écran (Read LCD Setting et Output LCD Setting) histoire d'avoir une base existante (pour l'exemple) et tu manipules et tu t'inspires de l'exemple déjà installé que tu réinjectes (après compilation) et tu fais vivre ça avec ton Arduino. Moi j'ai modifié les librairies pour que ça fonctionne avec un ESP8266 mais je n'ai rien réussi avec un ESP32 (surement trop rapide)

Regardes aussi les PDF que tu as, ça t'aidera surement. Ma version de LCD Studio : 1.1.1.0, Si tu as une version plus récente, fais moi parvenir ton Zip (ou l'inverse si c'est moi qui ait la plus récente) j’attends ta réponse.