基于北斗和4G_Cat1模组的华为云智慧物流开发04
基于北斗和4G_Cat1模组的华为云智慧物流开发04
开发板环境准备
MQTT客户端是嵌入式硬件与云端服务器连接的桥梁,MQTT有两种方式:一种是把MQTT集成到QT应用内部实现数据交互,另一种是独立的MQTT客户端再使用QT与其进行交互,间接的和云平台进行数据的交互。
这里采用的是第二种,首先介绍OPENSLL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
OpenSSL需要下载到Ubuntu下进行编译,首先加载交叉编译工具链
source /opt/st/myir/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
这个即可,在home主目录下创建一个tools(拿来放openssl的)文件夹
pc@ubuntu:~$ mkdir tool
把openssl下载并解压到此文件夹,进入openssl文件夹下面,配置其config编译条件。
终端输入如下指令,其中-shared 表示生成动态库,通过参数 -prefix=xxx 自行指定安装目录,这里我让他安装到了我的home目录下的/home/pc/libs_build/openssl/build_arm
./config no-asm -shared --prefix=/home/wgpcgr/libs_build/openssl/build_arm no-async
修改Openssl的Makefile文件,配置其make的编译器。
这里推荐用vscode来修改,文件比较大,不好找用vscode可以CTRL+F查找
arm-linux-gnueabihf-gcc/arm-linux-gnueabihf-g++
搜索-m64,找到下面这两排代码
这一段都删掉。
最后在该文件下,运行终端
make
make install
最终效果图
最终输出文件lib,把这里面的so文件放到开发板里就可以了。
然后介绍最出名的MQTT客户端paho
首先下载代码C/C++版本的,下载之后使用vscode打开修改Makefile文件,指定交叉编译器arm-linux-gnueabihf-gcc,以及指定openssl路径
如图所示
在VScode中打开这个路径的MQTTPacket/sample/pub0sub1.c文件
并做以下修改
1、填入华为云平台MQTT地址(iot-mqtts.cn-north-4.myhuaweicloud.com)与端口号(1883)
2、填入自己的三元组信息clientID、username、password。
这三个参数通过下面这个软件进行获取mqttClientIdGenerator-19.2.0.jar
下载连接信息生成工具:
运行“MqttClientIdGenerator.jar”,填写设备ID和密钥,生成连接信息。
3、填入自己的订阅和发布Topic,更换成自己的设备ID,详细请看
topic定义
编译(如果这里make发生错误,请尝试make clear)
make
并把这三个文件拷贝到开发板的/usr/local/paho-mqtt/下
配置库路径:vi /etc/ld.so.conf ,添加上自己的库路径
添加完后输入命令 /sbin/ldconfig 缓存路径配置
测试开发板能否和华为云平台进行通信
首先启动华为云物联网平台设备 STM32MP1 的消息跟踪功能
把pub0sub1拷贝到/home/root/下,用如下命令看云端是否能收到数据
./pub0sub1 {"test":123}
经过测试平台端收到了消息,但是现实json数据格式错误,如下是正确的json格式
正常接收到消息
QT应用物联网应用APP功能需求分析
1、北斗定位模组
串口数据接收—>数据转存—>数据分割—>定时读取GPS信息—>json数据封装——>通过MQTT客户端发送给华为云
2、温湿度传感器通过定时器定时采集信号,并在QT应用上打印出来,与经纬度一起封装好发给云平台
3、串口选择、波特率选择、以及北斗定位模组数据解析。
今天暂时先写到这里,明天来写QT的代码分析。
- 点赞
- 收藏
- 关注作者
评论(0)