25 KiB
Remote
功能说明
通过手机或电脑在网页端控制M5Stack设备
-
Set Title 设置控制页面显示的标题内容.
-
Remote qrcode show in x y size 生成网页的二维码展示位置与大小.
-
Add Remote Switch Button index 添加切换开关按钮(0或1),当点击时运行块内的程序.
-
Add Remote Button index 添加按钮,当点击时运行块内的程序.
-
Add Remote Slider 添加滑动条,使用前先添加变量,通过滑动条改变变量,执行块内的程序
-
Add Remote Label index interval 通过添加标签显示数据,设定刷新时间间隔.
Instructions
屏幕显示网页端二维码,扫码进入控制页面,通过按键和滑动条控制LED Bar,同时显示ENV模块的温度.
ESP-NOW
功能说明
ESP-NOW 是一种短程低功耗通信协议,可以使多个设备在没有或不使用 Wi-Fi 的情况下进行通信。这种协议类似常见于无线鼠标中的低功耗 2.4GHz 无线连接——设备在进行通信之前要进行配对。配对之后,设备之间的连接是持续的、点对点的,并且不需要握手协议.
-
Get mac addr 获取本机的mac地址.
-
Add peer ff as id 添加指定mac地址,并设置为id
-
Set pmk 设置配对密钥
-
Broadcast data 广播指定数据
-
Receive mac_addr data 接收数据,获取发送者mac地址以及携带的数据内容
-
After send message flag 发送回调函数,在执行发送信息后自动执行回调函数,并返回是否发送成功的标志位flag.成功为True,失败为False.
-
Send message id with data 发送数据至指定的id的设备.
使用方法
接收端
将本机mac地址显示在屏幕上,使用数据接收块并创建两个变量用于接收发送者地址与数据内容.在接收块函数内部进行数据的处理,用作显示或是判断等其他操作.如下方程序通过判断接收数据是否为"1",控制LED灯的开关.
注意:创建的变量名称不允许与形参名称一致,即不允许使用名称为"addr"、"data"的变量用作数据获取
发送端
添加接收端设备的mac地址,在发送程序中填写发送的数据内容、选择接收的设备的id.使用按键程序去控制数据的发送.使用回调函数能够帮助我们判断数据是否成功从本机发送出去.我们需要用一个变量去获取它的返回结果.
注意:创建的变量名称不允许与形参名称一致,即不允许使用名称为"flag"的变量用作数据获取
完成程序编辑,分别运行接收端与发射端程序,即可实现ESP-NOW短程无线通信.
?>注意: 运行ESP-NOW时,若通信设备均连接同一个WiFi网络,则无需配置通信频道,可正常通信。 否则请在程序中配置通信频道,并download程序至设备运行。
MQTT communication
什么是MQTT?
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议
该协议构建于TCP/IP协议上,由IBM在1999年发布。
MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
UIFlow与MQTT
在UIFlow中,我们可以使用MQTT功能实现两个或是多个CORE之间的通讯与交互,从而实现强大的远程控制功能
MQTT server
- 选择MQTT服务
要使用MQTT协议进行数据交互,需要服务器的支持,有很多第三方的服务器平台可以选择,在这里我们演示的平台为CloudMQTT
当你在平台已经创建好了服务支持,你会得到一些配置信息,如服务器地址,用户名,密码等,在UIFlow的MQTT块中将使用这些信息
- MQTT功能
在UIFlow的高级功能中,可以找到MQTT功能块,我们可以把MQTT协议简单的理解为两个环节,"发布"(Publish) 与 "订阅"(Subscribe)
当发布者发布消息后,订阅者将获取这一信息,从而实现设备之间的通讯
初始化程序
- MQTT配置块
添加一个MQTT配置块,并连接到Setup块上
- 信息填写
填写你个人或是第三方服务器平台上的服务器信息,为接下来的连接做准备
注意
- 当你有多个设备同时使用时,ID名称(下图的ID为"M5stack")不允许与配置信息中的其他选项重复,同时不允许与其他设备的ID重复,同一时间里,同一服务器中,同一ID名称的设备只允许有一个在线
- MQTT Start
在MQTT配置块下方添加Start块,这表示,当配置信息后则开始运行
Publish发布
功能说明
Publish发布指的是,通讯中发布数据的环节,为发布内容包含两个部分 “主题”(topic),“内容”(msg)
- Publish “主题”(topic)
设定一个发布主题,当其他设备想要获取该主题下的内容信息时,则需要订阅相匹配的主题名
- Publish “内容”(msg)
设定要发布的内容信息
使用方法
当程序运行到Publish发布块时,进行消息发布。例: 当按下A按钮时,进行消息发布(主题为"RGB",内容为"open") 当按下B按钮时,进行消息发布(主题为"RGB",内容为"close")
Subscribe订阅
功能说明
Subscribe订阅指的是,通讯中接收数据的环节,当发布者发布了信息后,订阅者将自动接收已订阅的主题(topic),消息内容(msg)
- Subscribe “主题”(topic)
设定要订阅的主题
- Get topic data “内容”(msg)
获取该订阅下的消息内容
使用方法
添加Subscribe块,并填写要订阅的主题(topic),使用Get topic data块获取,并处理分析,例:
当从Publish那获取了一个"open",点亮RGB bar,当获取到"close",则熄灭RGB bar
使用案例
实现功能
用一个CORE编程一个简单的使用案例来验证功能,它即使发布者(Publish),也是订阅者(Subscribe)
- 完整程序
使用方法
当按下A按钮时,进行消息发布(主题为"RGB",内容为"open"),RGB bar点亮
当按下B按钮时,进行消息发布(主题为"RGB",内容为"close"), RGB bar熄灭
WiFi
功能说明
设置wifi网络
-
wifi connect 建立wifi网络
-
wifi reconnect wifi重新连接
-
wifi is connect 返回wifi连接状态
-
Connect to Wi-Fi SSID PASSWORD 设置SSID和密码
使用方法
wifi连接指定的SSID
P2P
功能说明
设置点对点通信
-
P2P Send To APIKey Msg 通过MQTT服务器验证APIKey发送消息实现点对点远程控制
-
P2P Read 读取远程P2P发送的数据
使用方法
建立P2P并发送消息.
Easy IO
功能说明
I/O引脚配置
-
analog read pin 读取引脚模拟量
-
analog write pin duty 设置引脚占空比
-
digital read Value 读取引脚数字量
-
digital toggle pin 切换引脚值
-
map from low from high to low to high 将值进行区间映射
Instructions
将温度传感器的值映射到0-100区间
PIN
功能说明
引脚自定义配置
-
Init Pin mode Pull 设置引脚模式
-
set HIGH 设置引脚高电平
-
set LOW 设置引脚低电平
-
Get Value 获取引脚值
-
Set Value 设置引脚值
Instructions
设置引脚5上拉输出高电平
PWM
功能说明
PWM功能设置
-
Init in Pin freq duty use timer 设置通道引脚频率、占空比和定时器
-
set freq to 改变频率
-
set duty to 改变占空比
-
Pause 禁用PWM功能
-
Resume 重新启用PWM功能
使用说明
使用0号定时器设置PWM0引脚25频率500占空比50
ADC
功能说明
模数转换
-
Init in Pin 设置采样通道引脚
-
set width 设置采样宽度
-
set atten 设置ADC输入衰减
- ADC.ATTN_0DB:0dB衰减,提供最大1.00v的输入电压
- ADC.ATTN_2_5DB:2.5dB衰减,提供大约1.34v的最大输入电压
- ADC.ATTN_6DB:6dB衰减,提供大约2.00v的最大输入电压
- ADC.ATTN_11DB:11dB衰减,提供大约3.6v的最大输入电压
-
read value 读取adc
使用说明
使用adc0通道在36引脚进行采样,读取数值
DAC
功能说明
数模转换
-
Init in Pin 设置转换通道
-
write value 写入DA值
-
beep with freq duration scale 设置蜂鸣器频率,时间和振幅
-
waveform with freq type duration scale offset invert 设置波形频率振幅偏移量
-
stop wave 停止输出
-
set freq 设置频率
使用说明
使用dac0通道在25引脚输出波形
UART
功能说明
串口数据收发
-
set tx rx baud use uart 设置串口引脚和波特率
-
read all 一次性读取串口全部数据
-
read characters 读取指定数量的数据
-
read line 读取\n前的数据
-
remain cache 读取缓冲区剩余数据
-
write number in 向串口写数字
-
write a line in 向串口写一行字符串
-
write in 向串口写字符串
-
write raw date in 向串口写入原始数据(形如 b"\xff\xab")
使用说明
读取串口数据并向串口发送数据
I2C
功能说明
I2C接口设置
-
Master slave addr 设置主机接口与从机地址
-
Set at sda scl slave addr 自定义SDA SCL与从机地址
-
Write reg one byte 向寄存器地址写1个字节数据
-
Write reg one short With encode 大端模式向寄存器地址写两个字节
-
Read reg one byte 从寄存器地址读取一个字节
-
Read reg one short with decode 大端模式从寄存器地址读取两个字节
-
Read reg Read byte 从寄存器地址读取若干字节
-
Read byte 读取字节
-
Available I2C address in list 检查I2C地址是否可用
-
Scan I2C device 扫描I2C设备
使用说明
从I2C读取数据
-
Write mem data reg date type 向寄存器地址写入指定类型的数据
-
Write data type 向I2C总线写指定类型数据
-
Read mem data reg date type 从寄存器地址读取指定类型的数据
-
Read data num type 从I2C总线读取指定类型的数据
-
In data get index 从返回的数据列表中提取一个数据
向I2C写数据
从I2C读数据
Execute
功能说明
执行外部程序
使用方法
导入库
SDCard
功能说明
SD卡读写操作
-
open sdcard file mode 打开指定文件并执行读或写操作,r和r+状态下必须存在此文件,否则报错。a、w和w+模式如果不存在文件会自动创建。
-
file read all 读取文件内所有内容
-
file read bytes 读取指定字节数
-
file read line 读取一行内容
-
file write 向文件内写入内容
-
file set seek 设置读取的偏移位置
-
file get seek 获取当前的偏移位置
-
sdcard listdir 列出指定目录文件
-
file mkdir 设置读取的偏移位置
-
sdcard remove 删除指定文件
-
sdcard rmdir 删除指定目录
-
sdcard rename 文件重命名
使用说明
创建test文件夹,建立名为TEST.text的文件,写入helloM5Stack,并读取M5Stack
Http
功能说明
发送HTTP协议
-
Http Request 创建Http访问请求,方法为GET、POST、DELET、PUT、PATCH,URL为完整HTTP连接地址,以字典的形式创建数据头Headers,Data数据,发送成功执行Success,发送失败执行Fail。
-
Get Status Code 返回状态码
-
Get Data 返回请求数据
使用说明
向百度发送GET请求,返回数据并打印
EEPROM
功能说明
将重要数据以键值对的形式保存至NVS分区,防止关机后数据丢失(为防止程序处理被阻塞,5秒后数据被真正写入),请不要将数据随意反复写入NVS分区,否则将影响Flash寿命导致损坏。
-
EEPROM write key value 创建一个键值对将数据保存到EEPROM中
-
EEPROM read key 读出关键字对应的数据内容
-
EEPROM read key to int 读出关键字对应的数据内容并转为整形数据
使用说明
创建键值对写入到NVS分区,并读取数据
Modbus Master
功能说明
创建一个Modbus主机,利用ModBus协议封装数据,通过串行通讯将数据下发至从机,数据取值范围0-65535。
-
Init baud tx rx in uart crc 对通讯接口进行初始化操作,可指定波特率、发送引脚、接收引脚、串口号及CRC校验大小端模式
-
Send addr function reg addr value 向指定的从机地址发送数据包,addr为从机地址,function为功能码,reg addr为寄存器地址,value为用户数据
-
Rx buffer cache number 从缓冲区读取的字节数
-
Read rx data 读取接收的数据包,适用于自定义处理
-
Get rx addr function data 用回调的方式接收数据包,通过变量接收参数,参数自动更新
使用说明
主要功能:(从机代码见下方说明)连接两台M5Stack,通过Modbus建立主机和从机,主机按下A/B按键下发数据,并接收从机返回的数据包(接收功能码2),数据包处理方式有以下两种:
1.通过LOOP处理从机返回的数据包,在屏幕上显示。
根据Modbus协议定义,从机返回数据包至少包含3个有效数据(地址、功能码、数据),因此大于3字节视为有效数据,通过列表对数据进行解析处理
- 通过回调函数处理返回的数据包,当使用回调函数时不得使用LOOP否则会阻塞回调。
设置三个变量分别接收从机返回的地址、功能码、数据
Modbus Slave
功能说明
创建一个Modbus从机,接收ModBus封装的数据包,通过串行接口与主机通讯,数据取值范围0-65535。
-
Init addr baud tx rx in uart 对通讯接口进行初始化操作,可指定从机地址、波特率、发送引脚、接收引脚、串口号,CRC校验为大端模式
-
Init function reg addr value method 定义Modbus数据操作格式,function为功能码,reg addr为寄存器地址, value为初始默认值, method为读或写操作模式
-
Update function reg addr value 按功能码对指定的寄存器地址内数据进行更新
-
Get rx buffer data 读取缓冲区数据
-
Get reg write function reg addr value 用回调的方式获取主机发来的数据包(功能码、寄存器地址、数据),通过变量进行接收,需要自行处理
-
Get function reg addr value 获取指定的主机数据包内容,通过功能码、寄存器地址进行指定
-
send addr function reg addr value 接收到主机数据包后向主机回应发送的数据包内容
使用说明
主要功能:(主机代码见上方说明)连接两台M5Stack,通过Modbus建立主机和从机,从机接收到地址码1,功能码1,寄存器地址1的数据包后解析数据,数据为1点亮LED Bar,数据为2熄灭LED Bar,同时从机实时更新自身相应数据,并对主机做出回应(通过功能码2),从机自身通过A/B按键操作也会实时将数据上报给主机。实现方式有以下两种:
1.通过LOOP处理从机返回的数据包,及时更新数据在屏幕上显示,并进行响应。
接收指定的数据包并解析数据,判断数据做出响应并上报主机(通过功能码2),按A/B键对自身响应,并向主机发送数据包报告状态(通过功能码2)
- 通过回调函数处理返回的数据,指定数据包要对fun和reg_addr加入判断处理,当使用回调函数时不得使用LOOP否则会阻塞回调。
设置三个变量分别接收主机发送的地址、功能码、数据,使用列表获取数据,对数据进行判断处理,同时将状态通过(功能码2)上报主机。手动按A/B键在自身响应的同时也会上报主机(通过功能码2).
BLE UART(support M5Stack Fire only)
功能说明
建立蓝牙连接,开启蓝牙透传服务(仅支持M5Stack Fire)
-
Init ble uart name 初始化设置,配置蓝牙设备名称
-
BLE UART Writre 使用蓝牙发送数据
-
BLE UART remain cache 检查蓝牙串口缓存数据字节数
-
BLE UART read all 读取蓝牙串口缓存中所有数据
-
BLE UART read characters 读取蓝牙串口缓存中n个数据
使用说明
建立蓝牙透传连接,发送on/off控制LED
Blynk(support M5Stack Fire only)
与Blynk服务器连接,使用BLE连接Blynk App,实现手机端控制M5Stack Fire (仅支持M5Stack Fire)
-
Init blynk name token type BLE 初始化blynk配置,输入设备名称与App端的token.
-
Virtual write number data 向虚拟端口号写入数据
-
Notify message 向App发送系统级消息通知
-
Tweet message 向Twitter客户端发送消息通知
-
On event write get number message 从App端接收即将写入的指定虚拟端口的数据,如果不指定设为V*
-
On event read get number 读取App端指定的虚拟端口号
-
On event 蓝牙连接/断开时的回调函数
使用说明
使用Blynk控制M5StackFire的RGB灯条颜色和亮度,并在屏幕上实时显示
1.下载移动端Blynk,注册账号,您可以选择使用Blynk官方服务器,或自行搭建服务器,这里我们提供一个免费服务器供您测试(120.24.58.30:9443)。
2.使用邮箱注册Blynk账号,注册成功后使用该账号登录。
3.创建新工程,选择ESP32 Dev Board,接入方式选择BLE,同时记录下AUTH TOKEN。
4.按照下图步骤添加组件,其中BLE连接为必要组件。
Echo STT
通过ATOM Echo发送语音,获取经过转换后的文字
-
Init echo speech recognition token 填写Token,初始化语音服务.
-
Recv echo data 回调函数接收语音识别返回的数据
-
Get recv text 接收语音识别返回的数据
使用说明
ATOM Echo烧录ECHO STT相关固件,通过语音识别控制M5StackFire的LED
Pin Servo
对舵机进行控制
-
Init Pin, freq, min, max,angle range 舵机初始化设置,Pin=引脚, freq=舵机信号频率, min=最小脉冲宽度, max=最大脉冲宽度, angle angle=舵机角度范围
-
rotate to degree 舵机转动角度
-
write us 高电平时间
使用说明
控制舵机在0°和90°之间切换
NTP
通过网络服务器获取时间
-
Init ntptime with host and timezone 设置NTP服务器和时区
-
Get timestamp 获取Unix时间戳
-
Get date format with - 获取日期,显示格式为分隔符-
-
Get time format with - 获取时间,显示格式为分隔符-
-
Get date format with - and time format with : 显示日期和时间,日期格式为分隔符-,时间格式为分隔符:
-
Get year 获取年
-
Get month 获取月
-
Get day 获取日
-
Get weekday 获取星期
-
Get hour 获取小时
-
Get minute 获取分钟
-
Get second 获取秒
使用说明
显示Unix时间戳和当前的时间日期 (注意:当程序download离线运行时,需要在NTP初始化程序前,添加WiFi连接程序,使得设备连接网络。)
































































