forked from marcoskirsch/nodemcu-httpserver
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.lua
More file actions
Latest commit
96 lines (76 loc) · 3.19 KB
/
Copy pathinit.lua
File metadata and controls
96 lines (76 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
-- Begin WiFi configuration
localwifiConfig= {}
-- wifi.STATION -- station: join a WiFi network
-- wifi.SOFTAP -- access point: create a WiFi network
-- wifi.wifi.STATIONAP -- both station and access point
wifiConfig.mode=wifi.STATIONAP-- both station and access point
wifiConfig.accessPointConfig= {}
wifiConfig.accessPointConfig.ssid="ESP-"..node.chipid() -- Name of the SSID you want to create
wifiConfig.accessPointConfig.pwd="ESP-"..node.chipid() -- WiFi password - at least 8 characters
wifiConfig.accessPointIpConfig= {}
wifiConfig.accessPointIpConfig.ip="192.168.111.1"
wifiConfig.accessPointIpConfig.netmask="255.255.255.0"
wifiConfig.accessPointIpConfig.gateway="192.168.111.1"
wifiConfig.stationPointConfig= {}
wifiConfig.stationPointConfig.ssid="Internet" -- Name of the WiFi network you want to join
wifiConfig.stationPointConfig.pwd="" -- Password for the WiFi network
-- Tell the chip to connect to the access point
wifi.setmode(wifiConfig.mode)
print('set (mode='..wifi.getmode()..')')
if (wifiConfig.mode==wifi.SOFTAP) or (wifiConfig.mode==wifi.STATIONAP) then
print('AP MAC: ',wifi.ap.getmac())
wifi.ap.config(wifiConfig.accessPointConfig)
wifi.ap.setip(wifiConfig.accessPointIpConfig)
end
if (wifiConfig.mode==wifi.STATION) or (wifiConfig.mode==wifi.STATIONAP) then
print('Client MAC: ',wifi.sta.getmac())
wifi.sta.config(wifiConfig.stationPointConfig.ssid, wifiConfig.stationPointConfig.pwd, 1)
end
print('chip: ',node.chipid())
print('heap: ',node.heap())
wifiConfig=nil
collectgarbage()
-- End WiFi configuration
-- Compile server code and remove original .lua files.
-- This only happens the first time afer the .lua files are uploaded.
localcompileAndRemoveIfNeeded=function(f)
iffile.open(f) then
file.close()
print('Compiling:', f)
node.compile(f)
file.remove(f)
collectgarbage()
end
end
localserverFiles= {'httpserver.lua', 'httpserver-basicauth.lua', 'httpserver-conf.lua', 'httpserver-b64decode.lua', 'httpserver-request.lua', 'httpserver-static.lua', 'httpserver-header.lua', 'httpserver-error.lua'}
fori, finipairs(serverFiles) docompileAndRemoveIfNeeded(f) end
compileAndRemoveIfNeeded=nil
serverFiles=nil
collectgarbage()
-- Connect to the WiFi access point.
-- Once the device is connected, you may start the HTTP server.
if (wifi.getmode() ==wifi.STATION) or (wifi.getmode() ==wifi.STATIONAP) then
localjoinCounter=0
localjoinMaxAttempts=5
tmr.alarm(0, 3000, 1, function()
localip=wifi.sta.getip()
ifip==nilandjoinCounter<joinMaxAttemptsthen
print('Connecting to WiFi Access Point ...')
joinCounter=joinCounter+1
else
ifjoinCounter==joinMaxAttemptsthen
print('Failed to connect to WiFi Access Point.')
else
print('IP: ',ip)
end
tmr.stop(0)
joinCounter=nil
joinMaxAttempts=nil
collectgarbage()
end
end)
end
-- Uncomment to automatically start the server in port 80
if (notnotwifi.sta.getip()) or (notnotwifi.ap.getip()) then
dofile("httpserver.lc")(80)
end