6
6
import uasyncio as asyncio
7
7
import uos as os
8
8
import utime as time
9
- from leds import power_led
9
+ from leds import power_led , relay
10
10
from ntp import ntp_sync
11
11
from watchdog import watchdog
12
12
from wifi import wifi
13
- from leds import power_led , relay
14
13
15
14
rtc = machine .RTC ()
16
15
button_pin = machine .Pin (0 , machine .Pin .IN )
@@ -21,6 +20,9 @@ def send_web_page(writer, message=''):
21
20
yield from writer .awrite ('Content-type: text/html; charset=utf-8\r \n ' )
22
21
yield from writer .awrite ('Connection: close\r \n \r \n ' )
23
22
23
+ alloc = gc .mem_alloc () / 1024
24
+ free = gc .mem_free () / 1024
25
+
24
26
with open ('webswitch.html' , 'r' ) as f :
25
27
yield from writer .awrite (f .read ().format (
26
28
state = relay .state ,
@@ -29,10 +31,12 @@ def send_web_page(writer, message=''):
29
31
wifi = wifi ,
30
32
ntp_sync = ntp_sync ,
31
33
watchdog = watchdog ,
34
+ rtc_memory = machine .RTC ().memory (),
32
35
33
36
utc = rtc .datetime (),
34
- alloc = gc .mem_alloc (),
35
- free = gc .mem_free (),
37
+ total = alloc + free ,
38
+ alloc = alloc ,
39
+ free = free ,
36
40
))
37
41
gc .collect ()
38
42
@@ -62,7 +66,7 @@ async def request_handler(reader, writer):
62
66
63
67
not_found = True
64
68
soft_reset = False
65
- hard_reset = False
69
+ reset = False
66
70
67
71
if method == 'GET' :
68
72
if url == '/' :
@@ -89,27 +93,15 @@ async def request_handler(reader, writer):
89
93
yield from send_web_page (writer , message = 'power off' )
90
94
not_found = False
91
95
92
- elif url == '/?soft_reset ' :
96
+ elif url == '/?reset ' :
93
97
relay .off ()
94
98
yield from send_web_page (
95
99
writer ,
96
100
message = (
97
- 'Soft reset device...'
101
+ 'Reset device...'
98
102
' Restart WebServer by pressing the Button on your device!'
99
103
))
100
- print ('Soft reset device...' )
101
- soft_reset = True
102
- not_found = False
103
-
104
- elif url == '/?hard_reset' :
105
- relay .off ()
106
- yield from send_web_page (
107
- writer ,
108
- message = (
109
- 'Hard reset device...'
110
- ' Restart WebServer by pressing the Button on your device!'
111
- ))
112
- hard_reset = True
104
+ reset = True
113
105
not_found = False
114
106
115
107
if not_found :
@@ -119,19 +111,13 @@ async def request_handler(reader, writer):
119
111
yield from writer .aclose ()
120
112
gc .collect ()
121
113
122
- if hard_reset :
114
+ if reset :
123
115
print ('Hard reset device wait with flash LED...' )
124
116
power_led .flash (sleep = 0.1 , count = 20 )
125
117
print ('Hard reset device...' )
126
118
machine .reset ()
127
119
sys .exit ()
128
120
129
- if soft_reset :
130
- print ('Soft reset device wait with flash LED...' )
131
- power_led .flash (sleep = 0.1 , count = 20 )
132
- print ('Soft reset device...' )
133
- sys .exit ()
134
-
135
121
watchdog .feed ()
136
122
power_led .on ()
137
123
@@ -144,7 +130,7 @@ def main():
144
130
print ('Wait for WiFi connection %s sec.' % s )
145
131
time .sleep (s )
146
132
s += 5
147
-
133
+
148
134
print ('Start webserver on %s...' % wifi .station .ifconfig ()[0 ])
149
135
loop = asyncio .get_event_loop ()
150
136
0 commit comments