This sample shows integration of multiple Android Things peripheral to build a connected Weather Station.
- Android Things compatible board
- Android Studio 2.2+
- Rainbow Hat for Android Things or the following individual components:
- 1 bmp280 temperature sensor
- 1 segment display with I2C backpack
- 1 push button
- 1 resistor
- jumper wires
- 1 breadboard
- (optional) 1 APA102 compatible RGB Led strip
- (optional) 1 Piezo Buzzer
- (optional) Google Cloud Platform project
If you have the Raspberry Pi Rainbow Hat for Android Things, just plug it onto your Raspberry Pi 3.
On Android Studio, click on the "Run" button. If you prefer to run on the command line, type
./gradlew installDebug
adb shell am start com.example.androidthings.weatherstation/.WeatherStationActivity
If you have everything set up correctly:
- The segment display will show the current temperature.
- If the button is pressed, the display will show the current pressure.
- If a Piezo Buzzer is connected, it will plays a funny sound on startup.
- If a APA102 RGB Led strip is connected, it will display a rainbow of 7 pixels indicating the current pressure.
- Sensor data will be published to the iot.eclipse.org public MQTT sandbox.
- In
app/build.gradle
, replace thebuildConfigField
MQTT_TOPIC
value with the topic you would like to use to publish sensor data to your MQTT broker.
After running the sample, you can check that your data is published to the Eclipse IoT broker at tcp://iot.eclipse.org:1883 using e.g the mosquitto_sub command line tool
mosquitto_sub -h iot.eclipse.org -t '[your_topic]'
Now your weather sensor data is continuously being published to Google Cloud Pub/Sub:
- process weather data with Google Cloud Dataflow or Google Cloud Functions
- persist weather data in Google Cloud Bigtable or BigQuery
- create some weather visualization with Google Cloud Datalab
- build weather prediction model with Google Cloud Machine Learning
Copyright 2016 The Android Open Source Project, Inc. Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.