最近做的项目是用NB模组作为通信模块连接ONENET云平台,采用MQTT通信协议。主要步骤有先是配网环节,模组上电发送一系列配网指令,大约24S左右可以连接到ONENET云平台。连接上后标记为联网状态,之后编写发送模块。发送数据主要采用AT指令为开头,无法像GPRS那样有透传模式。
发送指令的编写就是一个组帧的过程(主要对不同数据格式的操作),第一步获取CJSON格式需要发送的数据,之后将该数据转化为字符串形式。NB模组的帧数据需要得到十六进制形式(字符的ASCII码),此过程可以用sprintf函数直接打印16进制数到一个临时数组。之后计算出字符数,填写好帧内容,放入队列进行发送。注意malloc申请堆空间,要free释放,且指针操作后记得指回原来malloc分配的地址。我之前就是因为操作了指针,没有指回原地址导致堆溢出。