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: