无线广播
掌控板提供2.4G的无线射频通讯,共 13 Channel。可实现一定区域内的简易组网通讯。在相同通道下,成员可接收广播消息。就类似,对讲机一样。在相同频道下,实现通话。
对讲机
radio
发送广播消息示例
1'''广播'''
2'''广播数据'''
3import time
4import random
5from mpython import *
6from radio import *
7
8#MPythonESPNow(wifi_ch=0) wifi_ch:信道 0-14 整型
9espnow_0 = MPythonESPNow(wifi_ch=0)
10
11#MPythonESPNow.get_mac(mode=0) mode:0 sta地址/1 ap地址 16进制字符串mac地址
12oled.fill(0)
13oled.DispChar(str(espnow_0.get_mac(mode=0)), 0, 0, 1)
14oled.show()
15
16print(espnow_0.get_mac(mode=0)) # sta
17print(espnow_0.get_mac(mode=1)) # ap
18
19while True:
20 msg = random.randint(0, 99999)
21 #MPythonESPNow.broadcast_data(msg='') msg:字符串数据
22 espnow_0.broadcast_data(msg=msg)
23 print(str(msg))
24 time.sleep(0.5)
25
发送数据给特定mac地址设备示例
1'''广播'''
2'''发送数据给特定mac地址设备'''
3import time
4import random
5from mpython import *
6from radio import *
7
8espnow_0 = MPythonESPNow(0)
9
10#MPythonESPNow.set_add_peer(peer_mac='') peer_mac:mac地址 16进制字符串 将提供的mac地址注册为对等地址 7CDFA1F20AF4
11espnow_0.set_add_peer(peer_mac='7CDFA1F20ADC')
12
13print(espnow_0.get_mac(0))
14print(espnow_0.get_mac(1))
15
16while True:
17 msg = random.randint(0, 9999999)
18 print(str(msg), 0, 32, 1)
19 #MPythonESPNow.send_msg(peer_mac='',msg='') msg:字符串数据
20 espnow_0.send_msg(peer_mac='7CDFA1F20ADC', msg=msg)
21 time.sleep(0.3)
22
接收消息示例
1'''接收消息'''
2import time
3import random
4from mpython import *
5from radio import *
6
7def espnow_recv_callback(espnow_obj):
8 espnow_mac, espnow_data, espnow_rssi = espnow_obj.recv_msg() # 接收消息
9 print(espnow_data)
10 print(f"MAC: {espnow_mac}, RSSI: {espnow_rssi} dBm, Data: {espnow_data}")
11
12espnow_1 = MPythonESPNow(0)
13# MPythonESPNow.set_irq_callback(callback) callback 接收消息回调函数
14espnow_1.set_irq_callback(espnow_recv_callback)
15
16print(espnow_1.get_mac(0))
17print(espnow_1.get_mac(1))
- class MPythonESPNow(wifi_ch=0)
实例化Radio
- 参数:
wifi_ch (int) -- 设置信道 0-14
- class MPythonESPNow
- class MPythonESPNow
- set_add_peer(peer_mac)
将提供的mac地址注册为对等地址,私发需要注册,群发不需要
- 参数:
peer_mac (str) -- mac地址 16进制字符串
- class MPythonESPNow
- class MPythonESPNow
- set_irq_callback(espnow_recv_callback)
设置接收消息回调处理函数
- 参数:
espnow_recv_callback (function) -- 回调函数