天天看點

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

        前面我們已經學習了,如何操作開發闆的LED燈,那麼可以遠端控制開發闆的LED嗎?答案是:當然可以的。

一、目的

        通過電腦遠端控制開發闆上藍色的LED燈的亮滅

二、思路

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 三、實作代碼

# 整體流程
# 1. 連結wifi
# 2. 啟動網絡功能(UDP)
# 3. 接收網絡資料
# 4. 處理接收的資料


import socket
import time
import network
import machine


def do_connect():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('TP-LINK_33E4', '2019AP3029')
        i = 1
        while not wlan.isconnected():
            print("正在連結...{}".format(i))
            i += 1
            time.sleep(1)
    print('network config:', wlan.ifconfig())


def start_udp():
    # 2. 啟動網絡功能(UDP)

    # 2.1. 建立udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2.2. 綁定本地資訊
    udp_socket.bind(("0.0.0.0", 7788))

    return udp_socket


def main():
    # 1. 連結wifi
    do_connect()
    # 2. 建立UDP
    udp_socket = start_udp()
    # 3. 建立燈對象
    led = machine.Pin(2, machine.Pin.OUT)
    # 4. 接收網絡資料
    while True:
        recv_data, sender_info = udp_socket.recvfrom(1024)
        print("{}發送{}".format(sender_info, recv_data))
        recv_data_str = recv_data.decode("utf-8")
        try:
            print(recv_data_str)
        except Exception as ret:
            print("error:", ret)
        
        # 5. 處理接收的資料
        if recv_data_str == "light on":
            print("這裡是要燈亮的代碼...")
            led.value(1)
        elif recv_data_str == "light off":
            print("這裡是要燈滅的代碼...")
            led.value(0)


if __name__ == "__main__":
    main()

           

你可以複制以上代碼到Thonny中運作,如下:

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 當你停止後,在此運作會出現如下資訊,說明開發闆已經連上無線

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 隻有你通過API去關閉開發闆的無線連接配接或者掉電才會重新連接配接,下面我們把開發闆掉電然後重新上電試一下(開發闆重新上電,最好重新啟動下thonny):

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

這裡可以看到跟我們開始第一次連接配接是一樣的。

四、調試

        打開序列槽調試助手,按如下進行設定:

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 我們發送資訊試一下:

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

開發闆終端接收到資訊:

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 在序列槽調試助手我們發送“light on”,會看到開發闆藍色LED亮。

在序列槽調試助手我們發送“light off”,會看到開發闆藍色LED滅。

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈
物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 設定序列槽調試助手的字元格式,可以解碼中文字元:

物聯網開發筆記(20)- 使用Micropython開發ESP32開發闆之電腦遠端控制開發闆LED燈

 是不是很有趣,快來試一試吧!!

繼續閱讀