Added code for Lab 9
This commit is contained in:
parent
4c5757b3cc
commit
5f40f4c866
24 changed files with 796 additions and 0 deletions
13
Lab09/MicroPython/Code/blink.py
Normal file
13
Lab09/MicroPython/Code/blink.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import machine
|
||||
|
||||
import time
|
||||
|
||||
led = machine.Pin("LED", machine.Pin.OUT) #configure GPIO-15 Pin as an output pin and create and led object for Pin class
|
||||
|
||||
while True:
|
||||
led.value(True) #turn on the LED
|
||||
time.sleep(1) #wait for one second
|
||||
led.value(False) #turn off the LED
|
||||
time.sleep(1) #wait for one second
|
||||
|
||||
|
||||
12
Lab09/MicroPython/Code/blink15.py
Normal file
12
Lab09/MicroPython/Code/blink15.py
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import machine
|
||||
|
||||
import time
|
||||
|
||||
led = machine.Pin(15, machine.Pin.OUT) #configure GPIO-15 Pin as an output pin and create and led object for Pin class
|
||||
|
||||
while True:
|
||||
led.value(True) #turn on the LED
|
||||
time.sleep(1) #wait for one second
|
||||
led.value(False) #turn off the LED
|
||||
time.sleep(1) #wait for one second
|
||||
|
||||
26
Lab09/MicroPython/Code/pwm/pwm_fade.py
Normal file
26
Lab09/MicroPython/Code/pwm/pwm_fade.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Example using PWM to fade an LED.
|
||||
|
||||
import time
|
||||
import machine
|
||||
from machine import Pin, PWM
|
||||
|
||||
|
||||
# Construct PWM object, with LED on Pin(25).
|
||||
pwm = PWM(Pin(15))
|
||||
|
||||
# Set the PWM frequency.
|
||||
pwm.freq(1000)
|
||||
|
||||
# Fade the LED in and out a few times.
|
||||
duty = 0
|
||||
direction = 1
|
||||
for _ in range(8 * 256):
|
||||
duty += direction
|
||||
if duty > 255:
|
||||
duty = 255
|
||||
direction = -1
|
||||
elif duty < 0:
|
||||
duty = 0
|
||||
direction = 1
|
||||
pwm.duty_u16(duty * duty)
|
||||
time.sleep(0.005)
|
||||
26
Lab09/MicroPython/Code/pwm/pwm_fade2.py
Normal file
26
Lab09/MicroPython/Code/pwm/pwm_fade2.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Example using PWM to fade an LED.
|
||||
|
||||
import time
|
||||
import machine
|
||||
from machine import Pin, PWM
|
||||
|
||||
|
||||
# Construct PWM object, with LED on Pin(25).
|
||||
pwm = PWM(Pin(15))
|
||||
|
||||
# Set the PWM frequency.
|
||||
pwm.freq(1000)
|
||||
|
||||
# Fade the LED in and out a few times.
|
||||
duty = 0
|
||||
direction = 1
|
||||
for _ in range(8 * 256):
|
||||
duty += direction
|
||||
if duty > 255:
|
||||
duty = 255
|
||||
direction = -1
|
||||
elif duty < 0:
|
||||
duty = 0
|
||||
direction = 1
|
||||
pwm.duty_u16(duty * duty)
|
||||
time.sleep(0.01)
|
||||
37
Lab09/MicroPython/Code/pwm/pwm_fade3.py
Normal file
37
Lab09/MicroPython/Code/pwm/pwm_fade3.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Example using PWM to fade an LED on pin GP15.
|
||||
|
||||
import time
|
||||
import machine
|
||||
from machine import Pin, PWM
|
||||
|
||||
def pwmFade(fadeTime):
|
||||
# Fade the LED in and out a few times.
|
||||
duty = 0
|
||||
direction = 1
|
||||
for _ in range(8 * 256):
|
||||
duty += direction
|
||||
if duty > 255:
|
||||
duty = 255
|
||||
direction = -1
|
||||
elif duty < 0:
|
||||
duty = 0
|
||||
direction = 1
|
||||
pwm.duty_u16(duty * duty)
|
||||
time.sleep(fadeTime)
|
||||
return 0
|
||||
|
||||
|
||||
# Construct PWM object, with LED on Pin(25).
|
||||
pwm = PWM(Pin(15))
|
||||
|
||||
# Set the PWM frequency.
|
||||
pwm.freq(1000)
|
||||
|
||||
print("Fade time is set to .001")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.001)
|
||||
|
||||
print("Fade time is set to .01")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.01)
|
||||
|
||||
37
Lab09/MicroPython/Code/pwm/pwm_fade4.py
Normal file
37
Lab09/MicroPython/Code/pwm/pwm_fade4.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Example using PWM to fade an LED on pin GP16.
|
||||
|
||||
import time
|
||||
import machine
|
||||
from machine import Pin, PWM
|
||||
|
||||
def pwmFade(fadeTime):
|
||||
# Fade the LED in and out a few times.
|
||||
duty = 0
|
||||
direction = 1
|
||||
for _ in range(8 * 256):
|
||||
duty += direction
|
||||
if duty > 255:
|
||||
duty = 255
|
||||
direction = -1
|
||||
elif duty < 0:
|
||||
duty = 0
|
||||
direction = 1
|
||||
pwm.duty_u16(duty * duty)
|
||||
time.sleep(fadeTime)
|
||||
return 0
|
||||
|
||||
|
||||
# Construct PWM object, with LED on Pin(25).
|
||||
pwm = PWM(Pin(16))
|
||||
|
||||
# Set the PWM frequency.
|
||||
pwm.freq(1000)
|
||||
|
||||
print("Fade time is set to .001")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.001)
|
||||
|
||||
print("Fade time is set to .01")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.01)
|
||||
|
||||
37
Lab09/MicroPython/Code/pwm/pwm_fade5.py
Normal file
37
Lab09/MicroPython/Code/pwm/pwm_fade5.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Example using PWM to fade an LED.
|
||||
|
||||
import time
|
||||
import machine
|
||||
from machine import Pin, PWM
|
||||
|
||||
def pwmFade(fadeTime):
|
||||
# Fade the LED in and out a few times.
|
||||
duty = 0
|
||||
direction = 1
|
||||
for _ in range(8 * 256):
|
||||
duty += direction
|
||||
if duty > 255:
|
||||
duty = 255
|
||||
direction = -1
|
||||
elif duty < 0:
|
||||
duty = 0
|
||||
direction = 1
|
||||
pwm.duty_u16(duty * duty)
|
||||
time.sleep(fadeTime)
|
||||
return 0
|
||||
|
||||
|
||||
# Construct PWM object, with LED on Pin(25).
|
||||
pwm = PWM(Pin(17))
|
||||
|
||||
# Set the PWM frequency.
|
||||
pwm.freq(1000)
|
||||
|
||||
print("Fade time is set to .001")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.001)
|
||||
|
||||
print("Fade time is set to .01")
|
||||
# Fade the LED in and out a few times.
|
||||
pwmFade(.01)
|
||||
|
||||
6
Lab09/MicroPython/Code/secrets.py
Normal file
6
Lab09/MicroPython/Code/secrets.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
secrets = {
|
||||
'location': 'Stcc',
|
||||
'ssid': 'cset@stcc',
|
||||
'password': 'c1s2e3t4',
|
||||
}
|
||||
|
||||
23
Lab09/MicroPython/Code/wifi01/wifiConnect01.py
Normal file
23
Lab09/MicroPython/Code/wifi01/wifiConnect01.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import network
|
||||
import secrets
|
||||
from utime import sleep, ticks_ms, ticks_diff
|
||||
from secrets import secrets
|
||||
|
||||
print('Connecting to WiFi Network Name:', secrets['ssid'])
|
||||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
|
||||
start = ticks_ms() # start a millisecond counter
|
||||
|
||||
if not wlan.isconnected():
|
||||
wlan.connect(secrets['ssid'], secrets['password'])
|
||||
print("Waiting for connection...")
|
||||
counter = 0
|
||||
while not wlan.isconnected():
|
||||
sleep(1)
|
||||
print(counter, '.', sep='', end='', )
|
||||
counter += 1
|
||||
|
||||
delta = ticks_diff(ticks_ms(), start)
|
||||
print("Connect Time:", delta, 'milliseconds')
|
||||
print('IP Address:', wlan.ifconfig()[0])
|
||||
17
Lab09/MicroPython/Code/wifi01/wifiScan.py
Normal file
17
Lab09/MicroPython/Code/wifi01/wifiScan.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import network
|
||||
import binascii
|
||||
import rp2
|
||||
rp2.country('us')
|
||||
wlan = network.WLAN() # network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
networks = wlan.scan() # list with tuples (ssid, bssid, channel, RSSI, security, hidden)
|
||||
networks.sort(key=lambda x:x[3],reverse=True) # sorted on RSSI (3)
|
||||
#for i, w in enumerate(networks):
|
||||
# print(i+1, w[0].decode(), binascii.hexlify(w[1]).decode(), w[2], w[3], w[4], w[5])
|
||||
# print('%2d %-30s %16s %4d %4d %4d %4d' %(i+1, w[0].decode(), binascii.hexlify(w[1]).decode(), w[2], w[3], w[4], w[5]))
|
||||
# print(type(i+1), type(w[0].decode()), type(binascii.hexlify(w[1]).decode()), type(w[2]), type(w[3]), type(w[4]), type(w[5]))
|
||||
|
||||
for i, w in enumerate(networks):
|
||||
# print(i+1, w[0].decode(), binascii.hexlify(w[1]).decode(), w[2], w[3], w[4], w[5])
|
||||
print('%2d %-30s %16s %4d %4d %4d %4d' %(i+1, w[0].decode(), binascii.hexlify(w[1]).decode(), w[2], w[3], w[4], w[5]))
|
||||
# print(type(i+1), type(w[0].decode()), type(binascii.hexlify(w[1]).decode()), type(w[2]), type(w[3]), type(w[4]), type(w[5]))
|
||||
122
Lab09/MicroPython/Code/wifi02/WebServer01.py
Normal file
122
Lab09/MicroPython/Code/wifi02/WebServer01.py
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-web-server-micropython/
|
||||
|
||||
# Import necessary modules
|
||||
import network
|
||||
import socket
|
||||
import time
|
||||
import random
|
||||
from machine import Pin
|
||||
from secrets import secrets
|
||||
|
||||
# Create an LED object on pin 'LED'
|
||||
led = Pin('LED', Pin.OUT)
|
||||
|
||||
# Wi-Fi credentials
|
||||
ssid = secrets['ssid']
|
||||
password = secrets['password']
|
||||
|
||||
# HTML template for the webpage
|
||||
def webpage(random_value, state):
|
||||
html = f"""
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Pico Web Server</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Raspberry Pi Pico Web Server</h1>
|
||||
<h2>Onboard Led Control</h2>
|
||||
<form action="./lighton">
|
||||
<input type="submit" value="Light on" />
|
||||
</form>
|
||||
<br>
|
||||
<form action="./lightoff">
|
||||
<input type="submit" value="Light off" />
|
||||
</form>
|
||||
<p>LED state: {state}</p>
|
||||
<h2>Fetch New Value</h2>
|
||||
<form action="./value">
|
||||
<input type="submit" value="Fetch value" />
|
||||
</form>
|
||||
<p>Fetched value: {random_value}</p>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
return str(html)
|
||||
|
||||
# Connect to WLAN
|
||||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
wlan.connect(ssid, password)
|
||||
|
||||
# Wait for Wi-Fi connection
|
||||
connection_timeout = 10
|
||||
while connection_timeout > 0:
|
||||
if wlan.status() >= 3:
|
||||
break
|
||||
connection_timeout -= 1
|
||||
print('Waiting for Wi-Fi connection...')
|
||||
time.sleep(1)
|
||||
|
||||
# Check if connection is successful
|
||||
if wlan.status() != 3:
|
||||
raise RuntimeError('Failed to establish a network connection')
|
||||
else:
|
||||
print('Connection successful!')
|
||||
network_info = wlan.ifconfig()
|
||||
print('IP address:', network_info[0])
|
||||
|
||||
# Set up socket and start listening
|
||||
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
|
||||
s = socket.socket()
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind(addr)
|
||||
s.listen()
|
||||
|
||||
print('Listening on', addr)
|
||||
|
||||
# Initialize variables
|
||||
state = "OFF"
|
||||
random_value = 0
|
||||
|
||||
# Main loop to listen for connections
|
||||
while True:
|
||||
try:
|
||||
conn, addr = s.accept()
|
||||
print('Got a connection from', addr)
|
||||
|
||||
# Receive and parse the request
|
||||
request = conn.recv(1024)
|
||||
request = str(request)
|
||||
print('Request content = %s' % request)
|
||||
|
||||
try:
|
||||
request = request.split()[1]
|
||||
print('Request:', request)
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
# Process the request and update variables
|
||||
if request == '/lighton?':
|
||||
print("LED on")
|
||||
led.value(1)
|
||||
state = "ON"
|
||||
elif request == '/lightoff?':
|
||||
led.value(0)
|
||||
state = 'OFF'
|
||||
elif request == '/value?':
|
||||
random_value = random.randint(0, 20)
|
||||
|
||||
# Generate HTML response
|
||||
response = webpage(random_value, state)
|
||||
|
||||
# Send the HTTP response and close the connection
|
||||
conn.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
|
||||
conn.send(response)
|
||||
conn.close()
|
||||
|
||||
except OSError as e:
|
||||
conn.close()
|
||||
print('Connection closed')
|
||||
|
||||
122
Lab09/MicroPython/Code/wifi02/WebServer02.py
Normal file
122
Lab09/MicroPython/Code/wifi02/WebServer02.py
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-web-server-micropython/
|
||||
|
||||
# Import necessary modules
|
||||
import network
|
||||
import socket
|
||||
import time
|
||||
import random
|
||||
from machine import Pin
|
||||
from secrets import secrets
|
||||
|
||||
# Create an LED object on pin 'LED'
|
||||
led = Pin('GP15', Pin.OUT)
|
||||
|
||||
# Wi-Fi credentials
|
||||
ssid = secrets['ssid']
|
||||
password = secrets['password']
|
||||
|
||||
# HTML template for the webpage
|
||||
def webpage(random_value, state):
|
||||
html = f"""
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Pico Web Server</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Raspberry Pi Pico Web Server</h1>
|
||||
<h2>Led Control for the LED cnnected to GP15</h2>
|
||||
<form action="./lighton">
|
||||
<input type="submit" value="Light on" />
|
||||
</form>
|
||||
<br>
|
||||
<form action="./lightoff">
|
||||
<input type="submit" value="Light off" />
|
||||
</form>
|
||||
<p>LED state: {state}</p>
|
||||
<h2>Fetch New Value</h2>
|
||||
<form action="./value">
|
||||
<input type="submit" value="Fetch value" />
|
||||
</form>
|
||||
<p>Fetched value: {random_value}</p>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
return str(html)
|
||||
|
||||
# Connect to WLAN
|
||||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
wlan.connect(ssid, password)
|
||||
|
||||
# Wait for Wi-Fi connection
|
||||
connection_timeout = 10
|
||||
while connection_timeout > 0:
|
||||
if wlan.status() >= 3:
|
||||
break
|
||||
connection_timeout -= 1
|
||||
print('Waiting for Wi-Fi connection...')
|
||||
time.sleep(1)
|
||||
|
||||
# Check if connection is successful
|
||||
if wlan.status() != 3:
|
||||
raise RuntimeError('Failed to establish a network connection')
|
||||
else:
|
||||
print('Connection successful!')
|
||||
network_info = wlan.ifconfig()
|
||||
print('IP address:', network_info[0])
|
||||
|
||||
# Set up socket and start listening
|
||||
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
|
||||
s = socket.socket()
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind(addr)
|
||||
s.listen()
|
||||
|
||||
print('Listening on', addr)
|
||||
|
||||
# Initialize variables
|
||||
state = "OFF"
|
||||
random_value = 0
|
||||
|
||||
# Main loop to listen for connections
|
||||
while True:
|
||||
try:
|
||||
conn, addr = s.accept()
|
||||
print('Got a connection from', addr)
|
||||
|
||||
# Receive and parse the request
|
||||
request = conn.recv(1024)
|
||||
request = str(request)
|
||||
print('Request content = %s' % request)
|
||||
|
||||
try:
|
||||
request = request.split()[1]
|
||||
print('Request:', request)
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
# Process the request and update variables
|
||||
if request == '/lighton?':
|
||||
print("LED on")
|
||||
led.value(1)
|
||||
state = "ON"
|
||||
elif request == '/lightoff?':
|
||||
led.value(0)
|
||||
state = 'OFF'
|
||||
elif request == '/value?':
|
||||
random_value = random.randint(0, 20)
|
||||
|
||||
# Generate HTML response
|
||||
response = webpage(random_value, state)
|
||||
|
||||
# Send the HTTP response and close the connection
|
||||
conn.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
|
||||
conn.send(response)
|
||||
conn.close()
|
||||
|
||||
except OSError as e:
|
||||
conn.close()
|
||||
print('Connection closed')
|
||||
|
||||
106
Lab09/MicroPython/Code/wifi03/WebServer03.py
Normal file
106
Lab09/MicroPython/Code/wifi03/WebServer03.py
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-web-server-micropython/
|
||||
|
||||
# Import necessary modules
|
||||
import network
|
||||
import socket
|
||||
import time
|
||||
import random
|
||||
from machine import Pin
|
||||
from secrets import secrets
|
||||
|
||||
# Create an LED object on pin 'LED'
|
||||
led = Pin('LED', Pin.OUT)
|
||||
|
||||
# Wi-Fi credentials
|
||||
ssid = secrets['ssid']
|
||||
password = secrets['password']
|
||||
|
||||
indexFilename = "index03.html"
|
||||
|
||||
# HTML template for the webpage
|
||||
def webpage(random_value, state):
|
||||
try:
|
||||
with open(indexFilename, 'r') as f:
|
||||
html = f.read()
|
||||
except FileNotFoundError:
|
||||
print("The file was not found.")
|
||||
except IOError:
|
||||
print("An error was encountered reading the file.")
|
||||
|
||||
return str(html)
|
||||
|
||||
# Connect to WLAN
|
||||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
wlan.connect(ssid, password)
|
||||
|
||||
# Wait for Wi-Fi connection
|
||||
connection_timeout = 10
|
||||
while connection_timeout > 0:
|
||||
if wlan.status() >= 3:
|
||||
break
|
||||
connection_timeout -= 1
|
||||
print('Waiting for Wi-Fi connection...')
|
||||
time.sleep(1)
|
||||
|
||||
# Check if connection is successful
|
||||
if wlan.status() != 3:
|
||||
raise RuntimeError('Failed to establish a network connection')
|
||||
else:
|
||||
print('Connection successful!')
|
||||
network_info = wlan.ifconfig()
|
||||
print('IP address:', network_info[0])
|
||||
|
||||
# Set up socket and start listening
|
||||
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
|
||||
s = socket.socket()
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind(addr)
|
||||
s.listen()
|
||||
|
||||
print('Listening on', addr)
|
||||
|
||||
# Initialize variables
|
||||
state = "OFF"
|
||||
random_value = 0
|
||||
|
||||
# Main loop to listen for connections
|
||||
while True:
|
||||
try:
|
||||
conn, addr = s.accept()
|
||||
print('Got a connection from', addr)
|
||||
|
||||
# Receive and parse the request
|
||||
request = conn.recv(1024)
|
||||
request = str(request)
|
||||
print('Request content = %s' % request)
|
||||
|
||||
try:
|
||||
request = request.split()[1]
|
||||
print('Request:', request)
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
# Process the request and update variables
|
||||
if request == '/lighton?':
|
||||
print("LED on")
|
||||
led.value(1)
|
||||
state = "ON"
|
||||
elif request == '/lightoff?':
|
||||
led.value(0)
|
||||
state = 'OFF'
|
||||
elif request == '/value?':
|
||||
random_value = random.randint(0, 20)
|
||||
|
||||
# Generate HTML response
|
||||
response = webpage(random_value, state)
|
||||
|
||||
# Send the HTTP response and close the connection
|
||||
conn.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
|
||||
conn.send(response)
|
||||
conn.close()
|
||||
|
||||
except OSError as e:
|
||||
conn.close()
|
||||
print('Connection closed')
|
||||
|
||||
106
Lab09/MicroPython/Code/wifi03/WebServer04.py
Normal file
106
Lab09/MicroPython/Code/wifi03/WebServer04.py
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-web-server-micropython/
|
||||
|
||||
# Import necessary modules
|
||||
import network
|
||||
import socket
|
||||
import time
|
||||
import random
|
||||
from machine import Pin
|
||||
from secrets import secrets
|
||||
|
||||
# Create an LED object on pin 'LED'
|
||||
led = Pin('GP15', Pin.OUT)
|
||||
|
||||
# Wi-Fi credentials
|
||||
ssid = secrets['ssid']
|
||||
password = secrets['password']
|
||||
|
||||
indexFilename = "index04.html"
|
||||
|
||||
# HTML template for the webpage
|
||||
def webpage(random_value, state):
|
||||
try:
|
||||
with open(indexFilename, 'r') as f:
|
||||
html = f.read()
|
||||
except FileNotFoundError:
|
||||
print("The file was not found.")
|
||||
except IOError:
|
||||
print("An error was encountered reading the file.")
|
||||
|
||||
return str(html)
|
||||
|
||||
# Connect to WLAN
|
||||
wlan = network.WLAN(network.STA_IF)
|
||||
wlan.active(True)
|
||||
wlan.connect(ssid, password)
|
||||
|
||||
# Wait for Wi-Fi connection
|
||||
connection_timeout = 10
|
||||
while connection_timeout > 0:
|
||||
if wlan.status() >= 3:
|
||||
break
|
||||
connection_timeout -= 1
|
||||
print('Waiting for Wi-Fi connection...')
|
||||
time.sleep(1)
|
||||
|
||||
# Check if connection is successful
|
||||
if wlan.status() != 3:
|
||||
raise RuntimeError('Failed to establish a network connection')
|
||||
else:
|
||||
print('Connection successful!')
|
||||
network_info = wlan.ifconfig()
|
||||
print('IP address:', network_info[0])
|
||||
|
||||
# Set up socket and start listening
|
||||
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
|
||||
s = socket.socket()
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind(addr)
|
||||
s.listen()
|
||||
|
||||
print('Listening on', addr)
|
||||
|
||||
# Initialize variables
|
||||
state = "OFF"
|
||||
random_value = 0
|
||||
|
||||
# Main loop to listen for connections
|
||||
while True:
|
||||
try:
|
||||
conn, addr = s.accept()
|
||||
print('Got a connection from', addr)
|
||||
|
||||
# Receive and parse the request
|
||||
request = conn.recv(1024)
|
||||
request = str(request)
|
||||
print('Request content = %s' % request)
|
||||
|
||||
try:
|
||||
request = request.split()[1]
|
||||
print('Request:', request)
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
# Process the request and update variables
|
||||
if request == '/lighton?':
|
||||
print("LED on")
|
||||
led.value(1)
|
||||
state = "ON"
|
||||
elif request == '/lightoff?':
|
||||
led.value(0)
|
||||
state = 'OFF'
|
||||
elif request == '/value?':
|
||||
random_value = random.randint(0, 20)
|
||||
|
||||
# Generate HTML response
|
||||
response = webpage(random_value, state)
|
||||
|
||||
# Send the HTTP response and close the connection
|
||||
conn.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
|
||||
conn.send(response)
|
||||
conn.close()
|
||||
|
||||
except OSError as e:
|
||||
conn.close()
|
||||
print('Connection closed')
|
||||
|
||||
24
Lab09/MicroPython/Code/wifi03/index03.html
Normal file
24
Lab09/MicroPython/Code/wifi03/index03.html
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Pico Web Server</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Raspberry Pi Pico Web Server</h1>
|
||||
<h2>Onboard Led Control</h2>
|
||||
<form action="./lighton">
|
||||
<input type="submit" value="Light on" />
|
||||
</form>
|
||||
<br>
|
||||
<form action="./lightoff">
|
||||
<input type="submit" value="Light off" />
|
||||
</form>
|
||||
<p>LED state: {state}</p>
|
||||
<h2>Fetch New Value</h2>
|
||||
<form action="./value">
|
||||
<input type="submit" value="Fetch value" />
|
||||
</form>
|
||||
<p>Fetched value: {random_value}</p>
|
||||
</body>
|
||||
</html>
|
||||
24
Lab09/MicroPython/Code/wifi03/index04.html
Normal file
24
Lab09/MicroPython/Code/wifi03/index04.html
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Pico Web Server</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Raspberry Pi Pico Web Server</h1>
|
||||
<h2>Led Control for the LED cnnected to GP15</h2>
|
||||
<form action="./lighton">
|
||||
<input type="submit" value="Light on" />
|
||||
</form>
|
||||
<br>
|
||||
<form action="./lightoff">
|
||||
<input type="submit" value="Light off" />
|
||||
</form>
|
||||
<p>LED state: {state}</p>
|
||||
<h2>Fetch New Value</h2>
|
||||
<form action="./value">
|
||||
<input type="submit" value="Fetch value" />
|
||||
</form>
|
||||
<p>Fetched value: {random_value}</p>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue