importosimportsocketpoolimportwifiprint("Connecting to Wi-Fi")wifi.radio.connect(os.getenv("CIRCUITPY_WIFI_SSID"),os.getenv("CIRCUITPY_WIFI_PASSWORD"))print("Connected to Wi-Fi")pool=socketpool.SocketPool(wifi.radio)print("MAC address:",":".join([hex(i)[2:]foriinwifi.radio.mac_address]))print("IP address:",wifi.radio.ipv4_address)
importipaddressimportosimporttimeimportsocketpoolimportwifitry:# Wi-Fiprint("Connecting to Wi-Fi")wifi.radio.set_ipv4_address(ipv4=ipaddress.IPv4Address(os.getenv("IPV4_ADDRESS")),netmask=ipaddress.IPv4Address(os.getenv("SUBNET_MASK")),gateway=ipaddress.IPv4Address(os.getenv("DEFAULT_GATEWAY")))wifi.radio.connect(os.getenv("WIFI_SSID"),os.getenv("WIFI_PASSWORD"))print("Connected to Wi-Fi")pool=socketpool.SocketPool(wifi.radio)print("MAC address:",":".join([hex(i)[2:]foriinwifi.radio.mac_address]))print("IP address:",wifi.radio.ipv4_address)exceptExceptionase:print(e)print("Restarting...")time.sleep(3)microcontroller.reset()
importosimporttimeimportadafruit_minimqtt.adafruit_minimqttasMQTTimportsocketpoolimportwifiprint("Connecting to Wi-Fi")wifi.radio.connect(os.getenv("WIFI_SSID"),os.getenv("WIFI_PASSWORD"))print("Connected to Wi-Fi")pool=socketpool.SocketPool(wifi.radio)print("MAC address:",":".join([hex(i)[2:]foriinwifi.radio.mac_address]))print("IP address:",wifi.radio.ipv4_address)defconnected(client,userdata,flags,rc):print("MQTT connected")defdisconnected(client,userdata,rc):print("MQTT disconnected")defmessage(client,topic,message):print("MQTT message on topic {0}: {1}".format(topic,message))mqtt_client=MQTT.MQTT(broker=os.getenv("MQTT_BROKER"),port=int(os.getenv("MQTT_PORT")),socket_pool=pool,client_id=os.getenv("MQTT_CLIENT_ID"))# Setup the callback methods abovemqtt_client.on_connect=connectedmqtt_client.on_disconnect=disconnectedmqtt_client.on_message=message# Connect the client to the MQTT broker.print("MQTT connecting")mqtt_client.connect()whileTrue:mqtt_client.loop()mqtt_client.publish("json","{\"key\": \"value\"}")print("loop")time.sleep(1)
USB シリアル通信する
CircuitPython であれば以下のコードでシリアル出力できる。
Tera Term でスピードを 115200 にすること。
12345
importtimewhileTrue:print("test")time.sleep(1)
Raspberry Pi に Raspberry Pi Pico を USB で接続したとき、以下コマンドでシリアル出力を確認できる。
importosimportmicrocontrollerimportsocketpoolimportwifiimportadafruit_ntptry:# Wi-Fiprint("Connecting to Wi-Fi")wifi.radio.connect(os.getenv("CIRCUITPY_WIFI_SSID"),os.getenv("CIRCUITPY_WIFI_PASSWORD"))print("Connected to Wi-Fi")pool=socketpool.SocketPool(wifi.radio)print("MAC address:",":".join([hex(i)[2:]foriinwifi.radio.mac_address]))print("IP address:",wifi.radio.ipv4_address)# NTPサーバーntp=adafruit_ntp.NTP(pool,tz_offset=9)print("Hello World!",ntp.datetime)exceptExceptionase:print(e)print("Restarting...")time.sleep(3)microcontroller.reset()
importosimportsocketpoolimportwifiimportadafruit_httpserverprint("Connecting to Wi-Fi")wifi.radio.connect(os.getenv("CIRCUITPY_WIFI_SSID"),os.getenv("CIRCUITPY_WIFI_PASSWORD"))print("Connected to Wi-Fi")pool=socketpool.SocketPool(wifi.radio)print("MAC address:",":".join([hex(i)[2:]foriinwifi.radio.mac_address]))print("IP address:",wifi.radio.ipv4_address)print("Hello World!")server=adafruit_httpserver.Server(pool,debug=True)@server.route("/hi","GET")defbase(request:adafruit_httpserver.Request)->adafruit_httpserver.Response:returnadafruit_httpserver.JSONResponse(request,{"message":"Hi!"},status=adafruit_httpserver.status.OK_200)server.serve_forever("0.0.0.0",80)
server.start("0.0.0.0", 80)を実行したあと while ループの中でserver.poll()を呼ぶ方法もある。