天天看點

Android Things創客DIY第四課-Android Things入門配件包開發案例教程-氣象站

這是一個從Android Things官方Weather Station簡化而來的例子,去掉了聯網和數位管顯示,主要示範入門配件包中的BMP280氣壓溫度傳感器的用法。

案例代碼已更新到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

使用面包闆的連接配接圖如下(樹莓派和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

<b>這是因為Android Things不支援動态權限導緻的,重新開機Android Things開發闆,即可成功運作。</b>

螢幕上會顯示目前的溫度和氣壓,你可以把手放在傳感器上使其溫度上升,看到溫度值的變化。螢幕界面效果如下:

螢幕界面

不連接配接螢幕,也可以在logcat中看到傳感器傳回值:

溫度和壓力值回報

按照官網的例子,會根據氣壓值範圍顯示晴、多雲、雨的圖示,不過影響氣壓值的因素很多(海拔、季節),是以這個天氣圖示是不準确的,純屬娛樂。

後續會增加一些傳感器,實作一個多功能的氣象站。

考慮到Google Cloud的可用性問題,接入阿裡雲IoT,實作傳感器資料的釋出。

繼續閱讀