Étape 4: Le LUA ESP8266 côté
Les fichiers .lua sur le ESP8266 font le gros de l’analyse les chaînes venant via fsockets. Ils « attraper » la charge utile (pl) venant du serveur Web et l’analyse pour obtenir des instructions.
Dans cet exemple, quatre fichiers sont nécessaires :
- init.lua
- serverNode.lua
- wifi_tools.lua
- GetStatus.lua
Au départ, ces fichiers doivent être téléchargées à l’ESP, via le port FTDI et COM.
init.lua, servernode.lua et wifi_tools.lua doivent toujours être dans le système de fichiers de l’ESP. Ils doivent être disponibles pour « dofile() ».
C’est un des mises en garde mentionnées plus tôt.
Lors du démarrage de l’ESP, il doit démarrer dans un mode de serveur et il doit être en mesure d’accéder aux « dofile() » wifi_tools.lua.
Si vous « formatez » le contrôleur, le dos à un FTDI et un port COM. Oui, vous pouvez mettre en forme via le WiFi.
À l’exception de "wifi_tools.lua" et "servernode.lua", ces fichiers peuvent être enlevés et transférés entre les redémarrages.
!! « wifi_tools.lua » et « servernode.lua » peuvent seulement être écrasées, jamais supprimé!!
La taille du « wifi_tools.lua » et « servernode.lua » normalement, ne peut dépasser 1200 octets (caractères ASCII, y compris les espaces et les sauts de ligne)
Si « wifi_tools.lua » est plus grand que 1 200 octets, il sera partiellement écrite et provoquera « panique » lorsque l’ESP tente de dofile de la servernode.lua d’ajouter le reste du fichier.
« servernode.lua » est un fichier de serveur TCP générique, code se trouve sur le site de NodeMCU api avec cet ajout :
- Si string.sub (pl, 0, 11) == "** commande **" puis
- dofile("wifi_tools.lua")
- fin
- Si string.find (pl, « statut ») puis
- dofile("GetStatus.lua")
- TMR.Delay(250)
- file.Open (« info.lua », « r »)
- Conn : send(file.read())
- file.Close("info.lua")
- fin
La variable « pl » est la charge utile de la connexion fsocket, il s’agit de la chaîne générée par le côté serveur de fichiers PHP.
Si ** commande ** est découvert que la chaîne de données est analysée par wifi_tools.lua pour connaître les détails exacts et des commandes.
La routine « getstatus.lua » est un peu compliquée, mais il nous permet de voir quels fichiers sont en fait sur l’ESP de manière quasi temps réel. Il illustre aussi la capacité de créer et de servir des fichiers dynamiquement.