Suite des aventures domotiques de notre Raspberry Pi 2, avec l’arrivée récente d’une platine de développement Nodemcu :

nodemcu

 

Disons le de suite, pour le moment avec OS/X c’est un peu galère, j’ai du valider une machine virtuelle sous Winchose 7 pour venir installer les différents logiciels de programmation. Je jongle donc entre deux OS et un langage de programmation : le LUA

Un détail : je ne suis pas un programmeur, j’apprends au fur et à mesure, et le LUA, comme le C++ sont pour moi aussi évocateurs que le vénusien du nord, c’est dire. Seulement voilà, en une journée et demie, j’ai réussi à m’amuser un peu, par exemple avec un script tout bête permettant de venir se connecter à un AP WiFi et à identifier une trame envoyée sur le port UDP 5000.

J’ai donc installé LuaLoader pour un confort maximum. Ce petit logiciel va pouvoir :

  • gérer le port RS232
  • mettre à jour le firmware
  • uploader des scripts
  • exécuter des scripts
  • effacer la mémoire (reformater)
  • lister le contenu de la mémoire (les différents fichiers, etc.)
  • activer le WiFi (AP, client, cryptage, etc.) si votre script ne le fait pas

C’est le couteau suisse de la programmation Lua sur l’ESP8266 en fait, j’adore.

Retour à notre script donc, avec trois étapes :

  • connexion au réseau WiFi (remplacez reseau_wifi et password par vos valeurs)
  • écoute du port UDP 5000
  • détection des trames reçues sur ce port UDP 5000

Et voici le script :

wifi.sta.config("reseau_wifi","password")
wifi.sta.connect()
tmr.delay(1000000)   -- wait 1,000,000 us = 1 second
print(wifi.sta.status())
print(wifi.sta.getip())
port=5000
srv=net.createServer(net.UDP)
srv:on("receive", function(srv, pl)
   print("Command Received")
   print(pl)
   if pl=="EXTON\n" then print("EXTERIEUR ON")  end
   if pl=="EXTOFF\n" then print("EXTERIEUR OFF")  end
   end)
srv:listen(port)

Je l’ai sauvegardé sous le nom test.ula, original je sais… et je le lance avec une ligne de commande toute simple :

dofile(“test.lua”)

Le résultat s’affiche  alors en direct sur votre LuaLoader lorsque des trames UDP sont reçues sur le port 5000 :

esp8266_lua

Pour envoyer vos trames, sous OS/X entrez : nc -u 192.168.1.195 5000 puis frappez vos commandes + entrée. D’autres possibilités existent bien entendu suivant vos environnements de travail : Winchose, Android, Ubuntu, etc. Je vous laisse chercher sur Google les détails pour émettre vos trames.

Donc, avec notre bête script, lorsque nous envoyons EXTON s’affiche EXTERIEUR ON. Si je transmets EXTOFF, j’obtiens un EXTERIEUR OFF. Simple non ?

A vous maintenant de gérer selon vos besoin, de venir activer les ports GPiO, etc. Ah oui, pensez à bien ajouter le “\n” après la chaine à identifier : c’est le retour à la ligne qui est transmis avec chaque trame. Pour que le script démarre à la mise sous tension, inscrivez le simplement dans init.lua au lieu de test.lua.

Et voilà, à vous de jouer ! 😉