如何利用ESP-NOW 技术实现高效物联网通信

作者:Lashley Wang

物联网应用急促发展, 市场需要一种高效、低成本的解决方案, 本期将为你详细探讨ESP-NOW技术在物联网应用中的应用,包括其技术特点、适用场景以及如何利用它实现多设备之间的高效无线通讯。

本系列第三集,依然是我们的老朋友DFRobot 高级工程师夏青(Rockets Xia)给大家讲解。

*******************************************************
主讲嘉宾:

Rockets Xia
夏青(Rockets Xia),DFRobot高级工程师,蘑菇云创客空间共同创始人

夏青经常活跃于国内外创客社区。从2008起开始致力推广创客文化,促进创客运动在中国的发展,2010年与中国创客教父李大维等打造国内首个创客空间"新车间"。2013年在DFRobot和浦软集团的支持下建设蘑菇云创客空间。作为蘑菇云创客空间共同创始人,经常鼓励和推动社区创客项目的推进。作为DFRobot高级工程师,积极致力于推动人工智能、物联网等先进技术在创客及创客教育领域的落地和推广。

本期首先介绍了ESP-NOW,这是一种由乐鑫公司定义的无连接WiFi通信协议,类似于低功耗的2.4GHz无线连接。ESP-NOW在通信前需要对设备进行配对,配对完成后连接是安全、点对点且持久的,适合于多设备的低功耗低延迟数据传输。但同时也与传统WiFi不同,ESP-NOW不需要路由器或接入点,而是通过设备MAC地址进行识别和通讯。

图片来源:DFRobot(图片来源:DFRobot)

接下来,我们来看一看由 DFRobot 提供的Beetle ESP32-C3。它不仅支持 ESP-NOW 通信,还具备低功耗和小尺寸的优势。

图片来源:DFRobot(图片来源:DFRobot)

Beetle ESP32-C3 在仅有硬币大小的体积上,引出了多达 13 个 I/O 口,同时主控板还集成锂电池充电管理功能,可以直接连接锂电池,不需要外围模块。

图片来源:DFRobot(图片来源:DFRobot)

图片来源:DFRobot(图片来源:DFRobot)

Beetle ESP32-C3 配套的扩展板在未增加太大体积的情况下,引出了更多的接口,在制作项目时焊接更加方便。板载的GDI显示屏接口,解决使用屏幕时的接线烦恼。Beetle ESP32-C3 支持Wi-Fi和Bluetooth 5 (LE)双模通讯,并且拥有详细的示例教程,通过教程可以轻松地使用控制器的无线功能,连接物联网平台。

图片来源:DFRobot(图片来源:DFRobot)

DFRobot 的 Beetle 系列开发板以其小巧且功能强大的设计着称,非常适合空间有限的项目。无论在性能还是灵活性方面,相信它们都能够完美满足大家的需求。

接下来介绍基于Beetle ESP32-C3开发板的运动按钮项目。Beetle ESP32-C3具有小尺寸、低功耗、支持WiFi和蓝牙等优点, 非常适合该项目。项目包括4个运动按钮、WS2812灯带、蜂鸣器等组件,通过ESP-NOW实现设备间的同步和交互。项目设计了3种游戏模式: 打地鼠、接力和击鼓传花, 可以用于多人游戏或智能家居控制等应用场景。

图片来源:DFRobot(图片来源:DFRobot)

图片来源:DFRobot(图片来源:DFRobot)

图片来源:DFRobot(图片来源:DFRobot)

硬件组装完成后,进入编程环节。首先我们将使用 Arduino IDE 来编写和上传代码。如果你习惯使用其他编程环境,也可以选择自己熟悉的工具和代码。选取 Arduino 中的 ESP-NOW 的示例代码,我们来看看 ESP-NOW 的能力到底怎么样。

图片来源:DFRobot(图片来源:DFRobot)

上传烧录以后我们就可以看到,发射和接收信息的延时是 2~4 ms 左右,单向传播的延时约为 2 ms 左右,相当于 1/100 秒,速度非常快。

图片来源:DFRobot(图片来源:DFRobot)

确保每个设备都能正常识别和通信后,接下来就可以进入下一步的功能实现。为了方便大家理解,这里用脑图的方式将程序结构做了梳理,供大家参考。

图片来源:DFRobot(图片来源:DFRobot)

现在和大家简单说下游戏规则的设置。在现有的程序里预设了三个模式,可以用短按来选择,长按 3 秒来确认选择。需要切换的时候,随时可以用长按来进入菜单。

模式 1 是打地鼠模式,这个模式下,我们的程序会随机在 4 个运动按钮上出现红色的信号,需要在最短时间内按下,才能获得成绩。

图片来源:DFRobot(图片来源:DFRobot)

模式 2 是接力模式,在这个模式下,每按一次运动按钮上出现绿色按钮,下一个运动按钮就会变成另外一个颜色,也就是说你需要依次按动按钮,这个时候就是接力模式。

图片来源:DFRobot(图片来源:DFRobot)

模式 3 是击鼓传花模式,进入此模式时 4 个按钮依次循环亮蓝灯,按下带屏幕的主按钮,此时亮蓝灯的那个按钮,就是被选中的“天之骄钮”了。

图片来源:DFRobot(图片来源:DFRobot)

在这个项目中,按钮的状态将通过 ESP-NOW 实时同步到所有设备,LED 和蜂鸣器会根据按钮状态作出相应的反馈。此外,此项目还可以展示不同的游戏模式,比如多人对战或合作模式,让大家看到这个项目在实际应用中的各种可能性和互动方式。

运动按钮项目不仅可以用于简单的游戏和互动,还可以扩展到其他领域,比如智能家居控制器、物联网项目等。欢迎大家发挥创意,探索 ESP-NOW 和 DFRobot 开发板的更多可能性。无论是改进现有项目,还是开发新的应用,这些技术都能为你带来无限的创作空间。

这就是本期的所有内容啦,感谢大家观看,希望大家可以从中获得有用的信息和灵感。下一期我们会进一步介绍 ESP32 另外一个高阶玩法,《ESP32在边缘计算使用 tinyML 项目的应用》,欢迎大家关注。

相关资源:
乐鑫社区-着重于技术讨论
DFRobot社区-着重于应用分享

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

相关产品

图片制造商零件编号描述可供货数量价格查看详情
BEETLE ESP32-C3 VERSION 2DFR0868BEETLE ESP32-C3 VERSION 2457 - 立即发货$64.31查看详情
ADDRESS LED STRIP SERIAL RGBFIT0612ADDRESS LED STRIP SERIAL RGB40 - 立即发货$100.32查看详情
GRAVITY: DIGITAL BUZZER MODULEDFR0032GRAVITY: DIGITAL BUZZER MODULE88 - 立即发货$16.02查看详情

关于此作者

Lashley Wang