这篇文章介绍了如何为Android Things构建一个Android IoT应用。 您可能已经知道,最近Google发行了一个新的IoT操作系统,称为Android Things。 Android Things是从Android派生的操作系统,有趣的是,我们可以重用我们的Android知识来开发Android IoT应用。 在深入研究Android IoT应用之前,了解什么是Android Things及其工作原理非常重要。

这篇文章的目标是:

  • 使用Android IoT应用程序构建一个简单的RGB led控制器
  • 构建一个使用使用Android API开发的UI的Android IoT应用

为此,我们将使用Raspberry Pi 3作为IoT原型板 。 即使您可以使用与Android Things兼容的其他开发板。

如果您想了解最终结果,请观看以下视频,了解运行中的Android IoT应用程序:

这个Android IoT应用可帮助您熟悉新的Android Things API。 此外,此物联网应用有助于概述如何开发Android物联网应用UI。

Android IoT应用入门

通常,物联网项目有两个方面:电气/电子方面和软件方面。 为了使事情简单,以便我们专注于Android IoT应用程序,此IoT应用程序控制一个简单的RGB led(共阳极)。 RGB LED使用220Ω电阻连接到Raspberry,每种颜色一个。 原理图如下所示:

为Android Things构建Android IoT应用_第1张图片

RGB LED是普通的阳极LED,因此Raspberry Pi 3为引脚阳极供电。 控制led颜色的RGB引脚连接到Raspberry引脚:

  • 销29
  • 销31
  • 销33

这些引脚号很重要,因为稍后我们将在Android IoT应用中使用它们。 在打开Raspberry之前,请检查两次连接。

现在是时候使用Android studio创建IoT应用程序了。 第一步是使用build.gradle配置Android IoT项目:

dependencies {  provided 'com.google.android.things:androidthings:0.1-devpreview'}

就像我们在Android中一样,Android Things使用Activity。 因此,让我们创建一个名为RGBThingActivity的类,并在onCreate方法中处理Pin通信。

Android Thing PeripherManagerService

为了处理与RGB led的通信,我们使用GPIO引脚 GPIO引脚使用可编程接口读取设备状态或设置输出值(高或低)。 使用树莓派GPIO引脚,我们可以打开或关闭三个颜色分量(红色,绿色和蓝色)。

Android Things SDK提供了一项名为PeripheralManagerService的服务,以抽象化GPIO通信接口。 每当我们要读取或写入数据时,都必须使用它。 首先,Android IoT应用程序初始化服务,然后设置引脚值:

try {  PeripheralManagerService manager = new PeripheralManagerService();  blueIO = manager.openGpio("BCM5");  blueIO.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);  greenIO = manager.openGpio("BCM6");  greenIO.setDirection(Gpio.DIRECTION_OUT_INITIALLY_HIGH);  redIO = manager.openGpio("BCM13");  redIO.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);  redIO.setValue(false);  blueIO.setValue(false);  greenIO.setValue(false);}catch (IOException e) {  Log.w(TAG, "Unable to access GPIO", e);}

这段代码介绍了一些新的重要新方面。 首先,我们必须选择正确的引脚。 如果我们习惯了Raspberry,我们知道每个引脚都有一个对应的编号。 同样,Android Things使用相同的寻址模型,无论如何,引脚都以不同的方式命名。 使用Raspberry引脚参考,您可以知道每个引脚地址。 这些地址名称在上面的代码中使用。 例如,要使用引脚BCM5(或引脚29),代码为:

blueIO = manager.openGpio("BCM5");

开始时,我们将所有引脚都设为低电平(或关闭),因此LED处于关闭状态。 更改引脚值:从低到高或从高到低,我们有不同的LED颜色。

Android IoT应用程序UI

Android Things提供的另一个有趣的功能是UI界面。 我们可以像开发Android UI一样开发Android IoT应用程序的UI界面。 与在Android应用程序中一样,UI为XML格式。 在此示例中,我们要使用三个开关来控制RGB led:

<?xml version="1.0" encoding="utf-8"?>     

onCreate方法中,应用程序设置布局:

@Overrideprotected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);..}

并处理用户切换:

Switch switchRed = (Switch) findViewById(R.id.switchRed);switchRed.setOnCheckedChangeListener(  new CompoundButton.OnCheckedChangeListener() {    @Override    public void onCheckedChanged(CompoundButton buttonView,              boolean isChecked) {      try {        redIO.setValue(!isChecked);      }       catch (IOException e) {         Log.w(TAG, "Red GPIO Error", e);      }   }});

您必须为其他引脚重复相同的代码。 最终结果如下:

最后一个方面是Manifest.xml 要使用我们的应用程序,我们必须在application标签内添加:

然后声明我们的活动是物联网活动,它在启动时启动:

        

结论

在本文的结尾,您会更好地了解如何使用Android Things。 有趣的方面是,使用一些新的API,Android开发人员可以为下一次称为IoT的技术革命做好准备。 此外,开发过程与Android应用程序中使用的过程相同。
使用几行代码,Android开发人员可以构建Android IoT应用

翻译自: https://www.javacodegeeks.com/2017/01/building-android-iot-app-android-things.html

更多相关文章

  1. Android代码内存优化建议-OnTrimMemory优化
  2. android.uid.system Android中如何修改系统时间(应用程序获得系
  3. 如何修改Android应用程序能够使用的默认最大内存值
  4. Gears Android WIFI/基站定位源代码分析
  5. 安卓学习(初)第三章(2)(《第一行代码》)
  6. Android应用程序中Manifest.java文件的介绍
  7. Android 2.3禁止系统弹出应用程序强制退出对话框

随机推荐

  1. R.java was modified manually! Revertin
  2. 使用多个联合查询选择post java 8
  3. 与==两个字符串的Java比较是假的? [重复]
  4. Linux(Centos7.X ) 配置Java 环境变量
  5. 20165111 实验一Java开发环境的熟悉
  6. 通过Hibernate4使用SQL Server2008出现or
  7. 安卓多个RecyclerView滑动与显示问题
  8. 页面刷新后删除了Java会话
  9. 小学徒进阶系列—JVM对String的处理
  10. 关于几个位运算的算法分析