关联:大夏龙雀、阿里云、mqtt、dx_ct511、stm32
这一节主要来折腾上云,这里的云平台我使用阿里云,主要也是因为自己阿里云用得不多,之前主要是用onenet,这次试试阿里云,也算熟悉熟悉。
4G模块我这边使用的是大夏龙雀的4G模块,如果是新人购买,9.9就能买到测试套装,还是比较划算的,这个模块也是通过串口使用AT命令交互的,对之前使用过ESP8266的小伙伴来说应该不会很难,之所以选择4G模块而不选择ESP8266也是因为考虑到整体系统的使用场景,以野外或者长距离为主,使用WiFi会有很多局限性,所以选择4G。
这个模块我们要先研究一下数据手册,手册上有详细的命令告诉我们要怎么操作,我们这里使用MQTT协议,所以着重关心这部分:
其他的部分我们先忽略,不管,我们这里主要先看一看如何连接MQTTool T服务器以及发布消息,包括连接的一些配置,当我们搞明白,这部分后可以先尝试去连接阿里云服务器。阿里云物联网平台的具体配置可以参考网上的步骤,我这里先不列出,我们拿到所需要的一些关键参数。
这部分参数怎么使用呢?我们去参考数据手册,可以发现他已经说的很详细了。如下:
上述是我实际测试所填,具体可以参考代码内容,大夏龙雀这个4G模块还是很良心的,厂家也提供了一个测试代码,我们可以用这个测试代码加以修改就可以使用,如下
void C511_TO_MQTT(void)
{
WIFI_CheckAck("AT+MDISCONNECT\r\n","OK",1500);
delay_ms(1000);
WIFI_CheckAck("ATE0\r\n","OK",1500);
while(!WIFI_CheckAck("AT+QICSGP=1,1,\"cmnbiot\",\"\",\"\"\r\n","OK",5000));
WIFI_BUFF_MEMSET();//数据有误 清空
delay_ms(1000);
if(WIFI_CheckAck("AT+NETOPEN?\r\n","NETOPEN:0",3000))
{
while(!WIFI_CheckAck("AT+NETOPEN\r\n","NETOPEN:SUCCESS",7000));
}
WIFI_CheckAck("AT+MCONFIG=\"4G_TEST\"\r\n","OK",3000);
while(!WIFI_CheckAck("AT+MIPSTART=\"broker.emqx.io\",1883,4\r\n","MIPSTART: SUCCESS",3000));
while(!WIFI_CheckAck("AT+MCONNECT=1,60\r\n","MCONNECT: SUCCESS",3000));
while(!WIFI_CheckAck("AT+MSUB=\"app\",0\r\n","MSUB: SUCCESS",3000));
while(!WIFI_CheckAck("AT+MPUB=\"4G\",0,0,\"hello world\"\r\n","MPUB: SUCCESS",3000));
}
下面是我实际的debug信息
完成上述操作后,我们可以去云平台看一下自己的设备是否在线状态,看着没问题,那就OK了