【AllJoyn框架-01】连接PC与Arduino Due开发板

简介: 前言 从今天开始学习高通主打的物联网框架AllJoyn,并定期记录学习过程。由于目前网上教程很少,所以要认真阅读官方文档。下载回来的文档比较多,根据名字也不好判别先看哪个,后看哪个,所以目前就靠感觉先看一部分文档再说,若能看懂就照着做一遍,若看不懂就多看。大致原则就是先把部署过程熟悉,然后是基本概念,接着掌握SDK,最后才是源码的学习。本着开源分享的精神,学习笔记记录在此,以飨读者。

前言

从今天开始学习高通主打的物联网框架AllJoyn,并定期记录学习过程。由于目前网上教程很少,所以要认真阅读官方文档。下载回来的文档比较多,根据名字也不好判别先看哪个,后看哪个,所以目前就靠感觉先看一部分文档再说,若能看懂就照着做一遍,若看不懂就多看。大致原则就是先把部署过程熟悉,然后是基本概念,接着掌握SDK,最后才是源码的学习。本着开源分享的精神,学习笔记记录在此,以飨读者。


1、AllJoyn介绍

AllJoyn是一个中性平台系统,旨在简化邻近异构分布式移动通信网络系统。这里的异构性不仅表示不同的设备,而且可以是具有不同操作系统和不同类型的设备(例如个人电脑、手机、平板电脑和消费性电子产品),并且使用不同的通信技术。


2、需提前准备的资料

文档方面,网上资料并不多,只能求助于官方文档了,其分成了好几块,并不是完整的PDF。另外,源码是必须要有的,包括核心目录alljoyn_core、瘦客户端目录ajtcl等,文档中已给出了下载路径。在今天这个实验中,我重点看的文档是以下两个:

Configuring the Thin Client BuildEnvironment (Arduino + Ethernet Shield).pdf

configuring_the_build_envir_windows_xp_and_windows_7.pdf

硬件方面,alljoyn支持的平台还是挺多的,在这里我们就可看到它支持arduino。所以我选择的硬件平台是Arduino Due + 以太网扩展板

工具软件就采用arduino-1.5.6,其支持Due板


3、安装AJTC库到Arduino IDE

首先下载安装scons,不过先要把python安装好,它被安装到了python的Scripts文件夹中。正如上面第二个文档所说,我们要添加scons命令到环境变量

然后下载uncrustify,并且添加环境变量

最后进入到瘦客户端目录ajtcl,执行:scons TARG=arduino

那么就会在当前目录的build目录下生成arduino_due\libraries\AllJoyn,就可以在IDE中导入AllJoyn目录了


4、在Due中运行alljoyn瘦客户端实例AJ_LedService

选择文件-例子-AllJoyn-AJ_LedService,连接好硬件,点上传即可


5、在win7运行AllJoyn标准客户端AJSC

进入alljoyn_core目录,执行以下命令:scons OS=win7 CPU=x86 MSVC_VERSION=11.0 BINDINGS=cpp

一段时间过后,在build目录下就会有文件生成了

文档中说,若要将AJTC代码连接到AJSC,需要设置ALLJOYN_DIR环境变量到alljoyn目录,它是alljoyn_core的上一层目录


6、进入alljoyn_core\build\win7\x86_64\debug\dist\cpp\bin,执行例子ledctrl.exe:


保证刚才上传到Due板的AJ_LedService在运行,此时在上图命令行中输入on或off,就可使得板上led灯亮或灭。与此同时,在IDE的串口终端我们可以观察到相关输出:


在板上运行的其实是一个alljoyn bus object(服务),其向外公开了on和off方法。一旦有客户端连接到服务并循环接收命令时,on和off方法就会被调用。甚至当我们输入flash 100时,LED灯就会每100ms闪烁,这也就实现了运行在windows下alljoyn标准客户端与运行在嵌入式设备的瘦客户端间的通信。


目录
相关文章
|
存储 芯片 UED
【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility
【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility
334 0
|
Linux 开发工具 git
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
190 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
|
Linux C语言 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
124 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十二)LED硬件原理
|
Ubuntu 网络协议 Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
709 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
|
存储 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
832 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境
|
异构计算 Windows
VHDL串口通信 在FPGA开发板上测试 并解决没有识别到下载接口USB_Blaster(No Hardware问题)
今天在调试 VHDL 串口通信,当使用 Quartus II 13.0 综合好的文件下载到 FPGA 开发板时发现,没有识别到下载USB_Blaster
479 0
VHDL串口通信 在FPGA开发板上测试 并解决没有识别到下载接口USB_Blaster(No Hardware问题)
|
移动开发 网络协议 Linux
嵌入式之一款GPRS模块的应用
嵌入式之一款GPRS模块的应用
160 0
嵌入式之一款GPRS模块的应用
|
存储 物联网 Linux
AliOS Things基于USB通道外接4G模组的方案
本文介绍AliOS Things关于USB外接广域网芯片连接入云的方案。物联网设备联网方案,可分为OpenCPU的方式与外接通信芯片的方式。OpenCPU的应用层与网络层运行在同一芯片上,该方式具有较高的集成度,但使得应用、协议在接口、配置、性能等方面产生了耦合,不利于方案的移植与推广。而采用外接的方式,可以分离应用层与网络层,较好地降低耦合度,提高联网方案的灵活性。例如,MCU运行MQTT应用层协议,而由外接通信芯片(如Wi-Fi、LTE)完成网络层的TCP/IP连接与传输。当然,外接通信芯片的代价,是MCU与通信芯片之间增加了交互成本,需要开发者选择适合应用场景的外接方式。
AliOS Things基于USB通道外接4G模组的方案
【STM32 .Net MF开发板学习-05】PC通过Modbus协议远程操控开发板
本示例包含两部分,一部分运行到开发板上,作为Modbus RTU Slave服务存在;另一部分典型的.Net Framework代码,实现了Modbus RTU Client端功能,可以借助开发板上的Slave服务控制开发板上的LED灯和获取按钮状态。
711 0
【STM32 .Net MF开发板学习-21】蓝牙遥控智能小车(PC模式)
上篇文章我们用手机上的蓝牙去控制智能小车,这次我们直接用笔记本上的蓝牙模块来控制小车,这样利用PC更为强大的运算能力,就可以扩展出更多有意思的功能来。
586 0