国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 EC200N-CN MQTT鏈接服務(wù)器開發(fā)實(shí)錄

這篇具有很好參考價(jià)值的文章主要介紹了STM32 EC200N-CN MQTT鏈接服務(wù)器開發(fā)實(shí)錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

開發(fā)環(huán)境

硬件:STM32F091CBT6 、EC200N-CN模塊板 、USB-TTL串口助手

軟件:VS CODE? 、 STM32CUBEMX、IAR 8.32

1.硬件設(shè)計(jì)

連接好EC200N-CN模塊和單片機(jī)主板。

EC200N-CN模塊設(shè)計(jì)時(shí)注意供電和IO電平轉(zhuǎn)換。

EC200N-CN是低功耗的,其主串口用的是1.8V電壓域的,一般使用的STM32F0系列單片機(jī)IO口是3.3V電平的,兩者連接的時(shí)候需要電平轉(zhuǎn)換。

電平轉(zhuǎn)換在EC200N的硬件設(shè)計(jì)手冊(cè)里有電路圖。

我這邊設(shè)計(jì)的EC200N-CN模塊預(yù)留了

PWRKEY(模塊開關(guān)機(jī)引腳)

RESET_N(模塊復(fù)位引腳)

主串口-RXD

主串口-TXD引腳。

基本這幾個(gè)引腳就夠一般的物聯(lián)網(wǎng)應(yīng)用使用了。

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

注意注意:

我遇到的大坑1:

上電后,PWKEY引腳一定要低電平才行,低電平才能打開模塊,否則模塊不開機(jī)收不到AT指令,一開始犯了這個(gè)錯(cuò)誤,因?yàn)槟K自己印出來的PWKEY通過三極管做了反向處理,理解錯(cuò)了開機(jī)電平,導(dǎo)致模塊一直不開機(jī)。

我遇到的大坑2:

和單片機(jī)通訊時(shí),單片機(jī)這邊因?yàn)殡娖睫D(zhuǎn)換要加上拉電阻。

如果沒有上拉電阻,兩者無法通訊。

EC200N-CN和STM32F091CB 串口通訊故障排查。

即使加了上拉電阻后,任然存在一個(gè)BUG。

后面才解決掉。

2.程序編寫

配置好單片機(jī)IO口的串口模塊、波特率,然后就直接發(fā)送AT指令就可以了。

ATI

AT+CPIN?

AT+CSQ

AT+CGREG?

AT+CGATT?

AT+QMTCFG="recv/mode",0,0,1
AT+QMTOPEN=0,"www.sukon-cloud.com",9006 鏈接物聯(lián)網(wǎng)平臺(tái)
AT+QMTCONN=0,"SMETTest","SMETTest","123456" 登錄平臺(tái)
AT+QMTPUBEX=0,0,0,0,"sys/device/SMETTest/variant_data",85 發(fā)布MQTT消息
{"type":"variant_data","version":"1.0","time":1638766638000,"params":{"UAV":220.9}}

在收到>后發(fā)送保文數(shù)據(jù)。

常用AT指令說明


1、AT
說明: 檢測(cè)AT指令收發(fā)是否正常
模組收到指令回復(fù):

AT
OK


2、AT+CPIN?
說明: 查詢SIM卡狀態(tài)(是否插入SIM卡、鎖定SIM卡、解鎖SIM卡),返回 READY則表示模組正常
模組收到指令回復(fù):

AT+CPIN?
+CPIN: READY

OK


3、AT+CREG?
說明: 查詢當(dāng)前網(wǎng)絡(luò)注冊(cè)狀態(tài),正常則回復(fù) +CREG: 0,1
模組收到指令回復(fù):

AT+CREG?
+CREG: 0,1

OK


4、AT+CEREG?
說明: 查詢當(dāng)前EPS網(wǎng)絡(luò)注冊(cè)狀態(tài),正常則回復(fù) +CEREG: 0,1
模組收到指令回復(fù):

AT+CEREG?
+CEREG: 0,1

OK

5.AT+QMTCFG="recv/mode",0,0,1

模組收到指令回復(fù):

AT+QMTCFG="recv/mode",0,0,1
OK

6.AT+QMTOPEN=0,"www.sukon-cloud.com",9006

模組收到指令回復(fù):

00> AT+QMTOPEN=0,"www.sukon-cloud.com",9006
00> 
00> OK
00> 
00> +QMTOPEN: 0,0

7.AT+QMTCONN=0,"SMETTest","SMETTest","123456"

模組收到指令回復(fù):

00> AT+QMTCONN=0,"SMETTest","SMETTest","123456"
00> 
00> OK
00> 
00> +QMTCONN: 0,0,0

8.AT+QMTPUBEX

AT+QMTPUBEX=0,0,0,0,"sys/device/SMETTest/variant_data",85

模組收到指令回復(fù):

00> AT+QMTPUBEX=0,0,0,0,"sys/device/SMETTest/variant_data",85
00> 
00> >

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

模組收到指令回復(fù):

9.{"type":"variant_data","version":"1.0","time":1638766638000,"params":{"UAV":220.9}}

模組收到指令回復(fù):

00> > {"type":"variant_data","version":"1.0","time":1638766638000,"params":{"UAV":220.5}}
00> 
00> OK

測(cè)試程序:

char Sendbuf[EC20_SEND_BUFF_SIZE];
ErrorStatus F_TestEC200N(uint8_t *cmd)
{
    // scanf("%s",buf);

    uint8_t lu8_cmd =0;
    lu8_cmd = (uint8_t)(*cmd);
    memset(&Sendbuf[0],0x00,EC20_SEND_BUFF_SIZE);
    // sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CPIN?");  
    
    switch (lu8_cmd)
    {
    case 0:
        return 1;
        break;
    case 1:
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT");  
        break;
    case 2:
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","ATI");  
        break;       
    case 3://查詢SIM卡
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CPIN?");  
        break;      
    case 4://查詢信號(hào),31最大,小于10證明信號(hào)超級(jí)不好
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CSQ");  
        break;      
    case 5://查詢PS注冊(cè)情況,注冊(cè)則返回1,證明獲取IP,可以進(jìn)行網(wǎng)絡(luò)使用啦
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CGREG?");  
        break;         
    case 6://附著網(wǎng)絡(luò)是否成功
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CGATT?");  
        break;    
    case 7://設(shè)置數(shù)據(jù)格式
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTCFG=\"recv/mode\",0,0,1");  
        break;   

    case 8://打開工業(yè)物聯(lián)網(wǎng)云端口
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTOPEN=0,\"www.sukon-cloud.com\",9006");  
        break;   

    case 9://這步執(zhí)行成功后,設(shè)備應(yīng)該在線了。
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTCONN=0,\"SMETTest\",\"SMETTest\",\"123456\"");  
        break;          
    case 10://發(fā)送數(shù)據(jù)命令
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTPUBEX=0,0,0,0,\"sys/device/SMETTest/variant_data\",85");  
        gu16_len = strlen(Sendbuf);
        MX_FEED_IWDG();   
        HAL_UART_Transmit(&huart4, (uint8_t *)&Sendbuf,61, 0xffff);//huart1需要根據(jù)你的配置修改
        MX_FEED_IWDG();   
        MX_FEED_IWDG(); 
        HAL_Delay(800);  
        
        memset(&Sendbuf[0],0x00,EC20_SEND_BUFF_SIZE);
        sprintf((char*)&Sendbuf[0],"%s\r\n","{\"type\":\"variant_data\",\"version\":\"1.0\",\"time\":1638766638000,\"params\":{\"UAV\":220.5}}");   
        gu16_len = strlen(Sendbuf);        
        HAL_UART_Transmit(&huart4, (uint8_t *)&Sendbuf,87, 0xffff);//huart1需要根據(jù)你的配置修改
        (*cmd) = 0;           
        return 1;
        break;    
    case 11://Paload數(shù)據(jù)
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","{\"type\":\"variant_data\",\"version\":\"1.0\",\"time\":1638766638000,\"params\":{\"UAV\":220.5}}");  
        break;      

    case 20://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=0");  
        break;    
        
    case 21://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=1");  
        break;   

    case 22://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=2");  
        break;   

    case 23://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=3");  
        break;           
        
    case 24://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=4");  
        break;    

    case 25://清除鏈接
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n"," AT+QMTDISC=5");  
        break;           
        
    default:
        break;
    }       
    MX_FEED_IWDG();   
    HAL_UART_Transmit(&huart4, (uint8_t *)&Sendbuf,86, 0xffff);//huart1需要根據(jù)你的配置修改
    (*cmd) = 0;        
}

在編程的時(shí)候,遇到一個(gè)問題,我使用sprintf函數(shù)轉(zhuǎn)存要發(fā)送的字符串,sprintf輸出雙引號(hào)的時(shí)候,要加“\”如下

    case 8://打開工業(yè)物聯(lián)網(wǎng)云端口
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTOPEN=0,\"www.sukon-cloud.com\",9006");  
        break;   

遇到一個(gè)BUG

我選用了速控云的物聯(lián)網(wǎng)平臺(tái),往平臺(tái)上上傳數(shù)據(jù)。

平臺(tái)的教程后面再說,看我心情和時(shí)間想不想寫。

ec200 mqtt,物聯(lián)網(wǎng)教程,單片機(jī),stm32,嵌入式硬件

發(fā)送如下指令后,

AT+QMTPUBEX=0,0,0,0,"sys/device/SMETTest/variant_data",85

?再次發(fā)送

{"type":"variant_data","version":"1.0","time":1638766638000,"params":{"UAV":220.9}}

?服務(wù)器收到的總是HEX數(shù)據(jù)? ?一堆00000003241234124? 然后一堆數(shù)字

經(jīng)過排查發(fā)現(xiàn),我發(fā)送的時(shí)候,為了方便,沒有計(jì)算當(dāng)前AT指令的長(zhǎng)度。每次發(fā)送都是發(fā)送? 固定長(zhǎng)度字節(jié)的數(shù)據(jù)(長(zhǎng)于當(dāng)前AT指令的總長(zhǎng)度)?

HAL_UART_Transmit(&huart4, (uint8_t *)&Sendbuf,EC20_SEND_BUFF_SIZE, 0xffff);
//EC20_SEND_BUFF_SIZE 為 150

而AT+QMTPUBEX= 指令之后模塊會(huì)回復(fù)? >? 然后用戶輸入要發(fā)送的數(shù)據(jù),因?yàn)槲叶喟l(fā)了很多 00? 導(dǎo)致服務(wù)器收到了很多0000? 然后整條報(bào)文都被識(shí)別為hex報(bào)文。

AT+QMTPUBEX=0,0,0,0,"sys/device/SMETTest/variant_data",85

修改:? 按實(shí)際發(fā)送大小發(fā)送,確保?AT+QMTPUBEX= 指令之后不能發(fā)一些無關(guān)的字符。

修改后,可以順利上傳平臺(tái)了。文章來源地址http://www.zghlxwxcb.cn/news/detail-685640.html

        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTPUBEX=0,0,0,0,\"sys/device/SMETTest/variant_data\",85");  
        gu16_len = strlen(Sendbuf);
        MX_FEED_IWDG();   
        HAL_UART_Transmit(&huart4, (uint8_t *)&Sendbuf,61, 0xffff);//huart1需要根據(jù)你的配置修改

到了這里,關(guān)于STM32 EC200N-CN MQTT鏈接服務(wù)器開發(fā)實(shí)錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【STM32 x ESP8266】連接阿里云 MQTT 服務(wù)器(報(bào)文連接)

    【STM32 x ESP8266】連接阿里云 MQTT 服務(wù)器(報(bào)文連接)

    具體如何在阿里云創(chuàng)建一個(gè) MQTT 服務(wù)器我就不寫出來了,可以去百度一下(主要是我忘了,不好演示)。 有關(guān) MQTT 報(bào)文的一些標(biāo)識(shí)在我前面的 一篇文章 中講過,感興趣的可以去看看( 有關(guān)代碼部分講解的內(nèi)容也在那里 ,這里就不細(xì)講了,主要講如何連接的) 插一嘴,如果

    2024年02月06日
    瀏覽(25)
  • STM32 + ESP32(AT固件 MQTT協(xié)議) + MQTTX(桌面終端) + (EMQX消息服務(wù)器)

    STM32 + ESP32(AT固件 MQTT協(xié)議) + MQTTX(桌面終端) + (EMQX消息服務(wù)器)

    翻出老物件,搭建一個(gè)簡(jiǎn)單的 IOT 開發(fā)環(huán)境,也算是廢物利用了?,接下來加傳感器。 1. STM32? 采集數(shù)據(jù): ? ? ?RTOS。 ? ? ?資源相對(duì)比較豐富,可以根據(jù)項(xiàng)目需求定制。 2. ESP32? 網(wǎng)絡(luò)傳輸(AT固件 MQTT協(xié)議)?: ? ? AT:封裝好的接口,擴(kuò)展性不是那么好,業(yè)務(wù)簡(jiǎn)單的話將就可以

    2024年02月08日
    瀏覽(27)
  • ESP32的MQTT AT固件燒錄+STM32以ESP32的MQTT AT固件的AT指令連接EMQX下mqtt服務(wù)器實(shí)現(xiàn)消息訂閱和發(fā)布

    ESP32的MQTT AT固件燒錄+STM32以ESP32的MQTT AT固件的AT指令連接EMQX下mqtt服務(wù)器實(shí)現(xiàn)消息訂閱和發(fā)布

    目錄 寫在前面 三種方案(利用ESP32連接EMQX下的MQTT) 步驟 ESP32燒錄固件并AT指令進(jìn)行測(cè)試。 下載固件 ?燒錄工具下載 燒錄固件(選擇ESP32) ?關(guān)于AT 指令與MQTT服務(wù)器斷開后自動(dòng)重連MQTT服務(wù)器 關(guān)于AT指令設(shè)置上電自動(dòng)連接WIFI 關(guān)于AT指令設(shè)置斷開后自動(dòng)重新連接WIFI STM32對(duì)接E

    2023年04月12日
    瀏覽(25)
  • ESP8266+STM32+MQTT發(fā)送數(shù)據(jù)到阿里云服務(wù)器(三、配置ESP8266模塊并測(cè)試連接)

    ESP8266+STM32+MQTT發(fā)送數(shù)據(jù)到阿里云服務(wù)器(三、配置ESP8266模塊并測(cè)試連接)

    1、固件燒錄器 2、固件 3、串口工具 4、ESP866模塊 5、USB轉(zhuǎn)TTL模塊 (以上軟件工具文末分享的鏈接有,硬件請(qǐng)?zhí)詫氉孕匈徺I) 硬件如下圖: 1、按照下面對(duì)照關(guān)系進(jìn)行接線 USB轉(zhuǎn)TTL ESP8266 3.3V 3V3 GND GND RX TX TX RX IO0 GND 2、打開固件燒錄工具圖標(biāo) 3、點(diǎn)擊“ OK ” 4、在出現(xiàn)的界面中,

    2024年03月23日
    瀏覽(32)
  • 從零開始用Nodejs搭建一個(gè)MQTT服務(wù)器,并且用stm32通過esp8266進(jìn)行消息訂閱和發(fā)布

    從零開始用Nodejs搭建一個(gè)MQTT服務(wù)器,并且用stm32通過esp8266進(jìn)行消息訂閱和發(fā)布

    最近在做一個(gè)物聯(lián)網(wǎng)項(xiàng)目,需要用到服務(wù)器進(jìn)行數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)的請(qǐng)求和發(fā)送,之前我用過onenet平臺(tái)上的http服務(wù),雖然能通過get和post請(qǐng)求進(jìn)行數(shù)據(jù)的提交和發(fā)送,但是平臺(tái)上的數(shù)據(jù)發(fā)生改變卻不能主動(dòng)推送給esp8266,與我此次的項(xiàng)目不符合,所以pass。然后我了解了下mqtt協(xié)

    2024年02月04日
    瀏覽(32)
  • STM32F103C8T6+ESP-01S+MQTT服務(wù)器實(shí)現(xiàn)數(shù)據(jù)上傳和接收(一)

    STM32F103C8T6+ESP-01S+MQTT服務(wù)器實(shí)現(xiàn)數(shù)據(jù)上傳和接收(一)

    文章目錄 STM32F103C8T6+ESP-01S+MQTT服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的上傳和接收(二) ESP-01S推薦使用安信可官網(wǎng)1471號(hào)固件,燒錄配置如下圖。 請(qǐng)?zhí)鎿Q其中里面的內(nèi)容 使用PA9、PA10分別連接ESP8266的RXD、TXD引腳。 由于每次發(fā)送的AT指令都會(huì)被8266通過串口再發(fā)送回來,為了緩解串口的壓力,并且更

    2024年04月17日
    瀏覽(26)
  • 4G/5G卡使用 EC200-CN

    4G/5G卡使用 EC200-CN

    在串口中查看4G卡網(wǎng)口如下為enx020c29a39b6d ?輸入如下命令啟動(dòng)自動(dòng)獲取3s后按ctrl+c ? 輸入minicom -D /dev/ttyUSB2后先輸入: ATE1啟動(dòng)回顯。 AT+qnetdevctl=1,1,1播號(hào)回復(fù)ok表示成功。 ? 查看ip已成功獲取 ?

    2024年02月20日
    瀏覽(19)
  • EC200U-CN學(xué)習(xí)(三)

    EC200U-CN學(xué)習(xí)(三)

    EC200U系列內(nèi)置豐富的網(wǎng)絡(luò)協(xié)議,集成多個(gè)工業(yè)標(biāo)準(zhǔn)接口,并支持多種驅(qū)動(dòng)和軟件功能(適用于Windows 7/8/8.1/10、Linux和Android等操作系統(tǒng)下的USB驅(qū)動(dòng)),極大地拓展了其在M2M領(lǐng)域的應(yīng)用范圍,如POS、POC、ETC、共享設(shè)備、數(shù)據(jù)卡、能源控制、安防以及工業(yè)級(jí)PDA等。 芯片上方引腳 K

    2024年02月15日
    瀏覽(21)
  • Quectel EC200A-CN移植

    Quectel EC200A-CN移植

    usb-serial-option,USB轉(zhuǎn)串口驅(qū)動(dòng),生產(chǎn)/dev/ttyUSB0-2,分別是DM,AT,PPP 需要使能內(nèi)核選項(xiàng)如下: USB網(wǎng)卡驅(qū)動(dòng),模塊可通過AT配置成RNDIS或者ecm,默認(rèn)是ecm。 需要使能內(nèi)核選項(xiàng) 增加usb vid和pid 增加vid和pid,設(shè)備連接,使用lsusb命令查看設(shè)備的vid和pid,如下圖所示: 文件修改:linux-3.10/drivers

    2024年02月06日
    瀏覽(19)
  • 一個(gè)小型的物聯(lián)網(wǎng)實(shí)驗(yàn),讓stm32實(shí)驗(yàn)板和Android studio寫的APP同時(shí)連接上mqtt服務(wù)器實(shí)現(xiàn)遠(yuǎn)程控制實(shí)驗(yàn)板狀態(tài)

    一個(gè)小型的物聯(lián)網(wǎng)實(shí)驗(yàn),讓stm32實(shí)驗(yàn)板和Android studio寫的APP同時(shí)連接上mqtt服務(wù)器實(shí)現(xiàn)遠(yuǎn)程控制實(shí)驗(yàn)板狀態(tài)

    目錄 一、前言 二、實(shí)驗(yàn)工具 1.野火F103開發(fā)板 ?2.MQTT代理工具mqtt.fx ?三、安卓APP代碼? 1.建立工程 2.導(dǎo)入Java jar包 3.布局文件activity_main 4.Mainactivity 5、配置聯(lián)網(wǎng)權(quán)限 6.測(cè)試APP ?7.導(dǎo)出apk安裝包 ?四、STM32實(shí)驗(yàn)板代碼 1.main函數(shù) 2.esp8266 ?3.onenet ?4.小總結(jié) 五、測(cè)試 1.測(cè)試app與mqtt的

    2024年02月05日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包