STM32 EC200N-CN MQTT链接服务器开发实录_ec200n-cn模块

电平转换在EC200N的硬件设计手册里有电路图。

我这边设计的EC200N-CN模块预留了

PWRKEY(模块开关机引脚)

RESET_N(模块复位引脚)

主串口-RXD

主串口-TXD引脚。

基本这几个引脚就够一般的物联网应用使用了。

注意注意:

我遇到的大坑1:

上电后,PWKEY引脚一定要低电平才行,低电平才能打开模块,否则模块不开机收不到AT指令,一开始犯了这个错误,因为模块自己印出来的PWKEY通过三极管做了反向处理,理解错了开机电平,导致模块一直不开机。

我遇到的大坑2:

和单片机通讯时,单片机这边因为电平转换要加上拉电阻。

如果没有上拉电阻,两者无法通讯。

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

即使加了上拉电阻后,任然存在一个BUG。

后面才解决掉。

2.程序编写

配置好单片机IO口的串口模块、波特率,然后就直接发送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链接物联网平台
AT+QMTCONN=0,“SMETTest”,“SMETTest”,“123456”登录平台
AT+QMTPUBEX=0,0,0,0,“sys/device/SMETTest/variant_data”,85发布MQTT消息
{“type”:“variant_data”,“version”:“1.0”,“time”:1638766638000,“params”:{“UAV”:220.9}}在收到>后发送保文数据。
常用AT指令说明

1、AT
说明: 检测AT指令收发是否正常
模组收到指令回复:

AT
OK

2、AT+CPIN?
说明: 查询SIM卡状态(是否插入SIM卡、锁定SIM卡、解锁SIM卡),返回 READY则表示模组正常
模组收到指令回复:

AT+CPIN?
+CPIN: READY

OK

3、AT+CREG?
说明: 查询当前网络注册状态,正常则回复 +CREG: 0,1
模组收到指令回复:

AT+CREG?
+CREG: 0,1

OK

4、AT+CEREG?
说明: 查询当前EPS网络注册状态,正常则回复 +CEREG: 0,1
模组收到指令回复:

AT+CEREG?
+CEREG: 0,1

OK

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

模组收到指令回复:

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

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

模组收到指令回复:

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

7.AT+QMTCONN=0,“SMETTest”,“SMETTest”,“123456”

模组收到指令回复:

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

模组收到指令回复:

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

模组收到指令回复:

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

模组收到指令回复:

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

测试程序:

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://查询信号,31最大,小于10证明信号超级不好
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CSQ");  
        break;      
    case 5://查询PS注册情况,注册则返回1,证明获取IP,可以进行网络使用啦
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CGREG?");  
        break;         
    case 6://附着网络是否成功
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+CGATT?");  
        break;    
    case 7://设置数据格式
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTCFG=\"recv/mode\",0,0,1");  
        break;   

    case 8://打开工业物联网云端口
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTOPEN=0,\"www.sukon-cloud.com\",9006");  
        break;   

    case 9://这步执行成功后,设备应该在线了。
        /* code */
        sprintf((char*)&Sendbuf[0],"%s\r\n","AT+QMTCONN=0,\"SMETTest\",\"SMETTest\",\"123456\"");  
        break;          
    case 10://发送数据命令
        /* 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需要根据你的配置修改
        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需要根据你的配置修改
        (*cmd) = 0;           
        return 1;
        break;    
    case 11://Paload数据
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/b437ed78046fa95353d4799c5a1f4aa2.png)

![img](https://img-blog.csdnimg.cn/img_convert/5448947e8009bf35ea104caf9ff657be.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/7bb87c07b6e8d54cc8aa08c31ad98b70.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/d0a0de3b438a98a68025f6b2ad778379.png)

![img](https://img-blog.csdnimg.cn/img_convert/6703ca7f7de21e4bafe84180b564166f.png)

![img](https://img-blog.csdnimg.cn/img_convert/5096dc49e29a486b0791ecb8d7f08bec.png)

![](https://img-blog.csdnimg.cn/img_convert/9e5f12cb4a23dbad29c16894a21ac5ec.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


)]

[外链图片转存中...(img-7Twj5Q70-1715598743235)]

[外链图片转存中...(img-bY78FS8V-1715598743236)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值