基于Android Things的LED灯开关试验探索

2018-03-21 09:27林鑫睿
电脑知识与技术 2018年3期
关键词:树莓派物联网

林鑫睿

摘要: Android Things是谷歌公司推出的新一代智能物联网操作系统,有效地降低了开发的难度。该文首先对Android Things的结构、优势和应用场景进行了分析,然后从硬件的准备、关键技术的实现来探讨如何基于Android Things来进行LED灯开关的操作试验,为学习Android Things提供了较好的实践案例。

关键词:物联网;Android Things;LED灯控制;树莓派

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0084-02

1 Android Things技术

Android Things为谷歌公司在2016年12月发布的物联网操作系统。在图1的系统架构中可看出,Android Things通过Things Support Library库,扩展了核心Android框架,从而可使APP能够与手机上没有的硬件集成在一起。此外,出于优化的目的,Android Things只是选用了Android API的子集。由于嵌入式设备典型情况下是为用户呈现单个应用程序,因此在Android Things中一次只能运行一个应用程序,而且应用程序将随着系统自动启动。

Android Things带来了如下显著的优势:

1) 在标准上,通过谷歌的品牌和影响力,类似于Android手机操作系统,有望在业界中推动建立一个流行的智能物联网操作系统。

2) 在开发上,可以在Android Things中使用Java语言来编程,通过调用Android Things提供的有关API来操作硬件,此外还可以使用谷歌丰富的开发资源,降低实现难度。

3) 在效率上,使用Android Studio来开发和调试程序,直接可以在物联网硬件上运行,提高了开发效率。

4) 硬件价格低,Android Things对硬件的要求比Android要低。目前支持Androd Things的开发板有:NXP i.MX7D、NXP i.MX6UL、Raspberry Pi 3、Intel Edison、Intel Joule。

5) 机器学习能力:支持TensorFlow,能够将深度学习应用到物联网领域,提高物联网设备的智能性。

6) 安全性:通过Cloud IOT云平台来进行安全管理,依靠谷歌的安全团队技术,提高物联网产品的使用安全性,减少数据泄露和被攻击的几率。

可以将Android Things部署在多个物联网领域,例如:智慧城市、车联网、智能音箱、数字标牌、打印机等,但目前受开发板成本的限制,Android Things还没有开始大规模在商业市场上应用。

2 硬件准备

1) 树莓派(Raspberry PI)。树莓派作为专门用于学习计算机编程的微型电脑,具有体积小、功能强大、价格便宜的优点,因此在本实验中采用树莓派来安装Android Things。

2) 面包板。面包板是集成电路实验板,板上由若干个小插孔组成,用于插放各类电子元器件。中间部分的5个小插孔是纵向相互连通,而上、下部分的所有横向孔是相互连通的。面包板的优点在于不需要焊接,组装电路较快,而且可以重复使用电子元器件。

3) 其他配件:红、黄、蓝LED灯各1个,电阻3个、杜邦线若干、HDMI接口显示屏1个。

3 系统实现

3.1 功能介绍

通过APP操作界面设置LED灯的开和关,并通过滑动栏来控制开灯的闪烁频率。

3.2 软件开发环境配置

1) Android Studio 3.0对Android Things提供了支持,需要到谷歌开发者官网下载并安装。

2) 打开Android Studio,新建一个项目,设置目标Android设备为“Android Things”,并选择合适的API版本。

3.3 关键实现代码

实现的原理是获取连接在GPIO的引脚对象,通过该对象去访问连接在灯上的引脚BCM6,然后进行true/false的取值来发送接通/关闭引脚,从而实现对灯的管理。

1) 定义一个PeripheralManagerService对象:PeripheralManagerService是负责管理外设连接的类。

PeripheralManagerService service = new PeripheralManagerService();

2) 定义一个Gpio对象:Gpio对象用于读取输入设备的二进制状态(例如:按钮开关)和控制二进制输出设备的开关状态(例如:LED灯)。PeripheralManagerService对象的openGpio方法用于打开指定引脚名字的Gpio对象。

Gpio mLedGpio= service.openGpio("BCM6");

3) 通过Gpio对象的setDirection方法来配置 BCM6引脚为输出信号引脚。

mLedGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);

4) 调用Gpio对象的setValue(true)方法打开LED,或者调用setValue(false)方法关闭LED。

5) 最后调用Gpio对象的close()方法關闭端口的连接,释放资源。

本案例的运行结果如图5,6所示:

4 结论

Android Things能够和树莓派较好地结合,进行物联网的相关应用。在本实验搭建的LED环境中,可以作进一步的物联网扩展开发实验,例如:增加烟雾探测、温度、人体红外感应等类型的传感器,添加摄像头进行图像捕捉等。

参考文献:

[1] 谢景明,钟闰禄,陈长辉,等. Android移动开发项目式教程 [M].2版.北京:人民邮电出版社,2015.

[2] Google, Things[EB/OL].[2018-01-03]. https://developer.android.google.cn/things/index.html.

猜你喜欢
树莓派物联网
智能安全防盗探测小车
中国或成“物联网”领军者
基于嵌入式技术的农村医疗系统设计