项目框架搭建(2)

一.总结学习

今天学习了跨平台的数据库移植,了解了mqtt是什么,以及mqtt的移植,对于我的项目框架中需要用到数据库存储数据,以及将数据上传到服务器上,进行相关的处理和预警相应的操作,为什么要交叉开发呢?因为嵌入式平台资源有限,所以在PC机上编译文件,生成的可执行文件在嵌入式上运行,我在移植库的时候出现的问题是库文件时候采用相对路径,相对路径又不准确,导致make生成文件时,出现报错,之后所有的路径我都采用了绝对路径来保证文件的编译时能找到文件防止报错。

二.跨平台移植数据库

交叉开发环境:嵌入式平台资源有限,所以在PC机上编译文件,生成的可执行文件在嵌入式上运行

根目录bin下是可执行二进制文件,lib是依赖的相关库,user的bin lib下是用户相关的库文件和可执行文件

先下载了sqlite3的源码,解压文件后先通过configure使用./configureCC=arm-linux-gnueabihf-gcc--host=arm-linux-gnueabihf --prefix=/home/linux/nfs/sqlite3/sqlite-3.7.3/install文件生成makefile文件,将生成的lib文件移植到开发板的lib中

三.网络服务器

IMX6ULL向OneNET云服务器上传数据

1.在测试阶段先配置双网卡,让开发板可以联网

云端配置

MQTT协议:消息队列遥测传输协议,传输层基于与TCP,默认端口号1883

特点:基于发布/订阅模式 ,物联网通信中广泛使用,MQTT报文轻量级 面向二进制数,占用网络带宽小,

相比于HTTP优点是利用极少的报文和有限的带宽 提供安全可靠的连接(

1.基于TCP连接

2.消息发布服务质量(Qos)

至多一次,不管接收方收到没收到,只发动一次,0

至少一次,1

只有一次,2

3.遗言机制:客户端因为异常而退出,会将最后一次报文发给服务器,服务器就知道客户端断开了

4.心跳监测:ping报文,内部起了一个线程,线程中会根据频率发一个ping报文,用来监测MQTT的TCP连接是否正常

5.三种身份:发布者,订阅者,发布者订阅者都是客户端

6.报文中:

订阅请求报文:一定要看到topic

发布报文:msg

使用MQTT协议,移植MQTT库(paho mqtt库 他依赖op)

不用手搓报文,直接移植一个MQTT库

移植MQTT库:

mqtt库依赖于openssl 和paho库,通过先通过config文件获得makefile,在对makefile修改编译器以及路径对库进行交叉编译,然后make install下载获得库文件

相关推荐
女神下凡19 小时前
芯参谋(61):PMSM永磁同步电机驱动电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
早八晚十啊20 小时前
基于ARM Cortex-A53与LVGL 9.0的智能车载系统设计与实现
arm开发·车载系统
a59865221 小时前
ARM服务器部署Docker云手机,多开实例性能实测
服务器·arm开发·docker·云手机
a59865221 小时前
ARM服务器搭建云手机教程|原生ARM架构,消除指令转译损耗
arm开发
XMAIPC_Robot2 天前
ARM+FPGA+AI船舶/工业自动化控制器EMC测试等级解析(IEC60533/IEC60945)
arm开发·人工智能·fpga开发·zynq·arm+fpga·rk3588+fpga
奔跑的架构师3 天前
[A-51]ARMv9/v8-SCMI系统架构
linux·arm开发·架构·系统架构·arm
玄芯散人3 天前
【元婴·94】ARM vs RISC-V大战
arm开发·risc-v
szxinmai主板定制专家3 天前
ZYNQ PL+PS 架构拆解|工业自动化与电力物联网高速数据采集、预处理与协议上云
arm开发·人工智能·物联网·fpga开发·数据采集卡·rk3576
szxinmai主板定制专家3 天前
告别 ARM 实时性短板:基于 ZYNQ 的电力故障录波 + 工业振动数据采集系统设计
arm开发·人工智能·fpga开发·zynq·数据采集卡·arm+fpga·rk3588+fpga