无线广播

掌控板提供2.4G的无线射频通讯,共 13 Channel。可实现一定区域内的简易组网通讯。在相同通道下,成员可接收广播消息。就类似,对讲机一样。在相同频道下,实现通话。

../../_images/radio.png

对讲机

radio

发送数据给特定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
get_mac(mode)

获取自身网卡mac地址

参数:

mode (int) – 0 sta地址/1 ap地址

返回:

16进制字符串mac地址

返回类型:

str

class MPythonESPNow
broadcast_data(msg)

发送无线广播数据,群发

参数:

msg (str) – 无线广播数据

class MPythonESPNow
set_add_peer(peer_mac)

将提供的mac地址注册为对等地址,私发需要注册,群发不需要

参数:

peer_mac (str) – mac地址 16进制字符串

class MPythonESPNow
send_msg(peer_mac, msg)

发送无线广播数据,私发

参数:
  • peer_mac (str) – mac地址 16进制字符串

  • msg (str) – 无线广播数据

class MPythonESPNow
set_irq_callback(espnow_recv_callback)

设置接收消息回调处理函数

参数:

espnow_recv_callback (function) – 回调函数

espnow_recv_callback(espnow_obj)

espnow_mac, espnow_data, espnow_rssi = espnow_obj.recv_msg() 接收消息对象

变量:
  • espnow_mac (str) – 广播消息设备mac地址

  • espnow_data (str) – 接收消息

  • espnow_rssi (str) – 广播信号强度 dBm