From cbbd75ec2510dbb25dde10f75a93ea0b25a3ee67 Mon Sep 17 00:00:00 2001 From: Liz Date: Mon, 12 Jun 2023 11:00:47 -0400 Subject: [PATCH] Update code.py --- PicoW_CircuitPython_HTTP_Server/code.py | 40 +++++++++++-------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/PicoW_CircuitPython_HTTP_Server/code.py b/PicoW_CircuitPython_HTTP_Server/code.py index ea2e38d91..9ed574699 100644 --- a/PicoW_CircuitPython_HTTP_Server/code.py +++ b/PicoW_CircuitPython_HTTP_Server/code.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022 Liz Clark for Adafruit Industries +# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries # # SPDX-License-Identifier: MIT @@ -16,11 +16,7 @@ from adafruit_display_text import label import adafruit_displayio_ssd1306 import adafruit_imageload from digitalio import DigitalInOut, Direction -from adafruit_httpserver.server import HTTPServer -from adafruit_httpserver.request import HTTPRequest -from adafruit_httpserver.response import HTTPResponse -from adafruit_httpserver.methods import HTTPMethod -from adafruit_httpserver.mime_type import MIMEType +from adafruit_httpserver import Server, Request, Response, POST from adafruit_onewire.bus import OneWireBus from adafruit_ds18x20 import DS18X20 @@ -82,14 +78,14 @@ wifi.radio.connect(os.getenv('CIRCUITPY_WIFI_SSID'), os.getenv('CIRCUITPY_WIFI_P print("Connected to WiFi") pool = socketpool.SocketPool(wifi.radio) -server = HTTPServer(pool, "/static") +server = Server(pool, "/static", debug=True) # variables for HTML # comment/uncomment desired temp unit # temp_test = str(ds18.temperature) # unit = "C" -temp_test = str(c_to_f(ds18.temperature)) +temp_test = c_to_f(ds18.temperature) unit = "F" # font for HTML font_family = "monospace" @@ -126,7 +122,7 @@ def webpage():

This is a Pico W running an HTTP server with CircuitPython.


The current ambient temperature near the Pico W is - {temp_test}°{unit}


+ {temp_test:.2f}°{unit}


Control the LED on the Pico W with these buttons:


@@ -141,15 +137,14 @@ def webpage(): # route default static IP @server.route("/") -def base(request: HTTPRequest): # pylint: disable=unused-argument +def base(request: Request): # pylint: disable=unused-argument # serve the HTML f string # with content type text/html - with HTTPResponse(request, content_type=MIMEType.TYPE_HTML) as response: - response.send(f"{webpage()}") + return Response(request, f"{webpage()}", content_type='text/html') # if a button is pressed on the site -@server.route("/", method=HTTPMethod.POST) -def buttonpress(request: HTTPRequest): +@server.route("/", POST) +def buttonpress(request: Request): # get the raw text raw_text = request.raw_request.decode("utf8") print(raw_text) @@ -166,8 +161,7 @@ def buttonpress(request: HTTPRequest): # toggle the parrot_pin value parrot_pin.value = not parrot_pin.value # reload site - with HTTPResponse(request, content_type=MIMEType.TYPE_HTML) as response: - response.send(f"{webpage()}") + return Response(request, f"{webpage()}", content_type='text/html') print("starting server..") # startup the server @@ -184,19 +178,19 @@ ping_address = ipaddress.ip_address("8.8.4.4") # text objects for screen # connected to SSID text connect_text_area.text = "Connected to:" -ssid_text = "%s" % os.getenv('WIFI_SSID') +ssid_text = f"{os.getenv('CIRCUITPY_WIFI_SSID')}" ssid_text_area = label.Label( terminalio.FONT, text=ssid_text, color=0xFFFFFF, x=0, y=offset_y+15 ) splash.append(ssid_text_area) # display ip address -ip_text = "IP: %s" % wifi.radio.ipv4_address +ip_text = f"IP: {wifi.radio.ipv4_address}" ip_text_area = label.Label( terminalio.FONT, text=ip_text, color=0xFFFFFF, x=0, y=offset_y+30 ) splash.append(ip_text_area) # display temp reading -temp_text = "Temperature: %.02f F" % float(temp_test) +temp_text = f"Temperature: {temp_test:.2f} F" temp_text_area = label.Label( terminalio.FONT, text=temp_text, color=0xFFFFFF, x=0, y=offset_y+45 ) @@ -230,13 +224,13 @@ while True: print("lost connection") else: connect_text_area.text = "Connected to:" - ssid_text_area.text = "%s" % os.getenv('WIFI_SSID') + ssid_text_area.text = f"{os.getenv('CIRCUITPY_WIFI_SSID')}" print("connected") clock = time.monotonic() # comment/uncomment for desired units - # temp_test = str(ds18.temperature) - temp_test = str(c_to_f(ds18.temperature)) - temp_text_area.text = "Temperature: %s F" % temp_test + # temp_test = ds18.temperature + temp_test = c_to_f(ds18.temperature) + temp_text_area.text = f"Temperature: {temp_test:.2f} F" #if parrot is True: if parrot_pin.value is True: