Mixly编程使用Arduino ESP32实现ESP-NOW组网


前言

Mixly编程软件,图形化编程软件,不要排斥,觉得是少儿编程,这个一定程度可以提高编程效率。环境:WIN10+Mixly编程软件+Aruino ESP32
Mixly编程软件百度搜索下载即可。ESP32用的是下图的板子。如果你手头有这个板子,但是是Micropython的固件,得重刷回Arduino的固件才可以用这个软件下载。重新刷回Arduino固件时,如果点击下载没反应,记得按一下开发板上的BOOT按键。

在这里插入图片描述


一、ESP-NOW 是什么

ESP-NOW 是由乐鑫开发的另一款无线通信协议,可以使多个设备在没有或不使用 Wi-Fi 的情况下进行通信。
这种协议类似常见于无线鼠标中的低功耗 2.4GHz 无线连接——设备在进行通信之前要进行配对。
配对之后,设备之间的连接是持续的、点对点的,并且不需要握手协议。它是一种短数据传输、无连接的快速通信技术,可以让低功耗控制器直接控制所有智能设备而无需连接路由器,适用于智能灯、遥控控制、传感器数据回传等场景。
详情可到官网下载数据手册查看。简单来说,就是一种方便的组网方式。
在这里插入图片描述
它支持怎样的组网方式?

只要获取MAC地址,可以实现一对多组网,多对一组网,ESP8266和ESP8266组网,ESP8266和ESP32组网,ESP32和ESP32组网。

二、组网步骤

1.获取MAC

代码如下(示例):
这几个标记箭头的位置注意一下。在串口和网络里的WIFI位置把两个程序块拉出来编译,选择你的串口上传即可。然后打开串口监视器,按下板子上的重启键,把MAC记录下来。后面组网时候要用。

2.组网编程

在这里插入图片描述
在WIFI模块里选择以上程序块,在串口里选择设置波特率为115200。这个程序块要注意的地方就是MAC地址。
假设你当前设备是A,手头还有设备B和C,你想ABC都发数据给D,那么你依次记录4个设备的MAC地址,设备上用标签做好标记。需要发送给哪个设备,就在MAC地址填上接收设备的MAC。
烧录成功以后打开串口看下图。
在这里插入图片描述

发送都是成功的,但是接收设备没上电的时候提示Delivery Fail,上电接收成功提示Delivery Success。重新上电无需重复导入MAC值。


总结

可以在发送数据部分添加当前设备从传感器获取的数据。多对一通信方式下,可使用一个节点接收该网的所有数据,然后再通过一个网关上传全部数据。

<think>好的,用户想了解在Mixly中配置两个ESP32通过蓝牙进行通信的方法。首先,我需要回忆Mixly的基本操作,以及ESP32Mixly中的支持情况。Mixly是一个图形化编程工具,适合初学者,但有时候具体的模块可能不如代码直接。 根据引用[2],ESP32支持MicroPython的蓝牙BLE,而Mixly可能基于类似的库。不过Mixly的模块可能需要特定的配置。用户需要两个ESP32,一个作为服务器,另一个作为客户端。 首先,硬件连接部分,确保ESP32正确连接到电脑,并在Mixly中选择正确的端口和板型。然后,在软件配置中,可能需要使用蓝牙相关的模块,比如设置BLE服务、特征值等。但Mixly的图形化界面是否有这些模块呢?可能需要查看Mixly的库是否包含ESP32的蓝牙功能。 根据引用[3],ESP32的例子中包含蓝牙通讯的示例,可能在Mixly中也有类似的示例程序。用户需要导入BLE库,并配置服务和特征UUID。然后,一个ESP32作为服务器,等待连接,另一个作为客户端,扫描并连接。 数据传输部分,可能需要使用特征值的读写操作。比如,客户端发送数据到服务器的特征值,服务器监听特征值的变化并读取数据。在Mixly中,可能需要使用事件触发块,比如当特征值改变时执行某个操作。 常见问题方面,UUID需要匹配,设备要在蓝牙范围内,代码逻辑正确。如果无法连接,可能需要检查日志或重新配置。 最后,生成相关问题,帮助用户深入理解,比如优化通信距离、数据传输格式、多设备连接等。需要确保引用正确,比如引用[2]和[3]中的相关内容。</think>### Mixly ESP32 蓝牙通信配置与实现教程 #### 一、硬件与软件准备 1. **硬件**:两个ESP32开发板(建议使用支持蓝牙的型号,如ESP32-WROOM-32)。 2. **软件**:安装最新版Mixly(需支持ESP32蓝牙库)及ESP32开发板驱动[^3]。 #### 二、配置步骤 1. **环境设置**: -Mixly中选择正确的ESP32开发板型号(如`ESP32 Dev Module`)和端口。 - 确保已加载ESP32蓝牙库(若未内置,需手动导入相关库文件)。 2. **服务端配置(接收端)**: - 创建BLE服务并定义特征值UUID(如`0000ffe1-0000-1000-8000-00805f9b34fb`)。 - 初始化BLE服务,设置广播名称(如`ESP32_Server`)。 ```arduino // Mixly图形化操作等效代码 BLE_Server.begin("ESP32_Server"); BLE_Characteristic = BLE_Server.createCharacteristic(UUID, PROPERTY_READ | PROPERTY_WRITE); ``` 3. **客户端配置(发送端)**: - 扫描附近BLE设备,筛选目标服务端名称(如`ESP32_Server`)。 - 连接服务端并绑定特征值UUID。 ```arduino // Mixly图形化操作等效代码 BLE_Client.scan(); if (BLE_Client.connect("ESP32_Server")) { BLE_Characteristic = BLE_Client.getCharacteristic(UUID); } ``` #### 三、数据传输实现 1. **发送数据**(客户端): - 向特征值写入数据(如发送字符串`Hello`)。 ```arduino BLE_Characteristic.writeValue("Hello"); ``` 2. **接收数据**(服务端): - 监听特征值变化事件并读取数据。 ```arduino if (BLE_Characteristic.valueUpdated()) { String data = BLE_Characteristic.readValue(); } ``` #### 四、调试与常见问题 1. **UUID匹配**:确保服务端与客户端使用相同的UUID。 2. **连接失败**:检查设备是否在蓝牙有效范围内(通常为10米)。 3. **数据丢失**:增加数据校验(如CRC)或降低发送频率。 #### 五、示例应用 实现两个ESP32通过蓝牙传输传感器数据(如温湿度): 1. 服务端持续广播并接收数据。 2. 客户端连接后,每隔1秒发送一次传感器数据。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粒子白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值