村上や |
|
ニュース |
2023年8月27日
Raspberry Pi Pico Wを購入しました。
Wifiが使えると出来ることが広がります!
Amazonで1,400年(税込)でした。衝動買いです。
早速、Raspberry Pi Pico Wをブレッドボードに差し込んでヘッダーピンを半田付けしました。
ヘッダーピンを半田付けしたRaspberry Pi Pico Wの裏面です。
WEBサイトでRaspberry Pi Pico WのLEDをON/OFFできるようにしました。
WEBサイトです。
スクリプト(main.py)です。
import network import time import socket import machine led = machine.Pin("LED", machine.Pin.OUT) led.off() # ssidは必ず2.4GHz帯(11n)の方を使用 ssid = "your ssid" pw = "your password" # ssidとpwでWLANに接続する def connect(ssid, pw): wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, pw) wait
= 0 while
wlan.isconnected() == False: print("Waiting
for connection...") time.sleep(1) wait
+= 1 if
wait > 20: raise
RuntimeError("network connection failed") #print(wlan.ifconfig()) ip = wlan.ifconfig()[0] print(f'Connected on {ip}') return
ip # ソケットを開く def open_socket(ip): address
= (ip, 80) connection
= socket.socket() connection.bind(address) connection.listen(1) return
connection # レスポンスで送信するHTML def build_html(): return
f""" <!DOCTYPE
html> <html> <head> <title>raspberry
pi pico w</title> </head> <body> <p>hello
raspberry pi pico w!</p> <p> LED: <a
href="/on?">on</a> <a
href="/off?">off</a> </p> </body> </html> """ # サーバを立ち上げる def serve(connection): while
True: client
= connection.accept()[0] request
= client.recv(1024) request
= str(request) try: request
= request.split()[1] except
IndexError: pass if
request == "/on?": led.on() elif request == "/off?": led.off() client.send(build_html()) client.close() try: ip = connect(ssid, pw) led.on() connection
= open_socket(ip) serve(connection) except KeyboardInterrupt: machine.reset() |
【バックナンバー】