Remarque : Un prêt à partir le Conseil d’administration peut être acheté ici
Sur la deuxième partie je vais aller sur comment programmer le ESP8266 donc une clé USB à module série et un terminal n’est pas nécessaire : il tous se fera via le web. Aussi, je vais vous expliquer comment conduire un compteur binaire et relais de commande 4 (multi sur/multi off) utilisant GPIO0 comme contrôle et GPIO2 comme reset. De cette façon le ESP8266 se transforme vraiment en un appareil puissant qui peut être ajouté à n’importe quel projet d’automatisation et son facile à programmer sur le site.
Vous pouvez obtenir plus d’informations sur mes projets au Horacio Bouzas Web site
Le firmware de contrôle
Le firmware doit être en mesure de permettre à l’utilisateur de se connecter au module et régler la SSID et mot de passe du réseau du module sera connecté à. Les étapes pour concevoir le firmware sont comme suit :
1. mettre le module en mode serveur (AP)
2. Définissez un nom et un mot de passe
3. créer un serveur
4. écouter sur le port 80
5. module adresse est 192.168.4.1
6. vous présente une page web demandant des SSID et mot de passe
7. passez en mode Station et mettre le SSID et le mot de passe
8. se connecter au réseau
9. commencer à écouter pour les événements à venir sur l’adresse ip attribuée par le réseau et le port 9999
Voici le code pour le faire :
file.Open("init.lua","w")
file.WriteLine ([[Imprimer (« WIFI control")]])
--mettre le module en mode AP
file.WriteLine ([[wifi.setmode (wifi. SOFTAP)]])
file.WriteLine ([[Imprimer ("mode ESP8266 est:".. WiFi.getMode())]])
file.WriteLine([[CFG={}]])
--Figurant le SSID du module AP mode et accès mot de passe
file.WriteLine([[cfg.SSID="ESP_STATION"]])
file.WriteLine([[cfg.pwd="the_ESP8266_WIFI_password"]])
file.WriteLine ([[if ssid et mot de passe puis]])
file.WriteLine ([[Imprimer (« ESP8266 SSID est: ".. cfg.SSID... "et le mot de passe est:"... cfg.Password)]])
file.WriteLine([[end]])
--Maintenant, vous devriez voir un routeur sans fil SSID nommé ESP_STATION lorsque vous numérisez des réseaux WIFI disponibles
--Vous permet de connecter au module d’un ordinateur de périphérique mobile. Donc, trouver le SSID et se connecter en utilisant le mot de passe choisi
file.WriteLine([[WiFi.AP.config(cfg)]])
file.WriteLine ([[ap_mac = wifi.ap.getmac()]])
--créer un serveur sur le port 80 et l’attente pour une connexion, lorsqu’une connexion se met en fonction c sera exécuté
file.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
file.WriteLine([[SV:Listen(80,Function(c)]])
file.WriteLine ([[c: sur ("recevoir", function (c, pl)]])
--imprimer la charge utile pl provenant de la connexion
file.WriteLine([[print(pl)]])
file.WriteLine([[print(String.Len(pl))]])
--Attendez que SSID revient et analyser le SSID et le mot de passe
file.WriteLine([[print(String.match(PL,"Get"))]])
file.WriteLine([[ssid_start,ssid_end=String.Find(PL,"SSID=")]])
file.WriteLine ([[if ssid_start et ssid_end puis]])
file.WriteLine ([[amper1_start, amper1_end =string.find (pl, » & », ssid_end + 1)]])
file.WriteLine ([[if amper1_start et amper1_end puis]])
file.WriteLine ([[http_start, http_end =string.find (pl, « HTTP/1.1 ", ssid_end + 1)]])
file.WriteLine ([[if http_start et http_end puis]])
file.WriteLine ([[ssid=string.sub (pl, ssid_end + 1, amper1_start-1)]])
file.WriteLine ([[password=string.sub (pl, amper1_end + 10, http_start-2)]])
file.WriteLine ([[Imprimer (« ESP8266 connexion SSID: ".. SSID... "avec mot de passe:"... mot de passe)]])
file.WriteLine ([[if ssid et mot de passe puis]])
file.WriteLine([[SV:Close()]])
--fermer le serveur et mettre le module en mode STATION
file.WriteLine ([[wifi.setmode (wifi. STATIONAP)]])
file.WriteLine ([[Imprimer (« ESP8266 mode maintenant est: ".. WiFi.getMode())]])
--configure le module wso il peut se connecter au réseau en utilisant le SSID et le mot reçu
file.WriteLine([[WiFi.STA.config(SSID,Password)]])
file.WriteLine ([[Imprimer ("mise en place ESP8266 pour le mode station... Veuillez patientez")]])
file.WriteLine([[TMR.Delay(10000000)]])
file.WriteLine ([[Imprimer ("IP STATION ESP8266 maintenant est:".. WiFi.STA.GetIP())]])
file.WriteLine ([[Imprimer (« ESP8266 AP IP maintenant est: ".. WiFi.AP.GetIP())]])
--maintenant le module est configuré et connecté au réseau permet donc commencer à définir les choses pour la logique de contrôle
file.WriteLine ([[gpio.mode (8, gpio. SORTIE)]])
file.WriteLine ([[gpio.mode (9, gpio. SORTIE)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (8, gpio. HAUTE)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (8, gpio. LOW)]])
file.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
file.WriteLine([[SV:Listen(9999,Function(c)]])
file.WriteLine ([[c: sur ("recevoir", function (c, pl)]])
file.WriteLine ([[if tonumber(pl) ~ = nil then]])
file.WriteLine ([[if tonumber(pl) > = 1 et tonumber(pl) < = 16 puis]])
file.WriteLine([[print(ToNumber(pl))]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (8, gpio. HAUTE)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (8, gpio. LOW)]])
file.WriteLine ([[pour comte =1,tonumber(pl) do]])
file.WriteLine ([[print(count)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (9, gpio. LOW)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (9, gpio. HAUTE)]])
file.WriteLine ([[c:send("Sequence finished")]])
file.WriteLine([[end]])
file.WriteLine([[end]])
file.WriteLine([[end]])
file.WriteLine ([[Imprimer ("IP STATION ESP8266 maintenant est:".. new_ip)]])
file.WriteLine ([[c:send("ESP8266 STATION IP now is:".. new_ip)]])
file.WriteLine ([[c:send("Action completed")]])
file.WriteLine([[end)]])
file.WriteLine([[end)]])
file.WriteLine([[end]])
file.WriteLine([[end]])
file.WriteLine([[end]])
file.WriteLine([[end]])
--Il s’agit de la page web qui demande le SSID et le mot de passe de l’utilisateur
file.WriteLine ([[c:send("")]])
file.WriteLine ([[c:send("")]])
file.WriteLine ([[c:send("")]])
file.WriteLine ([[c:send("ESP8266 Wireless control setup")]])
file.WriteLine ([[mac_mess1 = "l’adresse MAC du module est:".. ap_mac]])
file.WriteLine ([[mac_mess2 = « Vous aurez besoin de cette adresse MAC pour trouver l’adresse IP du module, veuillez prendre note de celui-ci. »]])
file.WriteLine ([[c:send("".. mac_mess1... "")]])
file.WriteLine ([[c:send("".. mac_mess2... "")]])
file.WriteLine ([[c:send("Enter SSID and Password for your WIFI router")]])
file.WriteLine ([[c:send("
")]])
file.WriteLine ([[c:send("
")]])
file.WriteLine([[c:Send("SSID:")]])
file.WriteLine([[c:Send("")]])
file.WriteLine ([[c:send("
")]])
file.WriteLine([[c:Send("password:")]])
file.WriteLine([[c:Send("")]])
file.WriteLine([[c:Send("")]])
file.WriteLine([[end)]])
file.WriteLine([[end)]])
file.Close()