Opmerking: Een klaar om te gaan van de Raad van bestuur kan worden gekocht hier
Op deel II ga ik over hoe te programmeren de ESP8266 dus een USB naar seriële module en een terminal is niet nodig: het zal allemaal worden gedaan via het web. Ook, zal ik uitleggen hoe te rijden een binaire teller en 4 aansturen van Relais (multi op/multi af) met GPIO0 als controle- en GPIO2 als reset. Op deze manier de ESP8266 echt verandert in een krachtig apparaat dat kan worden toegevoegd aan elk automatiseringsproject en zijn eenvoudig te programmeren op site.
U kunt meer informatie krijgen op mijn projecten op de website van Horacio Bouzas
De controle firmware
De firmware moet kunnen toestaan dat de gebruiker om te verbinden met de module en de SSID en wachtwoord van het netwerk de module zal worden aangesloten op. De stappen voor het ontwerpen van de ingebouwde programmatuur zijn als volgt:
1. Zet de module op de servermodus (AP)
2. Stel een gebruikersnaam en wachtwoord
3. het maken van een server
4. luisteren op poort 80
5. module adres is 192.168.4.1
6. het presenteren van een web-pagina asking voor SSID en wachtwoord
7. Ga naar Station modus en SSID en wachtwoord instellen
8. verbinding maken met netwerk
9. start luisteren naar gebeurtenissen komen op het IP-adres toegewezen door het netwerk en de poort 9999
Hier is de code om het te doen:
File.Open("init.lua","w")
File.WriteLine ([[print ("WIFI control")]])
--module in AP modus gezet
File.WriteLine ([[wifi.setmode (wifi. SOFTAP)]])
File.WriteLine ([[afdrukken ("ESP8266 modus is:".. WiFi.getMode())]])
File.WriteLine([[cfg={}]])
--Set de SSID van de module in AP modus en toegangswachtwoord
File.WriteLine([[cfg.SSID="ESP_STATION"]])
File.WriteLine([[cfg.pwd="the_ESP8266_WIFI_password"]])
File.WriteLine ([[als ssid en wachtwoord vervolgens]])
File.WriteLine ([[afdrukken ("ESP8266 SSID is:".. cfg.SSID... "en het wachtwoord is:".. cfg.password)]])
File.WriteLine([[end]])
--Nu moet u een draadloze router van SSID genoemd ESP_STATION wanneer u voor beschikbare WIFI netwerken scant
--Kunt verbinding maken met de module vanaf een computer van het mobiele apparaat. Dus, de SSID zoeken en verbinding maken met behulp van het geselecteerde wachtwoord
File.WriteLine([[WiFi.AP.config(cfg)]])
File.WriteLine ([[ap_mac = wifi.ap.getmac()]])
--Maak een server op poort 80 en wacht op een verbinding wanneer een verbinding in c-functie komt zal worden uitgevoerd
File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
File.WriteLine([[SV:Listen(80,function(c)]])
File.WriteLine ([[c: op ("ontvangen", function (c, pl)]])
--afdrukken de nettolading pl ontvangen van de verbinding
File.WriteLine([[print(PL)]])
File.WriteLine([[print(string.Len(PL))]])
--wacht totdat de SSID komt terug en ontleden de SSID en het wachtwoord
File.WriteLine([[print(string.match(PL,"Get"))]])
File.WriteLine([[ssid_start,ssid_end=string.Find(PL,"SSID=")]])
File.WriteLine ([[als ssid_start en vervolgens ssid_end]])
File.WriteLine ([[amper1_start, amper1_end =string.find (pl,"&", ssid_end + 1)]])
File.WriteLine ([[als amper1_start en vervolgens amper1_end]])
File.WriteLine ([[http_start, http_end =string.find (pl, "HTTP/1.1", ssid_end + 1)]])
File.WriteLine ([[als http_start en vervolgens http_end]])
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 ([[afdrukken ("ESP8266 verbinden met SSID:".. SSID... "met wachtwoord:".. wachtwoord)]])
File.WriteLine ([[als ssid en wachtwoord vervolgens]])
File.WriteLine([[SV:Close()]])
--Sluit de server en de module ingesteld op STATION-modus
File.WriteLine ([[wifi.setmode (wifi. STATIONAP)]])
File.WriteLine ([[afdrukken ("ESP8266 modus nu is:".. WiFi.getMode())]])
--de module wso het kunt verbinden met het netwerk met behulp van de ontvangen SSID en het wachtwoord configureren
File.WriteLine([[WiFi.sta.config(SSID,password)]])
File.WriteLine ([[print ("het opzetten van ESP8266 voor station mode... Please wait.')]])
File.WriteLine([[TMR.delay(10000000)]])
File.WriteLine ([[afdrukken ("ESP8266 STATION IP is nu:".. WiFi.sta.getip())]])
File.WriteLine ([[afdrukken ("ESP8266 AP IP is nu:".. WiFi.AP.getip())]])
--nu de module is geconfigureerd en aangesloten op het netwerk dus laten we beginnen met het instellen van dingen voor de controle-logica
File.WriteLine ([[gpio.mode (8, gpio. UITVOER)]])
File.WriteLine ([[gpio.mode (9, gpio. UITVOER)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. HOGE)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. LAAG)]])
File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
File.WriteLine([[SV:Listen(9999,function(c)]])
File.WriteLine ([[c: op ("ontvangen", function (c, pl)]])
File.WriteLine ([[als tonumber(pl) ~ = nihil dan]])
File.WriteLine ([[if tonumber(pl) > = 1 en tonumber(pl) < = 16 then]])
File.WriteLine([[print(tonumber(PL))]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. HOGE)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. LAAG)]])
File.WriteLine ([[voor graaf =1,tonumber(pl) do]])
File.WriteLine ([[print(count)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (9, gpio. LAAG)]])
File.WriteLine([[TMR.delay(10)]])
File.WriteLine ([[gpio.write (9, gpio. HOGE)]])
File.WriteLine ([[c:send("Sequence finished")]])
File.WriteLine([[end]])
File.WriteLine([[end]])
File.WriteLine([[end]])
File.WriteLine ([[afdrukken ("ESP8266 STATION IP is nu:".. 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]])
--Dit is de webpagina waarin de SSID en het wachtwoord van de gebruiker wordt aangevraagd
File.WriteLine ([[c:send("")]])
File.WriteLine ([[c:send("")]])
File.WriteLine ([[c:send("")]])
File.WriteLine ([[c:send("ESP8266 Wireless control setup")]])
File.WriteLine ([[mac_mess1 = "de module MAC-adres is:".. ap_mac]])
File.WriteLine ([[mac_mess2 = "Je moet dit MAC-adres te vinden van het IP-adres van de module, let het."]])
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()