Android ThingsAndroid开发经验谈Android开发

Android Things创客DIY第四课-Android T

2018-01-22  本文已影响557人  李雷鸣

这是一个从Android Things官方Weather Station简化而来的例子,去掉了联网和数码管显示,主要演示入门配件包中的BMP280气压温度传感器的用法。

代码可以从Github上下载:https://github.com/sysolve/androidthings-weatherstation

案例代码已升级到Android Things Developer Preview 7版本,注意开发板系统与代码版本一致。

Weather Station调试图片

BMP280的连接:根据BMP280的定义

The I2C interface uses the following pins:

> VCC: 连接至3.3V

> GND: 连接至GND

> SCK: serial clock (SCL)      -- 连接开发板的SCL,即Pin 5

> SDI: data (SDA)        -- 连接开发板的SDA,即Pin 3

> CSB must be connected to VDDIO to select I2C interface.  -- 本例中使用I2C,即连接至3.3V

> SDO: Slave address LSB (GND = ‘0’, VDDIO = ‘1’)      -- 本例中设置为1,即连接至3.3V

BST-BMP280-DS001-11.pdf 是BMP280芯片的详细文档,可参考。

使用面包板的连接图如下(树莓派和NXP开发板均适用)

面包板的连接图

程序首次启动时,会出现以下异常

FATAL EXCEPTION: main

Process: com.sysolve.androidthings.weatherstation, PID: 1693

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sysolve.androidthings.weatherstation/com.sysolve.androidthings.weatherstation.MainActivity}: java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.MANAGE_SENSOR_DRIVERS

这是因为Android Things不支持动态权限导致的,重启Android Things开发板,即可成功运行。

屏幕上会显示当前的温度和气压,你可以把手放在传感器上使其温度上升,看到温度值的变化。屏幕界面效果如下:

屏幕界面

不连接屏幕,也可以在logcat中看到传感器返回值:

温度和压力值反馈

按照官网的例子,会根据气压值范围显示晴、多云、雨的图标,不过影响气压值的因素很多(海拔、季节),所以这个天气图标是不准确的,纯属娱乐。

下一步工作

后续会增加一些传感器,实现一个多功能的气象站。

考虑到Google Cloud的可用性问题,接入阿里云IoT,实现传感器数据的发布。

上一篇下一篇

猜你喜欢

热点阅读