树莓派接入阿里云IOT平台

参照自官方文档

我们可以借助阿里云的物联网平台来作为树莓派“上云”的操作,而阿里云物联网平台有较为完善的文档和免费的额度,所以实现起来比较轻松

一、从官方文档里下载sdk

二、下载、解压并进入SDK包

三、安装依赖环境

sudo apt-get install -y build-essential make git gcc

四、配置SDK
由于官网没有对树莓派创建单独的配置,所以我们要手动创建(官网说明)
创建平台的配置vim tools/board/config.rasp.demo,将以下内容添加到该文件,然后运行make reconfig命令选择刚才新建的文件

CONFIG_ENV_CFLAGS = \
-D_PLATFORM_IS_LINUX_ \
-Wall \

CONFIG_ENV_LDFLAGS = \
-lpthread -lrt \

OVERRIDE_CC = arm-linux-gnueabihf-gcc
OVERRIDE_AR = arm-linux-gnueabihf-ar
OVERRIDE_LD = arm-linux-gnueabihf-ld

如果出现以下错误,那就是换行符与下一项CONFIG没有空格开,将CONFIG*前面的空一行就好了

 gcc: error: =: No such file or directory
gcc: error: CONFIG_ENV_LDFLAGS: No such file or directory
gcc: error: OVERRIDE_CC: No such file or directory
gcc: error: arm-linux-gnueabihf-gcc: No such file or directory
gcc: error: =: No such file or directory
gcc: error: CONFIG_ENV_LDFLAGS: No such file or directory
gcc: error: OVERRIDE_CC: No such file or directory
gcc: error: arm-linux-gnueabihf-gcc: No such file or directory
gcc: error: =: No such file or directory
gcc: error: CONFIG_ENV_LDFLAGS: No such file or directory
gcc: error: OVERRIDE_CC: No such file or directory
gcc: error: arm-linux-gnueabihf-gcc: No such file or directory
gcc: error: =: No such file or directory
gcc: error: CONFIG_ENV_LDFLAGS: No such file or directory
gcc: error: OVERRIDE_CC: No such file or directory
成功后图片

然后在`wrappers/os/` 目录下创建树莓派的HAL层代码,主要可以参考使用官方的ubuntu文件夹的内容,而目录的命名则要与上述自定义的配置的命名config.rasp.demo里的rasp为准,所以总的命令是:

cp wrappers/os/ubuntu/ wrappers/os/rasp -r
rm wrappers/os/rasp/HAL_UART_linux.c
make reconfig
#选择自定义的配置
make

然后在output/release/bin目录下可以看到输出的程序,其中mqtt-example就是主要的程序,而这些只是官方自定义的测试程序,而想要连接到个人的云平台的话,还是要进行参数的配置。

四、修改例程代码`vim wrappers/os/rasp/HAL_OS_linux.c`,测试可用性
在物联网平台新建产品和设备,把对应的参数复制到对应的代码里,然后重新make一下

五、最后运行` ./output/release/bin/mqtt-example` ,然后去物联网管理平台就可以看到在线设备了

六、总结

1、由于官方建议的开发系统是x86的ubuntu,可能是由于这个原因,我的树莓派不能运行make menuconfig 命令,会出现以下的错误
make: *** [/root/lot/ali-lot/tools/build-rules/_rules-top.mk:209: menuconfig] Error 126
所以我们也可以采用交叉编译的方法,在ubuntu系统上编译。

发表评论

电子邮件地址不会被公开。 必填项已用*标注