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

  • SAV : le bon usage

    Après bientôt 19 années d’activité, j’ai pu observer bon nombre de demandes SAV arriver chez Infracom. Généralement, 90% des demandes sont sans objet, et cela pour différentes raisons que je vais tenter de lister dans le présent billet. Lisez la doc : Tout d’abord, une mauvaise compréhension, voir une mauvaise utilisation sont très souvent à l’origine des problèmes rencontrés : on ne  le dira jamais assez, LISEZ CETTE PUTAIN DE DOC, traduction du célèbre RTFM en anglais. Ensuite, n’oubliez pas…

  • Livebox Inventel : quel débit maximum ?

    Si vous utilisez, comme nous, une Livebox Inventel, comment savoir quel est votre débit actuel et quel est le débit maximum ? C’est très simple : ouvrez un navigateur internet et rendez vous sur http://192.168.1.1/statsadsl.html, entrez admin et admin comme login et mot de passe, et vous accédez à la page ‘Informations Système ». Vous allez vous concentrer entre autre sur ces lignes, situées tout au début : Marge de bruit (dB) : 9.8 Atténuation (dB) : 46.5 Flux descendant possible…

  • Ajouter le PoE à un switch ordinaire

    Comment ne pas se ruiner et recycler un vieux switch 5 ports en Switch PoE 24V pour, par exemple, venir brancher une borne Unifi ? Voici le montage réalisé, avec une platine d’injection PoE disposant de 8 ports (seuls 4 seront utilisés) : Nous voyons donc l’alimentation PoE 24 V (en bas en noir), l’arrivée du courant sur le switch via un extracteur PoE (jack d’alimentation branché sur la platine d’injection), la platine d’injection PoE et ses 8 ports dont…

  • UniFi 3.0 Beta : d’ici fin 2012 !

    La version 3.0 Beta du gestionnaire Unifi se profile à l’horizon, du moins pour la fin 2012, si la fin du monde prévue pour le 21 Décembre ne bousille pas tous les plans d’Ubiquiti toutefois 😉 Les nouveautés annoncées sont assez nombreuses : gestion multi-sites détection des AP non associés compte d’admin en lecture seule signal minimum en dessous duquel aucune connexion ne sera acceptée gestion VoIP groupement de points d’accès : extérieurs, intérieurs, hotspot public, réseau privé, réseau caméras…

  • Box Android X96 sous Linux

    màj le 17 Octobre 2022 Les p’tites box android X96 Mini sont parfaitement capables de fonctionner sous Linux, mais cela suppose quelques modifications avec les nouvelles versions disposant d’un hardware très légèrement modifié. Commencez par charger l’image ISO sur https://github.com/ophub/amlogic-s9xxx-armbian/releases  en ne prenant qu’un nom contenant S905W surtout, le nom de votre CPU. Flashez l’image sur une carte micro-SD de 16 Go, je ne vous indiquerai pas la marche à suivre, Google ne manque pas de tutos. J’utilise ici le…

  • VPS OVH : Prestashop, WordPress

    Suite des aventures d’Infracom sur le VPS d’OVH, version de base à 6,57 €, une façon de se faire les dents à moindre coût, hors production pour le moment, tout en conservant la possibilité d’évoluer vers plus puissant. A l’heure actuelle, nous avons hébergé le blog WiFi et la boutique en ligne, deux copies parfaitement identiques et parfaitement opérationnelles. Certes, il ne faudra pas compter utiliser le VPS actuel en charge, mais le principe est là, testé et validé. Oui,…