ESP8622 Webinterface for Local Variables
by strontzak in Circuits > Wireless
3802 Views, 28 Favorites, 0 Comments
ESP8622 Webinterface for Local Variables
This manual will show you how you can edit ( get /set) local variables and local values , from a browser.
benefit : no need to use uart and change the lua-code to change parameters , like eg : ssid pasword , or whatever you want to edit , in real time..
Tools needed.
Hardware :
- ESP8622-01
- usb to TTL adaptor
Software :
- ESPlorer link
- nodemcu firmware : lua firmware
- code lua : download
Testmovie :
here : youtube
Load De Lua Code Into Your Esp
- download the code: here :
- open ESPlorer
- open the code
- edit your SSID and SSID pasword to yours
- press :"save to esp"
- hard reboot , restart your ESPmodule
Start Up ESP and Your Browser
In the ESPLORER window you get the DHCP IP address from the ESP.
use this ip into your browser.
press GET , to see the initial values from the ESP to the browser.
press SET , to change the local values from the browser to the ESP
Demo Video
code is written to use with firefox
i tested also in chrome , but chrome did 2times a get request. , so tweak the code to use with chrome.
or download firefox here.
How the Code Works...
the local value is sended to the html-page , parsed out , and stored in the local.
also
the local is send in the ESP webserver , via a form-tag
local var1 = "initvar1"
the value is set into a input textform :
input type=\"text\" name=\"p1\" value=\"".. var1.."\"
parsed out
positiep1 = string.find(req_data, "p1")
valuep1 = (string.sub(req_data, positiep1+3, positiep2-2))
and saved to the ESP memory as local variable
var1 = valuep1
Lua Code
-- v12345vtm youtube https://youtu.be/MzH8zR34x0Y
--https://www.instructables.com/editInstructable/publish/EDRHQW8IG415EAG
-----uart mode uart.setup(0,9600,8,0,1)
-- Your Wifi connection data local SSID = "yourSSID" local SSID_PASSWORD = "yourSSIDpassword" local rtctijd = "15:50"
local var1 = "initvar1" local var2 = "initvar2" local var3 = "initvar3"
local function connect (conn, data) webcode=" "; webcode = webcode .. " " webcode = webcode .. " " webcode = webcode .. "
" webcode = webcode .. " " webcode = webcode .. "p1,ssid:" webcode = webcode .. "p2,passw:
" webcode = webcode .. "p3,time:
" webcode = webcode .. "
" webcode = webcode .. "
" webcode = webcode .. "
" conn:on ("receive",function (cn, req_data) --print("wat is dat hier") print (req_data) -- print("staat er hier iet boven")
if string.match(req_data, "p1") then
positiep1 = string.find(req_data, "p1") positiep2 = string.find(req_data, "p2") positiep3 = string.find(req_data, "p3") positieEnd = string.find(req_data, "HTTP/")
valuep1 = (string.sub(req_data, positiep1+3, positiep2-2)) valuep2 = (string.sub(req_data, positiep2+3 , positiep3-2)) valuep3 = (string.sub(req_data, positiep3+3 , positieEnd-2)) uart.write (0, valuep1 , "\r\n") uart.write (0, valuep2 , "\r\n") uart.write (0, valuep3 , "\r\n") -- = time-15-10-23-12-27-35-4
var1 = valuep1 var2 = valuep2 var3 = valuep3 --webfomtijd opslaan else -- print ("geen data in form ingevuld gewest of de browser vroeg zijn favicon.ico daarnet ook nog") end cn:send (webcode) -- Close the connection for the request cn:close ( ) end) end
function wait_for_wifi_conn ( ) tmr.alarm (1, 1000, 1, function ( ) if wifi.sta.getip ( ) == nil then print ("Waiting for Wifi connection") else tmr.stop (1) print ("ESP8266 mode is: " .. wifi.getmode ( )) print ("The module MAC address is: " .. wifi.ap.getmac ( )) print ("Config done, IP is " .. wifi.sta.getip ( )) ---gpio.write(led1, gpio.HIGH) end end) end
-- Configure the ESP as a station (client) wifi.setmode (wifi.STATION) wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)
-- Hang out until we get a wifi connection before the httpd server is started. wait_for_wifi_conn ( )
-- Create the httpd server svr = net.createServer (net.TCP, 30)
-- Server listening on port 80, call connect function if a request is received svr:listen (80, connect)
print ("uart.setup(0,9600,8,0,1) finished") print ("waiting for serial data....")