Paho 例程
Paho例程的软件架构 课程中的Paho例程的软件架构可以分为三层: - 底层驱动,这一层包括STM32L4Cube HAL硬件抽象层,传感器驱动以及WIFI模块驱动。HAL硬件抽象层向上层软件提供了使用各个外设的接口函数。上层的中间件,应用程序等可以通过调用这些API函数来操作外设, 这样便不会使得上层的软件依赖于某个特定的MCU。使得程序更具有复用性,并且容易移植到其他的MCU系列上去。 - 中间件:这一层包括Paho MQTT 协议栈,mbedTLS(用到HMAC-SHA1模块),以及ST的网络接口抽象层。网络接口抽象层,对底层的网络驱动函数进行封装,向上提供统一的网络接口函数,从而将应用层的代码与底层实际网络接口分开。改变以太网,wifi, 2G/3G等不同的连接方式时,不会影响应用层的代码。Paho MQTT通过网络接口抽象层向下调用对应的wifi驱动完成网络数据的发送和接收。 - 应用层:包括阿里云MQTT连接适配层和节点端业务程序。阿里MQTT连接适配层根据阿里云IoT平台的要求,依据用户提供的三元组信息构建相应的MQTT连接参数和主题,再调用PahoMQTT提供的API进行MQTT连接和通信。
连接其他平台 课件中Paho例程连接的是阿里云物联网平台,如果要将其移植到其他的平台可以有两种实现方法: • 还是基于Paho开源实现,根据对应平台的连接要求来实现连接。 • 如果该IoT平台提供的有SDK,可以使用对应的SDK来替代Paho中间件,再基于这个SDK来做应用层的开发。一般云平台的SDK会有和它所支持的功能相关的更丰富的API可使用,并且有一些保证连接可靠性的处理。
- 第一种方法,主要影响应用层中的“阿里云MQTT连接适配层”这一部分代码,主要涉及:Ali_Iotclient.c,Ali_iot_network_wrapper.c和mqtt_msg_handler.c这三个文件。 - 第二种方法,除了“阿里云MQTT连接适配层”这一部分代码以外,还需要替换Paho中间件。
从更加通用的角度考虑,下面我们介绍第一种方法。 在接下来的介绍中,首先我们先演示如何连接到阿里云物联网平台,然后再说明如何修改代码,将开发板连接到百度云物联网平台。
例程需要的硬件 我们先来了解一下例程需要的硬件以及软件环境。
我们需要一块NUCLEO-L4R5ZI开发板,一块X-NUCLEO-IKS01A2 Sensor扩展板以及一块EXT-AT3080 Wifi扩展板。将这三块板子如下图,通过Arduino接口叠加在一起。
此外,还需要一个可以上网的wifi热点,开发板通过该热点可以连接到互联网。一台可以上网的电脑,用来编译和烧录程序,为开发板配置WIFI密码,以及通过浏览器查看云端的数据。一根micro接口的USB线,可以将开发板连接到电脑,给板子供电,进行程序调试等。
硬件环境搭建
例程需要的软件 例程的整个工程代码可以到 www.stmcu.com.cn 网站进行下载。 开发环境使用IARv8.3及以上版本。 最后需要下载串口调试工具Tera term,我们需要通过虚拟串口输入WIFI热点的密码以及三元组信息。
Tera term的配置 为了正常显示和输入串口的数据,Tera term需要按照下面进行配置。
|