这是一个从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,实现传感器数据的发布。

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. 腾讯的Android助手占用adb,android sdk无法连接
  3. android网络与通信
  4. Android(安卓)网络连接 打开 Url下载 信息
  5. Android(安卓)蓝牙操作详解
  6. Android(安卓)中 控制 wifi
  7. android4.0 通过DHCP方式实现以太网连接
  8. android连接真机 调试未测试
  9. 详解OkSocket与Android的简单使用

随机推荐

  1. Android通用圆角布局(兼容Android(安卓)P)
  2. Windows环境下Android(安卓)NDK环境搭建
  3. 深入解析_Android的自定义布局
  4. 【最近读书】《Android平台开发之旅(第2版
  5. Android的程序解码与XML文件解码
  6. Android(安卓)面试大全
  7. android的IPC方式 总结
  8. 在Android中使用Handler和Thread线程执行
  9. Android(安卓)Service 定时任务
  10. Android高手必须了解的关于View的细节(进