为Android Things构建Android IoT应用

这篇文章介绍了如何为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:


  

 

 

 

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

@Override
protected 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

你可能感兴趣的:(为Android Things构建Android IoT应用)