ESP8266 + AT + 华为云使用MQTT进行通讯

发布时间:2026/7/13 11:26:16

ESP8266 + AT + 华为云使用MQTT进行通讯 前言快要秋招了,快马加鞭的在自己的最强项目里面加了给ESP8266MQTT的功能,当然这里面最烦的就是AT指令了,翻了很多帖子,发现针对于华为云的指令较少,同时看到评论区的大家会在最后一步上报数据的时候总是ERROR,特此,我写了这篇博客,针对ESP8266华为云的些许指令进行分享先说结论:首先请明确你是使用串口助手进行调试还是使用单片机的串口进行发送的,我发现很多人都没有提及这个情况,因为这两种情况完全不一样,指令也会有些许不一样!!!!!!!!!!!!!!!串口助手:(微软商店自带的串口助手还挺好用的,还可以自定义背景,我爱甘雨姐姐~)步骤一:AT 回车,测试AT指令是否有效:!!!!!注意,一定要加回车!!!!!!!,看清楚我的串口助手输入框步骤2ATCWMODE1加回车 返回OK!!!!!注意,一定要加回车!!!!!!!,看清楚我的串口助手输入框(这里截图截的不好,没有把回车截里面,其实跟上面的一样,输入完指令必须按一下回车)不要看下面的两个WIFI CONNECT 与 WIFI GOT IP,那是因为我的esp之前已经连上我的热点了,现在他自己连上了,步骤3:ATCWJAPWIFI名称WIFI密码加回车 返回OK!!!!!注意,一定要加回车!!!!!!!如果像我一样输入这个指令之前,esp已经自动连接上热点,会自己先断开,然后再重新连接步骤4:ATMQTTUSERCFG0,1用户ID也叫client ID三元组用户名(其实就是device ID)三元组密码,0,0加回车!!!!!注意,一定要加回车!!!!!!!步骤5:ATMQTTCONN0,域名,1883,0 加回车!!!!!注意,一定要加回车!!!!!!!步骤6:ATMQTTSUB0,服务ID,0!!!!!注意,一定要加回车!!!!!!!步骤7:ATMQTTPUB0,$oc/devices/设备ID/sys/properties/report,{\services\:[{\service_id\:\服务ID\\,\properties\:{\属性1\:属性1数值\,\属性2\:属性2数值\,\属性3\:属性3数值}}]},0,0!!!!!注意,一定要加回车!!!!!!!这条指令才是最主要的,这里但凡你少了一个\都会导致ERROR,上报失败,所以请仔细检查每个属性数值后面的逗号前面都要加一个/服务ID后面的逗号前面也要加一个/单片机使用串口发送AT指令给ESP:这里其是跟上面的差不多,因为一般都是使用字符串的,只需要再每一条指令后面加上\r\n就可以了唯独上报数据的指令不一样:直接上代码(我看很多都是单属性上报的,我这里是3个属性,实验无论是单个还是多个,按照这个格式都没问题):sprintf(command, ATMQTTPUB0,\$oc/devices/%s/sys/properties/report\,\{\\\services\\\:[{\\\service_id\\\:\\\%s\\\\\,\\\properties\\\:{\\\temperature\\\:%d\\,\\\wet\\\:%d\\,\\\switch\\\:%d}}]}\,0,0\r\n, Deveice_ID, Service_ID, 27, 55, 0);注意:1.大括号里面的双引号前面必须加3个\,也就是\\\ 逗号则是加2个\,也就是\\2.sprintf里面的指令最好不要换行,直接一行,因为换行要加额外的 \,同时换行后的空格也会影响指令,到参数的时候再换行ok就这么多,如果还是哪里有问题请在评论区指出,我再次实验看看.......

相关新闻