3029浏览
查看: 3029|回复: 1

基于UIFLOW部署ESPNOW局域网应用的简单示范

[复制链接]
M5Stack的在线编程平台UIFLOW最近进行了1.4.0更新,加入了ESP-NOW功能,可以实现主从机的消息传递,接下来通过实例来演示功能实现。
该实验使用ESP-NOW进行通信,通过M5StickC接入PIR进行人体检测,当检查有人员活动时,远端的M5STACK会收到提示。
先介绍一下ESPNOW的几个模块
基于UIFLOW部署ESPNOW局域网应用的简单示范图1

Get mac addr 代表获取本机的MAC地址,只有主机知道了MAC地址才能添加到通信列表
Add peer ff:ff:ff:ff:ff:ff as id()  这里是主机需要添加的从机地址,写在主机程序中。目前UIFlow中的通信只能实现单向通信,无法实现双向通信
Set pmk 设置ESP-NOW通信需要的密钥,如果没有设置会默认自动配置
Broadcast data发送数据广播
Receive mac_addr()data() 接收数据后回调执行的函数,接收MAC地址与数据
After send message flag() 发送数据后执行的回调函数,返回布尔值
Send message id() with data() 向指定的ID发送数据



先介绍M5StickC部分
基于UIFLOW部署ESPNOW局域网应用的简单示范图2

插入图片绘制画面,并使用Label作为提示,为了方便查看本机的MAC地址,设置A键进行页面的切换显示,使用一个变量Mode用于标记。打印文字默认背景为黑色,因此在这里设置背景,当切换回首页时因为主题为白色,所以背景改为白色
基于UIFLOW部署ESPNOW局域网应用的简单示范图3

以上为按键部分,接下来研究发送消息的主体


基于UIFLOW部署ESPNOW局域网应用的简单示范图4


首先要添加peer即从机的mac地址,并设置ID,在Mode为真的情况下(显示首页的情况下),通过PIR来判断是否有人靠近,条件为真,点亮屏幕同时向从机(ID1)发送消息,如果没有人靠近则熄灭屏幕
再来看一下从机接收部分,同样的希望有两个页面显示,如果按下按键A那么mode为真,进入查看MAC地址页面,再次按下mode为假返回显示图片页面,当然主机没有发送消息之前图片不会显示


基于UIFLOW部署ESPNOW局域网应用的简单示范图5
定义一个接收消息的回调函数,当接受到消息时显示定义好的图片,由于PIR传感器自带延时因此,发送的消息不会只发送一次,这里会接收到好几次消息,接收到消息后按下B按键会跳出循环直到下一次重新接收,当然没收到消息屏幕是灭掉的。
基于UIFLOW部署ESPNOW局域网应用的简单示范图6

远程提示内容为一张图片

基于UIFLOW部署ESPNOW局域网应用的简单示范图7


gada888  版主

发表于 2019-9-17 08:06:50

不错的程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail