NB驱动建立MQTT连接和断开MQTT连接的代码实现
生活随笔
收集整理的這篇文章主要介紹了
NB驱动建立MQTT连接和断开MQTT连接的代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 SIM7020建立MQTT連接和斷開MQTT連接的AT指令
- 2 SIM7020連接阿里云的流程
- 3 代碼實現
1 SIM7020建立MQTT連接和斷開MQTT連接的AT指令
首先看下相關AT指令:
//創建連接 [11-14 17:51:10:942]AT+CMQNEW="a1gPAyS0jai.iot-as-mqtt.cnshanghai.aliyuncs.com","1883",12000,1024 [11-14 17:51:12:058]+CMQNEW: 0 [11-14 17:51:12:058]OK//配置三元組 [11-1417:51:13:368]AT+CMQALICFG=0,"a1gPAyS0jai","s0001","abd7aff3aa5dd6a44d85ec03561c733c" [11-14 17:51:13:398]OK//建立連接 [11-14 17:51:16:006]AT+CMQALICON=0,600,1 [11-14 17:51:16:487]OK//訂閱主題 [11-14 17:51:18:125]AT+CMQSUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/up_raw",1 [11-14 17:51:19:584]OK [11-14 17:51:20:262]AT+CMQSUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/down_raw",1 [11-14 17:51:20:978]OK//發布主題 [11-1417:51:22:346]AT+CMQPUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/up_raw",1,0,0,16,"3 132333435363738" [11-14 17:51:22:906]OK//接收到信息 [11-14 17:51:23:938]+CMQPUB:0,"/sys/a1gPAyS0jai/s0001/thing/model/up_raw",1,0,0,16,"3132333435363738"//取消訂閱 [11-14 17:51:24:885]AT+CMQUNSUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/up_raw" [11-14 17:51:26:897]OK//斷開連接 [11-14 17:51:37:469]AT+CMQDISCON=0 [11-14 17:51:37:530]OK2 SIM7020連接阿里云的流程
首先我們需要知道設備三元組,然后再確定服務器地址和端口號。
比如,設備三元組如下:
ProductKey: a1gPAyS0jai DeviceName: s0001 DeviceSecret: abd7aff3aa5dd6a44d85ec03561c733c接入的域名如下:${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com,替換后a1gPAyS0jai.iot-as-mqtt.cn-shanghai.aliyuncs.com。端口號為1833。
常用的TOPIC如下:
// 上報(發布) /sys/a1gPAyS0jai/s0001/thing/model/up_raw// 設備接收(訂閱) /sys/a1gPAyS0jai/s0001/thing/model/down_rawSIM7020連接阿里云的AT指令如下:
// -創建連接 AT+CMQNEW="a1gPAyS0jai.iot-as-mqtt.cn-shanghai.aliyuncs.com","1883",12000,1024// -設置三元組 AT+CMQALICFG=0,"a1gPAyS0jai","s0001","abd7aff3aa5dd6a44d85ec03561c733c"// -建立建立 AT+CMQALICON=0,600,1// -訂閱topic AT+CMQSUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/up_raw",1 AT+CMQSUB=0,"/sys/a1gPAyS0jai/s0001/thing/model/down_raw",1// -發布信息 AT+CMQPUB=0,"/sys/a1gPAyS0jai/s00001/thing/model/up_raw",1,0,0,16,"3132333435363738"// -取消訂閱 AT+CMQUNSUB=0,"/sys/a1gPAyS0jai/s00001/thing/model/up_raw"// -斷開連接 AT+CMQDISCON=03 代碼實現
建立MQTT連接流程如下:
斷開MQTT流程如下:
實現代碼如下:
測試代碼如下:
/* USER CODE BEGIN Header_StartDefaultTask */ /*** @brief Function implementing the defaultTask thread.* @param argument: Not used* @retval None*/ /* USER CODE END Header_StartDefaultTask */ void StartDefaultTask(void const * argument) {/* USER CODE BEGIN StartDefaultTask *//* Infinite loop */float temp,humi;uint8_t write_buf[]="1234567890";uint8_t read_buf[20];uint16_t read_len;#define TEST_NAME 0X0001uint8_t buf[5];char reply_buf[30];uint16_t reply_len;debug_init();led_init();key_init();led_blink(2,5);sht30_init();//at_parse_init();//at_register_callback("+MQTT",test_callback,NULL);#define SERVER "a1gPAyS0jai.iot-as-mqtt.cn-shanghai.aliyuncs.com"#define PRO_KEY "a1gPAyS0jai"#define DEV_NAME "s0001"#define DEV_SECRET "abd7aff3aa5dd6a44d85ec03561c733c"at_net_dev_register(&dev_sim7020);at_net_init();at_net_mqtt_connect(SERVER,1883,PRO_KEY,DEV_NAME,DEV_SECRET);vTaskDelay(10000);at_net_mqtt_disconnect();for(;;){ // memset(reply_buf,0,30);// reply_len=30;// if(at_send_wait_reply("AT+CSQ",true,"+CSQ","ERROR",reply_buf,&reply_len,1000))// {// DEBUG("-----recv %d,%s------",reply_len,reply_buf);// }//at_send_no_reply("AT",2,true,1000);//at_uart_send("12345\r\n",7,1000);// storage_write(TEST_NAME,sizeof(write_buf),write_buf);// memset(read_buf,0,20);// read_len=20;// if(storage_read(TEST_NAME,&read_len,read_buf))// {// DEBUG("------%s-----",read_buf);// }// if(sht30_get_temp_humi(&temp,&humi))// {// DEBUG("temp=%f,humi=%f",temp,humi);// }osDelay(1000);}/* USER CODE END StartDefaultTask */ }總結
以上是生活随笔為你收集整理的NB驱动建立MQTT连接和断开MQTT连接的代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戴维南定律和诺顿定律
- 下一篇: 287工程火箭坦克