欢迎来到厦门皓佑物联科技有限公司官方网站!
您的位置: 首页 - 新闻资讯 - js 物联网开发 物联网平台开发源代码

js 物联网开发 物联网平台开发源代码

来源:新闻资讯 / 时间: 2024-11-24


教程(一)主要内容为平台介绍、如何注册开通平台账号以及创建产品和设备 教程(二)该平台如何添加自定义功能 教程(三)如何下载设备端代码和SDK以及代码解析、修改和编译运行

一、下载设备端代码和SDK

1.1 设备端代码的下载

我们再产品添加完功能之后,接着想着是能够去操作和使用这些功能,但是如果自己去编写控制是很麻烦的,阿里云物联网平台给我们提供了基本的代码,称之为设备端代码,我们只需要下载下来就可以去操作数据

点击指定产品的“功能定义”,然后点击“生成设备端代码”即可





2.2 SDK的选择和下载

产品和设备到此就已经添加完毕了,接下来就要跟代码打交道,需要在Ubuntu中运行程序操作数据通过阿里云传递到网页端,首先要下载的是SDK。

在设备中集成物联网平台提供的SDK,实现物联网平台接入。设备开发完成,接入物联网平台,设备激活,在物联网平台显示在线。

我们编程主要是使用C语言,所以我们要下载C相关的SDK,但是阿里云提供了不同版本的C SDK,所以我们要根据设备端代码选择合适的SDK,这里我们选择3.2.0版本的SDK。

首先点击物联网平台控制台的“概览”,然后再右上角选择“下载设备SDK”



也可以点击左侧“文档和工具”,选择“设备接入SDK”中“Link SDK”下方的“查看工具包”



然后在当前页面下翻找到“基于设备端SDK开发”,点击“C SDK”



然后点击左侧“3.x”下拉菜单中的“SDK获取”,右侧下翻找到“历史版本清单”,接着点击3.2.0版本右侧的“sdk下载”即可



最终下载好的设备端代码和SDK如图所示



二、代码解析、修改以及编译运行

接下来我们要做的就是在Ubuntu中添加SDK然后运行设备端代码,先将两个下载好的文件进行解压,解压之后的结果如图所示



SDK解压之后是一个文件夹,可以修改名称为memory_control,设备端代码解压完之后就是一个.c程序,暂时不管



接下来将SDK拷贝到Ubuntu中,并进入当前文件夹



在这里需要强调一下,阿里云的SDK对于Ubuntu和内部软件有版本的要求,请确保已安装以下软件,并且版本不低于指定的版本:Ubuntu 16.04 LTS、make-4.1、git-2.7.4、gcc-5.4.0、gcov-5.4.0、lcov-1.12、bash-4.3.48、tar-1.28、cmake3.51、awk4.1.3、sed 4.2.2

如果大家使用我们提供的Ubuntu,只需要安装一下gcov、lcov、cmake即可,其他符合要求,所以需要执行一下命令



接下来需要在SDK中执行make即可(如果是开发板运行的程序,需要打开makefile修改编译工具为交叉编译工具,Ubuntu中默认即可)



执行make进行编译需要一段时间,最终执行完毕如图所示



在当前目录中会多出一个目录文件,名为output,output就是接下来要操作的目录,进入output目录



进入examples目录,在目录中会有示例代码,通过output目录中的Makefile就可以直接编译,所以为了方便,我们可以把解压缩后的设备端代码修改成examples目录下任意文件的名字,这样就不需要修改Makefile,最终生成的可执行文件就是当前.c文件的名字



这里我们将设备端代码命名为mqtt_example.c,将当前目录的mqtt_example.c进行备份,然后将改名后的设备端代码拷贝到examples目录



此时我们已经将SDK和设备端代码都已经成功添加到Ubuntu中了,接下来需要修改设备端代码,将其能够链接到阿里云物联网平台下指定的产品的设备,打开设备端代码

首先要修改的是第21行到27行的代码,指定产品秘钥、设备名称和设备秘钥



产品秘钥需要在阿里云物联网平台控制台寻找,点击左侧“产品”,找到指定产品后点击右侧“查看”(注意每个产品和设备的秘钥都不同,添加自己创建的即可,并且作为公司产品不可外泄秘钥)



在弹出的对话框中可以看到ProductSecret和ProductKey,复制ProductSecret并粘贴到代码中




然后点击左侧“设备”,在指定设备相同的位置点击“查看”



将DeviceName和DeviceSecret复制到代码中




接下来我们可以编译代码并运行了,回到output目录,然后再当前目录下运行make prog,注意是执行make prog而不是make



编译成功之后的结果如图所示,会发现在当前目录下多个一个名为build的目录文件,这个文件保存的就是最终生成的可执行文件,我们最终设备端代码生成的可执行文件名为mqtt-example



接下来到了激动人心的时刻,运行可执行文件与阿里云建立链接,首先需要打开阿里云的代码调试页面,同样在控制台左侧,点击“监控运维”中的“在线调试”,然后再中间页面中“请选择设备”右侧指定产品和设备,此时发现没有任何数据,是因为还没有建立链接



接下来运行可执行文件mqtt-example,出现如图所示的结果说明链接成功了



接着查看阿里云控制台,发现右侧已经有数据了



我们现在可以在“调试功能”里面选择自己定义的功能,可以获取或者设置属性,例如功能选择“power_LED”,方法为“设置”,下方代码中设置为1,点击“发送指令”,就可以将数据发送正在运行的可执行文件



当然,现在大家还不知道设置的数据到底在哪接收,接下来我们的任务就是看懂设备端代码并且可以操作数据

首先是获取阿里云发送过来的数据,具体函数在380行左右,

函数名为user_property_set_event_handler,



这个函数将从阿里云接收到的数据保存在了第二个参数request里面,并且先输出了这个结果,我们可以自己在当前函数里面写一个打印信息



接着重新编译并通过阿里云发送数据,接收到的信息如下



接下来在当前函数中调用另一个函数app_parse_property对接收的数据进行解析,最终解析得到power_LED的值为1还是0,将值保存在powerled->valueint中



接下来我们给阿里云发数据,在发数据前,我们再控制台可以尝试接收数据,我接收内存空闲数据,最终发送指令得到的结果是0,说明是可以正常接收数据的,只不过没有设置而已



查看代码的主函数,会有一个while循环,循环里面有很多的函数调用,这些函数就是给阿里云发数据的函数,每一个函数的第二个参数就是发送阿里云控制台的具体值



比如我们设置app_post_property_cpu_usage的第二个参数为30,编译运行看一下控制台接收的数据




发现获取到的值就是30,这样我们就搞清楚如何与阿里云进通信了,接下来要做的就是把每一个数据都正确的获取到,需要在Ubuntu设备端代码中编写程序并在主函数调用即可

编写的代码如下:



声明并定义函数



将函数在主函数里面调用并给指定功能赋值传参



注意:由于是在虚拟机运行Ubuntu,所以无法获取cpu温度,所以在这里将温度固定设置为30

接下来编译代码并运行,通过阿里云控制台接收数据




除了可以在这里查看以外,还可以实时查看设备数据,在指定设备中点击“物模型数据”,下方就可以实时查看数据的变化



相关产品

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部