Pour le DeepSleep, on laisse en permanence le pontage GPIO16 RST, c'est pas génant.Jean-Marie a écrit : Que faut-il faire pour sortir du deepsleep ? simplement interrompre la liaison GPIO16-RST ?
A la fin du node.dsleep un reboot à lieu et sur Lua si le fichier init.lua existe, ce fichier s'exécute.
J'ai indiqué dans un post précédent que le Dsleep pouvait durer plusieurs heures.
Je me suis un peu avancé rapidement.
Dans le langage Lua les nombres peuvent avoir de très grandes valeurs mais dans l'implémentation de ce langage sur l'esp8266 un nombre entier semble être un nombre codé sur 32 bits.
J'ai testé dsleep ça fonctionne sur 1/2 heure mais ça ne fonctionne par sur une heure.
La valeur maximum doit être celle d'un nombre entier signé (ce qui correspond à environ 2000 secondes).
Il faut faire des tests pour voir à quoi correspond le N° de canal.Jean-Marie a écrit : Par ailleurs, il faut apprendre comment gérer les collisions, le fait que deux postes périphériques peuvent tenter de se linker et d'envoyer leur mesure en même temps à l'unité centrale. Pour tester ça, il faudrait disposer d'au moins deux postes périphériques. Donc, je dois aussi attendre mes nouveaux ESP-12.
Si ce numéro permet à un client d'être connecté à plusieurs serveurs, ce N° sert au client à savoir quel serveur à répondu.
Si le serveur conserve une table des adresse IP des clients avec le N° de canal utilisé il peut y avoir deux clients utilisant le même n° de canal.
De toute façon le serveur est obligé d'utiliser les adresses IP pour répondre.
Le nombre de clients simultanés va être fonction de la taille de la table utilisée par le serveur pour conserver les adresses IP des clients.
Espressif à utilisé un SDK pour développer le firmware des commandes AT des puce esp8266.Jean-Marie a écrit : A ce propos, SMBA38, tu peux déjà m'éclaircir un peu les idées.
Est-ce que le Espressif IoT SDK a quelque chose à voir avec le firmware du NodeMCU ?
S'ils sont différents, peux-tu un peu expliquer leur usage et les différences ?
Et est-ce encore différent de MQTT ?
Ce SDK (Software Development Kit) Contient tout ce qui est nécessaire à la recompilation du firmware des commandes AT.
Je n'est pas trop regardé ce SDK mais je suppose que tout le code source n'est pas disponible, certaines parties doivent être sous forme de librairies.
Le Programming Guide est la liste des appels possibles à ces librairies depuis un programme écrit en C.
Il ne suffit pas d'avoir des sources et des librairies, il faut également des compilateur, des éditeurs de liens.
C'est assez compliqué de partir de zéro mais il existe de "ToolChain" , ensemble des paquets utilisés dans le processus de compilation d'un programme.
Il existe des ToolChain pour linux ou pour Windows, On peut installer une toolchain sur Raspberry.
Une toolchain n'est pas universelle, elle est différente en fonction du firmware à recompiler.
Espressif propose une machine virtuelle sous Virtualbox avec tout l'environnement (ToolChain) de développement déjà installé mais sans le SDK qu'il faut récupérer à part. .
A partir du SDK, des firmwares alternatifs sont apparus.
Des ajouts aux commandes AT, des serveurs Web, l'interpréteur Lua ...
En principe les fichiers nécessaires à la recompilation d'un firmware (SDK + ajouts propres au Firmware) sont disponibles sur http://www.github.com
Par contre les "ToolChain" ne sont pas livrées.
La recompilation d'un firmware génère des fichiers binaires à flasher sur l'esp8266.
Mais attention parfois il y a plusieurs binaires à flasher dans plusieurs offsets(Adresses) sur l'esp8266.
Par exemple le SDK est à flasher à une adresse et la patrie recompilée par l'utilisateur à une autre.
Le mieux c'est de disposer d'un binaire à charger en une seule fois à l'adresse 0x00000 (avec ls SDK intégré).
Attention il existe plusieurs version de SDK.
par exmple sur nodemcu.
Code : Tout sélectionner
NodeMCU 0.9.5 build 20150213 powered by Lua 5.1.4
lua: cannot open init.lua
>
Si une nouvelle version du SDK sort, on peut recompiler Lua 5.1.4 avec ce nouveau SDK.
Ce qui compte c'est la date de la recompilation car on peut recompiler plusieurs fois avec le même SDK.
Pour les commandes AT la notion de firmware semble ajoutée, il est préférable de se baser sur la date.
Code : Tout sélectionner
AT+GMR
00200.9.5(b1) -> sdk 20 firmware 9.5
compiled @ Dec 25 2014 21:40:28
C'est le cas de l'interpréteur Lua de nodemcu.
Nodemcu c'est un firmware et une carte de développement associée.
nodemcu a du être développé par des chinois car sur certaines documentations, c'est du chinois.
Je pense qu'au début Expressif ne divulguait pas sont SDK.
Au début seul le firmware des commandes AT existait, les puces sont généralement livrées avec les commandes AT.
Les Chinois sont peut être arrivés à faire un SDK alternatif (en décompilant le binaire) , mais c'est une supposition.
Le SDK contient tout ce qui est nécessaire au pilotage du WIFI de la puce.
Seul Espressif doit bien connaître le Hardware de sa puce et les fonctions de bas niveau( comparables à des drivers)
C'est la partie la plus compliquée à développer après faire un serveur WEB en utilisant le SDK, c'est du gâteau .
Jean-Marie si tu a un PC assez puissant essaye la machine virtuelle d'Espressif, c'est assez facile à utiliser.
La toolchain est sur la machine virtuelle, les fichiers du SDK sont sur un répertoire Windows partagé.
Mais pour programmer en Lua pas besoin de recompiler nodemcu sauf si l'on veut ajouter des fonctionnalités.
Par exemple une fonction pour faire des calculs ou la vitesse d'exécution de l'interpréteur Lua est pénalisante.
En ce qui concerne MQTT.
MQTT est un service de messagerie TCP/IP simple
Les messages sont envoyés par des publieurs (les publishers) sur un canal (une chaîne d’information ) appelé Topic. Ces messages peuvent être lus par les abonnés (les subscribers). Les Topics (ou les canaux d’informations) peuvent avoir une hiérarchie qui permet de sélectionner finement les informations que l’on désire.
j'ai copié sur http://blog.guiguiabloc.fr/index.php/20 ... simplement
Nodemcu dispose de fonctions simplifiant l'utilisation de MQTT.
J'ai pas encore tésté MQTT mis je pense le faire avec un client en Lua et un serveur (Broker) sur raspberry.
Au passage, mon nouveau Raspberry 2 se trainait lamentablement.
J'ai changé la carte SD par une microSDHC avec 90MB en lecture et 50MB en écriture et c'est le jour et la nuit.
A+
SMBA38