Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- minresponse3.py
- #min network web AP server from perplexity.
- import network
- import socket
- import machine
- import do_csv, do_log
- adcpin = 4
- sensor = machine.ADC(adcpin)
- # Set up access point
- ap = network.WLAN(network.AP_IF)
- te =""
- templ = "template1.html" #update when form changes
- led = machine.Pin("LED", machine.Pin.OUT)
- led.on()
- ap.config(essid='NAME', password='PASSWORD')
- ap.active(True)
- while not ap.isconnected():
- pass
- print('AP Mode Is Active, You can Now Connect')
- print('IP Address To Connect to::', ap.ifconfig()[0])
- # Set up socket
- addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
- s = socket.socket()
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #promising fix?
- s.bind(addr)
- s.listen(1)
- print('Listening on', addr)
- while True:
- cl, addr = s.accept()
- print('Got a connection from', addr)
- request = cl.recv(1024)
- request_str = request.decode('utf-8')
- lines = request_str.split('\r\n')
- if lines==['']:
- print("lines have only one value")
- else:
- method, path, protocol = lines[0].split(' ')
- print('The method,path,protocol= ',method,path,protocol)
- if path=='/':
- print("Very short path",path)
- try:
- with open(templ, 'r') as file: #('simpleled2.html', 'r')
- te = file.read()
- except OSError:
- te = "Error: template0.html file not found."
- response = """\
- HTTP/1.1 200 OK
- Content-Type: text/html
- Content-Length: {}
- {}
- """.format(len(te), te) #(len(x), x)
- #-------------------do tasks based in path params-------------
- if "toggle" in path:
- led.toggle()
- if "exttemp" in path:
- response = response.replace("***", "123456789")
- if "inttemp" in path:
- volt = (3.3/65535) * sensor.read_u16()
- temperature = 27 - (volt - 0.706)/0.001721
- response = response.replace("***", str(round(temperature,1)))
- if "csv" in path:
- print("csv in path ...")
- response = do_csv.do_csv()
- if "log" in path:
- print("log in path ...")
- response = do_log.do_log()
- cl.send(response)
- cl.close()
- ================================next, do_csv.py========
- #do_text.py
- def do_csv():
- # Attempt to read the my-log.txt file
- try:
- with open('log.csv', 'r') as file: #('simpleled2.html', 'r')
- log_data = file.read()
- except OSError:
- log_data = "Error: my-log.txt file not found."
- html3 = """\
- HTTP/1.1 200 OK
- Content-Type: text/csv
- Content-Disposition: attachment; filename="log.csv"
- Content-Length: {}
- {}
- """.format(len(log_data), log_data) #(len(x), x)
- return html3
- ================================next, do_log.py==========
- #do_text.py
- def do_log():
- # Attempt to read the my-log.txt file
- try:
- with open('my-log.txt', 'r') as file: #('simpleled2.html', 'r')
- log_data = file.read()
- except OSError:
- log_data = "Error: my-log.txt file not found."
- html3 = """\
- HTTP/1.1 200 OK
- Content-Type: text/plain
- Content-Disposition: attachment; filename="my-log.txt"
- Content-Length: {}
- {}
- """.format(len(log_data), log_data) #(len(x), x)
- return html3
- # response = """\
- # HTTP/1.1 200 OK
- # Content-Type: text/csv
- # Content-Disposition: attachment; filename="log.csv"
- # Content-Length: {}
- #
- # {}
- #
- # """.format(len(log_data), log_data)
- =============next template1.html============
- <html>
- <body>
- <h2>Pi PicoW tasks</h2>
- <p>Pick a task from the list</p>
- <form action="/choice">
- <label for="tasks">Choose a task:</label>
- <select id="tasks" name="tasks" size="6">
- <option value="toggle">Toggle</option>
- <option value="exttemp">Exttemp</option>
- <option value="inttemp">Inttemp</option>
- <option value="csv">Csv</option>
- <option value="log">Log</option>
- <option value="other">Other</option>
- </select><br><br>
- <input type="submit">
- </form>
- <p> Information : *** </p>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment