ESP8622 Webinterface for Local Variables

by strontzak in Circuits > Wireless

3802 Views, 28 Favorites, 0 Comments

ESP8622 Webinterface for Local Variables

2.JPG

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 :

Testmovie :

here : youtube

Load De Lua Code Into Your Esp

1.png
  1. download the code: here :
  2. open ESPlorer
  3. open the code
  4. edit your SSID and SSID pasword to yours
  5. press :"save to esp"
  6. hard reboot , restart your ESPmodule

Start Up ESP and Your Browser

6.JPG
1.png

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

weblocal
3.JPG
4.JPG

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...

5.JPG

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....")