ESP8266透明串口转MQTT模块使用说明
ESP8266透明串口转MQTT模块使用说明
更新历史
日期 撰写 备注
2023.9.2 YTH
ESP8266透明串口转MQTT模块开发
模块功能
在ESP-01S模块基础上进行了程序升级,串口数据直接转MQTT传输,支持OneNET,百度云,腾讯云等,无需关注AT指令集。
2 串口驱动
如果已经安装了CH340驱动程序,跳过本步骤。
参考连接。
https://www.wch.cn/videos/ch340.html
3 快速验证功能
3.1 模块默认功能:
1)Dev->模块->(onenet 或者 终端):
数据格式例如: {“LED”:1}
2)(onenet 或者 终端) ->模块-> Dev:
主题例如: cmd/mb
数据格式例如: {“LED”:1}
3.2 手机开启热点
Ssid:easy
PWD:12345678
3.3 云端查看
1)登录OneNET
https://open.iot.10086.cn/passport/login/
用户名:R1XB67t5YWoSBF
密码: @yan123456
- 进入测试项目
https://open.iot.10086.cn/develop/mqtt/product/#/device/list?pid=614404
3.4 串口调试器
4 修改ESP8266参数
*4.1 硬件环境准备
如果配置了模块手机热点(请关闭手机热点),如果配置了模块连接路由器(请断电路由器)。
4.2 PC连接WIFI路由 “TTT01-xxxx”
这个动作可能需要比较长的等待。
4.3 登录ESP8266
HTTP:192.168.4.1
4.4 配置参数
序号 参数名 值 备注
1 串口参数 9600,19200,38400,115200 n,8,1
默认8个数据位,1个停止位,无校验位。
2 路由网络 不用中文,不留空格
3 路由密码 8位及以上
4 远程主机
5 远程端口 OneNET 旧版的为6002
6 用户ID 参考各个云平台的要求。
7 用户名
8 用户密码
9 订阅主题 #为通配符
10 发布主题 没有通配符
11 心跳包 单位:毫秒
修改完参数,“保存参数”,模块会自动上电重启。
5 MCU编程参考
无需特殊操作,直接操控串口,注意数据格式为json格式。双引号要用转义字符“\”,例如Char myData[]=”{\“led\”:1}”
以下以51单片机为例,说明如何编程。
- 发布数据
void SendByte(unsigned char ch)
{
SBUF=ch;
While(TI==0);
TI=0;
}
void Publish(char *strPlayload)
{
char ch;
While(1)
{
ch= *(strPlayload++)
if(ch==0)break;
SendByte (ch)
}
}
void main(void)
{
while(1)
{
char myData[]=”{\“led\”:1}”
Publish(myData)
}
}
- 接收数据
#define MAX 100
unsigned char g_recvBuf[MAX];
int g_index;
int g_OldIndex;
void Recv Clear (void)
{
g_index=0;
g_OldIndex=0;
}
void usart_isr()interrupt 4
{
if(RI)
{
if(g_index<MAX)
{
g_recvBuf[g_index++]=SBUF;
}
RI=0;
}
}
int Recv_Ok(void)
{
if(g_index>0)
{
Delay(100);
If(g_OldIndex!= g_index)
{
g_OldIndex= g_index;
Return 1;
}
return 0;//100ms没有新数据接收,表示接收完成。
}
return 1;
}
void ProgFun()
{
//对g_recvBuf进行处理
}
void main(void)
{
Recv Clear ();
while(1)
{
EA=1;
ES=1;
if(Recv_Ok()==0)
{
//接收数据处理。
ProgFun();
Recv Clear ();
}
}
}