Raspberry Pi 2 domotique : ESP8266, Nodemcu et Lua (9)

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 :

[checklist]

  • 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

[/checklist]

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 ! 😉

 

Publications similaires

  • Google I/O ou Apple Keynote : j’ai choisi :)

    Fan des nouveautés, je suis le premier à suivre les conférences des principaux acteurs technologiques du marché, dont Apple et Google. Chez Apple, tout est cadré, verrouillé, prévu, anticipé. Les intervenants sont dopés à l’enthousiasme américain : tout est amaaaaaaaazing, great et tout est forcément nouveau. « Ceci est une révolution », cette petite phrase régulièrement moquée n’en prend que tout son sens tellement rien n’est désormais plus révolutionnaire, juste évolutif. Chez Google, lors de la fameuse I/O, THE conférence qui réunit les développeurs du…

  • Colissimo : indemniser un envoi au delà de J+2

    Si vous utilisez les envois Colissimo en ligne et déposez le paquet en bureau de poste, soyez très attentif au suivi de votre envoi, en vérifiant en priorité s’il a bien été livré en J+2, c’est à dire 2 jours OUVRABLES (= pas dimanche, pas de jours fériés) après son dépôt, le tampon de La Poste étant une preuve irréfutable. S’il a été livré en J+3 ou plus, la procédure est simple : imprimez le suivi internet que vous avez…

  • |

    Alimentation POE : les limites

    Alimentation un point d’accès en POE présente un avantage certain : ne pas devoir tirer de ligne électrique proche du dit point d’accès, tout passant par le câble ethernet. Seulement, il ne faut pas oublier l’atténuation du câble : avec 12 V au départ, combien de volts vont arriver au bout ? Si ce n’est pas problématique sur 10 ou 25 m, cela peut le devenir sur 100 m, conduisant à une sous-alimentation de votre module WiFi, et à un symptôme…

  • | |

    Tasmota : la domotique facile

    Peut-être ne connaissez vous pas Tasmota, un firmware domotique qui permet de re-flasher certains modules, vous savez ceux qui discutent avec d’obscures serveurs chinois, ceux qui demandent à associer une application Android par marque. Avec Tasmota, terminé : vous unifiez tous vos modules avec un seul et même firmware, vous les faites pointer vers votre broker MQTT et vous gérez vous même vos besoins en domotique. Voici un test avec un interrupteur mural Sonoff T1 1CH. Commençons par le démonter…

  • Statistiques du blog

    Cela faisait longtemps que je ne vous avais pas donné les statistiques du blog 😉 14 873 visiteurs depuis un mois selon Google Analytics. Mais le plus amusant, c’est la progression en dent de scie sur une année, du 12 Septembre 2010 au 12 Septembre 2011 par exemple : Nous avons fait une pointe à 788 visiteurs/jour le 28 Juin 2011, un record absolu pour l’instant. Et si nous observons la progression depuis le début du blog, en Octobre 2008,…

  • Lexique : firmware

    Le firmware est le logiciel qui permet de faire fonctionner un appareil. Ce logiciel est généralement modifiable, mis à jour pour évoluer vers de nouvelles fonctionnalités ou vers plus de stabilités & moins de bugs (regardez les Freebox par exemple). La mise à jour se fera soit de façon automatique, cas des Freebox, Livebox, et de pas mal d’autres appareils connectés en permanence au réseau internet, ou sera déclenchée manuellement par VOUS, l’utilisateur final : votre point d’accès, votre routeur,…