HomeWeather is an android mobile sensor-based application utilizing DHT22 temperature-humidity sensor. This is a project developed under Metropolia University of Applied Sciences. For further information, please see below or contact one of the developers.
- Getting Started
- Usage
- Features
- Components
- Application Flow
- Technology
- Contributing
- Video Demo
- Thumbnails
- Android Studio installed on your machine
- Android device or emulator for testing
- Enable Bluetooth mock sensor data by going to BluetoothLEService class -> go down to companion object class at the end of the page -> set ENABLE_MOCK = true -> Now you will have sensor data that is mockly generated every 10 seconds. You can view the change of sensor data in HomeScreen
OR
- Android phone
- Arduino board MKR1010 and DHT22 sensor. Please check this documentation for extra information:
- Clone the repository to your local machine using
git clone
. - Open the project in Android Studio.
- Create an assets folder in main, create an env file inside assets folder
- Contact a developer for env content
- Build and run the project on your Android device or emulator.
OR
- Install this APK File to your android phone
HomeWeather is recommended to be used as a stationary device at your home, office or room.
HomeWeather allows users to:
- Measure humidity level and temperature inside a room with an external bluetooth sensor
- Compare the humidity levels and temperatures inside your room with your living area with GPS internal sensor and data fetched from the OpenWeather API.
- Allow users to see humidity level and temperature statistic over a certain period.
- Voice alert + emergency call to users when inside humidity level or temperature drops too low or rises too high and allow user to add additional info on every alert log.
- Allow users to scan QR code to view our github page and download the app apk
- Application is available in English and Finnish
- Jetpack Compose
- Firebase Firestore
- Material Design 3
- Bluetooth Connection
- Foreground Service
- Animation
- QR generator
- External Arduino board with DHT22 sensor
- Open Weather API
- Voice Alert
- TexttoSpeech API
- GPS lat & long
- SharedPreference
- Emergency call
- Env file to prevent sensitive data exposure
- Bluetooth Service is running persistently on background even when application is closed
- Indoor temperature and humidity level are uploaded to Firebase cloud in background every hour
- Outdoor temperature and humidity level are fetched and updated hourly
- Android Kotlin
- C/C++
Contributions are welcome! Here's how you can contribute to the project:
- Fork the repository on GitHub.
- Clone the forked repository to your local machine.
- Make changes and commit them with descriptive commit messages.
- Push your changes to your fork on GitHub.
- Submit a pull request to the original repository explaining your changes.
Click the video to watch