未來板MicroPython編程10:無綫通訊
導入未來板庫
需要先導入未來板的庫才可以使用未來板的硬件。
from future import *
10: 無綫通訊
導入無綫通訊庫
from radio import *
1. 初始化無綫通訊
r=Radio(trigger)
可以在括號裏呼叫函數,每當收到訊息時會自動觸發。
2. 設定通訊頻道
r.channel=1
需要雙方都在同一個頻道上才能通訊。
3. 讀取訊息
r.read()
4. 發佈信息
r.send(msg)
範例程式1:直接讀取
import time
from radio import *
r = Radio()
print('channel', r.channel)
r.channel = 12
while True:
time.sleep(1)
a = r.read()
if a:
print('get', a)
範例程式2:自動觸發
from radio import *
def onmsg(msg, mac):
print('get', msg, 'from', mac)
r = Radio(onmsg)
print('channel', r.channel)
r.channel = 12
r.send("hello world")
進階範例程式:MESH無綫通訊(ESPNOW)
# 1. 啟動WiFi
import network
w0 = network.WLAN(network.STA_IF)
w0.active(True)
# 2. 取得自機的MAC地址
mac = w0.config('mac')
>>> mac
b'\xc4O3"\xdb\x89'
# 3. 導入espnow
from esp import espnow
e = espnow.ESPNow()
e.init()
# 4. 加入對方的MAC地址
# 注意: 不是自己的MAC地址
e.add_peer(b'\x8c\xaa\xb5\xb9\xf8\xf0')
# 5. 信息觸發
def rxcb(mac, msg):
print("Recv:", mac, msg)
e.on_recv(rxcb)
# 6. 發佈信息
e.send(b'\x8c\xaa\xb5\xb9\xf8\xf0', 'hello world')
# 在接收端可以看到
# Recv: b'\xc4O3"\xdb\x89' b'hello world'
Last updated