一、说明

本lib库基于STM32F407编译,其他的cortexM4内核也支持,采用串口和EC20模组通信。

库包括两个文件:ec20_mqtt.h和ec20_mqtt.lib。使用时添加lib文件到工程中,头文件引用ec20_mqtt.h即可。

下载:https://gitee.com/eiri_jackmaster/ec20_mqtt_cm4-lib

二、功能

提供了创建mqtt客户端、连接服务器、订阅、发布、取消订阅、断开连接、获取imei号等API接口。

/*! -------------------------------------------------------------------------- */
/*! Public function prototype */
EC20_status EC20_initialize(void);
EC20_status EC20_mqttClientCreate(uint8_t pClientID,char* pIPv4, uint32_t pPort);
EC20_status EC20_mqttClientConnectServer(uint8_t pClientID, char* pClientIDStr,char* pName, char* pPswd);
EC20_status EC20_mqttClientSubscribe(uint8_t pClientID, char* pTopic, uint8_t pQos);
EC20_status EC20_mqttClientUnSubscribe(uint8_t pClientID, char* pTopic);
EC20_status EC20_mqttClientPublish(uint8_t pClientID, char* pTopic, uint8_t pQos, uint8_t pRetain, uint8_t *pData, uint32_t pSize);
EC20_status EC20_mqttClientDisConnectServer(uint8_t pClientID);
extern void EC20_moduleHardReset(void);
size_t      EC20_getIMEI(char *pIMEIBuff);

三、移植

在头文件指定相应的串口操作函数和毫秒级基本延时即可。此外,需要外部实现EC20模组的复位操作,一般是对rst管脚拉高一段时间,复位函数需要指定函数为void EC20_moduleHardReset(void)。

/*! macro defination for porting */
/*! ec20 uart default 115200 8 N 1 */
#define EC20_SENDDATA(a,b)        USART2_sendData(a,b)    /*! uart redefine */
#define EC20_SENDSTR(a)           USART2_sendString(a)
#define EC20_RXFLAG               usart2Rx.flag
#define EC20_RXBUFF               usart2Rx.buff
#define EC20_RXLEN                usart2Rx.size
#define EC20_BUFF_SIZE            UART2_BUFF_SIZE       /*! buffsize define */
#define EC20_DELAYMS              HAL_Delay
#define PRINT_ENABLE              0x10        /*! 0x00=enable, other=disable*/

四、实例

以下为STM32F407使用ec20的mqtt库,实现对接自建EMQX。

1、工程添加ec20_mqtt.lib

2、头文件引入

定义变量和私有mqtt服务器信息(我使用了订阅认证和鉴权):

3、实现EC20模组复位接口

4、调用接口

(1)初始化

(2)创建mqtt客户端,连接服务器

(3)订阅和发布主题

4、执行结果

可以看到发布和订阅正常。

EC20模组使用MQTT库对接EMQX,基于STM32F407相关推荐

  1. 树莓派4b怎么使用usb摄像头_【动手实践】树莓派通过EC20模组访问互联网 by xinlong...

    准备工作: 硬件:树莓派3B/4B.EC20 PCIE接口模块.EC20 USB转接板.4G电话卡 5V 2A适配器.电源线.显示器(optional) 软件:Xshell.VNC(optional) ...

  2. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04【EC20模组SIM卡和驻网模组指令说明】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04[EC20模组SIM卡和驻网模组指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 关于SIM ...

  3. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05[EC20模组TCP/IP模块AT指令说明] Socket长连接 一.准备工作 二.针对TCP/IP协议 关于TCP/ ...

  4. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02【EC20模组硬件供电和开关机复位操作】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02[EC20模组硬件供电和开关机复位操作] 一.模组硬件知识 1.背景知识:网络制式 2.模组的供电 3.模组的开机 4 ...

  5. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03【EC20模组基础串口指令说明】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03[EC20模组基础串口指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 STM32F103学 ...

  6. OpenHarmony3.1适配移远EC20模组4G上网功能

    OpenHarmony3.1适配移远EC20模组4G上网功能 一.概述 通过阅读本篇文档,您将学习到如何适配移远EC20模组到OpenHarmony3.1(以下简称OHOS),并添加4G上网功能. 本 ...

  7. 中移ML302模组通过MQTT协议接入oneNT平台

    @中移ML302模组通过MQTT协议接入oneNT平台 ML302 是中国移动最新推出的 LTE Cat.1 模块. 丰富的 Internet 协议.行业标准接口和功能,支持 Windows.Linu ...

  8. mqtt 串口_移柯L620模组使用MQTT协议连接移动OneNet云平台

    点击上方蓝色字体,关注我们 1 硬件基础 最近调测移柯L620 NB-IoT模组, 特申请调测L620开发板(L620_ EVB),其专门为评估和测试L620模块而设计的,用于帮助开发人员进行开发.调 ...

  9. 移远BC26模组使用MQTT协议接入阿里云(NB-IoT专栏—进阶篇4)

    目录 1.模块简介 2.阿里云物联网服务部署 3.BC26模组配置 4.数据上传 5.数据下发

最新文章

  1. 【c语言】蓝桥杯算法训练 完数
  2. Ubuntu16.04下CUDA 9.0 + cuDNN v7.0 + tensorflow 1.6.0(GPU)环境搭建
  3. 汉语言处理包 HanLP 1.7.3 发布,常规维护版本
  4. 获取窗口上指定控件集合 2012-08-22 16:14 498人阅读 评论(0) 收藏...
  5. iOS标准库中常用数据结构和算法之二叉排序树
  6. 如何构建JavaScript警报框或弹出窗口
  7. 关于URL编码/javascript/js url 编码
  8. 拓端tecdat|把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!
  9. Windows电脑端有什么好用的便签工具?
  10. dell emc isilon环境 Windows共享文件下生成.snapshot无法删除
  11. 实现消息存档—微信聊天记录组件
  12. android自定义锁屏界面设置,android 锁屏壁纸和桌面壁纸的设置实现
  13. python数据分析第三方库scipy_Python数据分析工具库-Scipy 矩阵支持库
  14. Overture教程之如何更改整首谱子的调号
  15. ubuntu上打开markdown文件
  16. 维护外贸客户关系的技巧!
  17. SOUI总结之常用功能
  18. 玄武密码(bzoj4327)(JSOI2012)
  19. 网易云音乐普通用户播放VIP音乐的改变————令人感动的设计
  20. 【一起学UniGUI】--UniGUI的控件(Components)(9)

热门文章

  1. string.Empty 和 并不总是可以互换的
  2. incc与oracle连接_Oracle 连接和会话的区别
  3. python中until函数_等待应用程序窗口:python中的pywinauto.timings.WaitUntilPasses
  4. ajax拼接显示不同样式,Ajax重点整理
  5. 用同一uuid作为两个字段的值_这两个小技巧,让SQL语句不仅躲了坑,还提升了 1000 倍...
  6. 数据库杂谈(三)——关系代数
  7. 万兆网卡实际吞吐量_AKITIO 10G/NBASE-T PCIe 网卡开箱拆解评测
  8. 【机器视觉学习笔记】伽马变换(C++)
  9. Linux C 数据结构---单向链表
  10. [react] react的性能优化在哪个生命周期?它优化的原理是什么?