当前位置:   article > 正文

【物联网】华为云物联网平台SDK移植到ARM平台详解_libssl.so.1.1 arm

libssl.so.1.1 arm

00. 目录

01. 华为云物联网平台概述

华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助您快速构筑物联网解决方案。

使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。

  • 物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。
  • 设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。
  • 业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。

在这里插入图片描述

02. OpenSSL移植到ARM平台

2.1 OpenSSL移植到ARM平台

参考:【物联网】ARM平台移植openssl-1.1.1详解

2.2 拷贝库文件到SDK的中Lib目录下

deng@local:~/openssl/lib$ cp libcrypto.so.1.1  libcrypto.so libssl.so.1.1 
libssl.so /home/deng/iot/arm/lib/
deng@local:~/openssl/lib$ 

  • 1
  • 2
  • 3
  • 4

在配置的openssl安装目录下home/deng/openssl找到lib目录,有生成的库文件:“libcrypto.so.1.1”“libssl.so.1.1”和软链接“libcrypto.so”“libssl.so”,请将这些文件拷贝到demo的lib文件夹下。

2.3 拷贝头文件到SDK指定的include目录下

deng@local:~/openssl/include/openssl$ pwd
/home/deng/openssl/include/openssl
deng@local:~/openssl/include/openssl$ cp * /home/deng/iot/arm/include/openssl/
deng@local:~/openssl/include/openssl$ 

  • 1
  • 2
  • 3
  • 4
  • 5

将/home/deng/openssl/include/openssl里的内容拷贝到demo的include/openssl下。

温馨提示:

:有的编译工具是32位的,如果在64位的linux机器上使用,这时只要将Makefile中的-m64都删除,再进行编译即可。

03. Paho移植到ARM平台

3.1 Paho移植到ARM平台

参考:【物联网】Paho移植到ARM平台详解

3.2 拷贝库文件

deng@local:~/iot/paho.mqtt.c-master/build/output$ cp libpaho-mqtt3as.so 
libpaho-mqtt3as.so.1 /home/deng/iot/arm/lib/
deng@local:~/iot/paho.mqtt.c-master/build/output$ 

  • 1
  • 2
  • 3
  • 4

当前SDK仅用到了libpaho-mqtt3as,请将**“libpaho-mqtt3as.so”“libpaho-mqtt3as.so.1”**文件拷贝到demo的lib文件夹下。

3.3 拷贝头文件

deng@local:~/iot/paho.mqtt.c-master/src$ cp MQTTAsync.h MQTTClient.h  
MQTTClientPersistence.h MQTTProperties.h MQTTReasonCodes.h  
MQTTSubscribeOpts.h MQTTExportDeclarations.h /home/deng/iot/arm/include/base/
deng@local:~/iot/paho.mqtt.c-master/src$ 
  • 1
  • 2
  • 3
  • 4

同时回到paho源代码路径,进入src目录,将MQTTAsync.h、MQTTClient.h、MQTTClientPersistence.h、MQTTProperties.h、MQTTReasonCodes.h、MQTTSubscribeOpts.h拷贝到demo的include/base文件夹下)。

有的paho版本会有 MQTTExportDeclarations.h 头文件,建议可以将MQTT相关的头文件都添加进去。

04. 编译工程代码

4.1 执行make clean命令

deng@local:~/iot/arm$ make clean 
rm -f string_util.o mqtt_c_demo.o MQTT *.d
deng@local:~/iot/arm$ 

  • 1
  • 2
  • 3
  • 4

4.2 修改Makefile文件

deng@local:~/iot/arm$ vim Makefile  
  • 1

4.3 将CC改成交叉编译器

CC = arm-linux-gcc
  • 1

4.4 删除所有-m64选项

4.5 编译

deng@local:~/iot/arm$ make 

  • 1
  • 2

4.6 编写shell脚本

start.sh脚本内容如下

export LD_LIBRARY_PATH=./lib/

./MQTT



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.7 在ARM平台执行脚本

[root@qfedu arm]#./start.sh 

mqtt_connect() mqttClientCreateFlag = 1.
begin to connect the server.
connect success. 
mqtt_publish(), the payload is {"services": [{"service_id": "SmartHome","properties": {"Temperature": 17,"lightStatus": "OFF","alarmStatus": "OFF","humidity": 70},"event_time": ""}]}, the topic is $oc/devices/647b17f7b5afea0c91b9f66f_SmartHomeTest/sys/properties/report 
publish success, the messageId is 1 
mqtt_publish(), the payload is {"services": [{"service_id": "SmartHome","properties": {"Temperature": 17,"lightStatus": "OFF","alarmStatus": "OFF","humidity": 70},"event_time": ""}]}, the topic is $oc/devices/647b17f7b5afea0c91b9f66f_SmartHomeTest/sys/properties/report 
publish success, the messageId is 2 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

如果能够收到华为云的数据,表示链接OK。

05. 附录

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/383008
推荐阅读
相关标签
  

闽ICP备14008679号