参考链接:

使用安信可串口助手调试:

1.将串口打开,首先发送一下AT查看ESP模组是否正常,或者发送AT+TST使其重启一下;
2. 发送AT+CWMODE=1,将模组调为STA模式;
3. 发送AT+CWJAP="WiFi名字","WiFi密码",使模组连接WiFi接入网络,模组回复WIFI CONNECTEDWIFI GOT IP就是成功;
注意:模组会将WiFi的信息和模式保存在Flash中,所以下次重新上电启动之后会自动连接WiFi。
4. 发送AT+MQTTUSERCFG=0,1,"填写clientID","填写UserName","填写密码",0,0,"",设置MQTT客户端的信息;
注意:clientID的参数中有使用逗号的话需要在前面加上反斜杠,否则会返回ERROR。
在这里会出现非常麻烦的事,就是加密算法的选择,我在自己的环境上尝试了许多,发现安信可官方的参数工具不适合我,最后用了一个网页的html工具去生成哈希5
另一种信息设置方法(分步):

  • AT+MQTTUSERCFG=0,1,””,””,””,0,0,””
  • AT+MQTTUSERNAME=0,”c82b968ebe5c&a1gh70UicfD”
  • AT+MQTTPASSWORD=0,”7cbf1bf3f2e5cfe950f9c8391253700b”
  • AT+MQTTCLIENTID=0,”c82b968ebe5c|securemode=3,signmethod=hmacmd5|”
  1. 发送AT+MQTTCONN=0,"连接域名",1883,0,连接阿里云MQTT服务器,连接成功会返回+MQTTCONNECTED:0,1,"连接域名","1883","",0
  2. 这个时候就可以在阿里云上面看到设备已经上线了,接着可以进行通信测试。在这里,我选择使用NTP服务进行通信测试,因为这个功能我们后续要开发,而且NTP时钟同步的端云通信比较简单,只需要分别订阅和发布一个topic就可以了。不了解NTP服务的朋友可以查看以下的开发文档。
    关于阿里云物联网平台NTP服务的开发文档
  3. AT+MQTTPUB=0,"/ext/ntp/a11O2nfiMHT/core/request","{\"deviceSendTime\":\"1571724098000\"}",0,0向云端发送NTP请求,其中的deviceSendTime是设备本地的毫秒时间戳(这里的时间戳只是随便弄的)。成功的话云端会回复+MQTTSUBRECV:0,”/ext/ntp/产品key/设备名称/response”,100,{“deviceSendTime”:”1571724098000”,”serverSendTime”:”1596080122364”,”serverRecvTime”:”1596080122364”}
    AT+MQTTSUB=0,”/a1gh70UicfD/c82b968ebe5c/user/get”,1

DeviceSecret即为三元组中的DeviceSecret;
content为clientId、deviceName、ProductKey 的拼接: