scheduler: first steps
This commit is contained in:
		
						commit
						74f02e1dc8
					
				
					 3 changed files with 132 additions and 0 deletions
				
			
		
							
								
								
									
										117
									
								
								boot.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								boot.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,117 @@ | |||
| # ssid, password | ||||
| import wifi | ||||
| import usocket as socket | ||||
| 
 | ||||
| from machine import Pin | ||||
| import network | ||||
| 
 | ||||
| import esp | ||||
| esp.osdebug(None) | ||||
| 
 | ||||
| import re | ||||
| 
 | ||||
| import gc | ||||
| gc.collect() | ||||
| 
 | ||||
| CONFIG_FILE='schedule.conf' | ||||
| def web_page(): | ||||
|   html = """<html> | ||||
|     <head> | ||||
|       <title>ESP Web Server</title> | ||||
|       <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||
|       <link rel="icon" href="data:,"> | ||||
|       <style> | ||||
|         html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;} | ||||
|         h1{color: #0F3376; padding: 2vh;} | ||||
|         p{font-size: 1.5rem;} | ||||
|       </style> | ||||
|     </head> | ||||
|     <body> | ||||
|       <h1>CONFIG</h1>  | ||||
|       <form action="/" method="GET"> | ||||
|       <p>date (e.g. 2019-05-20) <input type="text" name="date" /></p> | ||||
|       <p>time (e.g. 18-05) <input type="text" name="time" /></p> | ||||
|       <p>1-on <input type="text" name="1-off" />   1-off <input type="text" name="1-off" /></p> | ||||
|       <p>2-on <input type="text" name="2-off" />   2-off <input type="text" name="2-off" /></p> | ||||
|       <p><input type="submit" value="send" /></p> | ||||
|       </form> | ||||
|     </body> | ||||
|   </html>""" | ||||
|   return html | ||||
| 
 | ||||
| # D1 | ||||
| pin_cfgled = Pin(16, Pin.OUT) | ||||
| # D0 | ||||
| pin_cfg = Pin(5, Pin.IN) | ||||
| # D4 | ||||
| pin_led = Pin(2, Pin.OUT) | ||||
| 
 | ||||
| 
 | ||||
| try: | ||||
|   f = open(CONFIG_FILE, 'r') | ||||
|   CONFIG=f.read() | ||||
|   print("CONFIG: %s" % CONFIG) | ||||
|   f.close() | ||||
| except: | ||||
|   print("CONFIG empty") | ||||
|   pass | ||||
| 
 | ||||
| if (pin_cfg.value() == 1): | ||||
|   # ON | ||||
|   pin_cfgled.off() | ||||
| 
 | ||||
|   station = network.WLAN(network.STA_IF) | ||||
|   station.active(True) | ||||
|   station.connect(wifi.ssid, wifi.password) | ||||
| 
 | ||||
|   while station.isconnected() == False: | ||||
|     pass | ||||
| 
 | ||||
|   print('Connection successful') | ||||
|   print(station.ifconfig()) | ||||
| 
 | ||||
| 
 | ||||
|   s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||||
|   s.bind(('', 80)) | ||||
|   s.listen(5) | ||||
| 
 | ||||
|   print('Configuration now...') | ||||
|   while True: | ||||
|     conn, addr = s.accept() | ||||
|     print('Got a connection from %s' % str(addr)) | ||||
|     request = conn.recv(1024) | ||||
|     request = request.decode() | ||||
|     print('Content = %s' % request) | ||||
|     request_date="YYYY-MM-DD" | ||||
|     request_time="HH-MM" | ||||
|     reg = re.search("date=[0-9-]+", request) | ||||
|     if reg: | ||||
|       request_date = reg.group(0).replace("date=", "") | ||||
|     reg = re.search("time=[0-9-]+", request) | ||||
|     if reg: | ||||
|       request_time  = reg.group(0).replace("time=", "") | ||||
|     print("date: %s" % (request_date)) | ||||
|     print("time: %s" % (request_time)) | ||||
|     f = open(CONFIG_FILE, 'w') | ||||
|     f.write("date=%s;time=%s" %(request_date, request_time)) | ||||
|     f.close() | ||||
| 
 | ||||
|     # led_on = request.find('/?led=on') | ||||
|     # led_off = request.find('/?led=off') | ||||
|     # if led_on == 6: | ||||
|     #   print('LED ON') | ||||
|     #   ledpin.value(1) | ||||
|     # if led_off == 6: | ||||
|     #   print('LED OFF') | ||||
|     #   ledpin.value(0) | ||||
|     response = web_page() | ||||
|     conn.send('HTTP/1.1 200 OK\n') | ||||
|     conn.send('Content-Type: text/html\n') | ||||
|     conn.send('Connection: close\n\n') | ||||
|     conn.sendall(response) | ||||
|     conn.close() | ||||
| 
 | ||||
| else: | ||||
|   # OFF | ||||
|   pin_cfgled.on() | ||||
|   print('Connection disabled') | ||||
							
								
								
									
										12
									
								
								main.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								main.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| import time | ||||
| 
 | ||||
| enabled = True | ||||
| while True: | ||||
|   if enabled: | ||||
|     pin_led.on() | ||||
|     time.sleep | ||||
|   else: | ||||
|     pin_led.off() | ||||
| 
 | ||||
|   enabled = not enabled | ||||
|   time.sleep(1) | ||||
							
								
								
									
										3
									
								
								venv/pyvenv.cfg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								venv/pyvenv.cfg
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| home = /usr/bin | ||||
| include-system-site-packages = false | ||||
| version = 3.7.3 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue