GardenThing
A garden monitoring system built on Android Things and Android.
Current Features
- Local familiar Android UI
- Environmental Monitoring (Soil Moisture, Ambient, IR, LUX, Temperature & Humidity)
- Logging
- Graphing
- Reporting
- Journal
- Web Frontend with custom reporting and data exports
- JSON API
- Mobile app
Planned Features
- Bluetooth LE sensors
- Push notifications to mobile app
- Email alerts
- Eliminate the GrovePi by adding its functions to the custom PCB
- Google Assistant
- Amazon Alexa
- Water valve control
- Lighting control for indoor gardens
- Camera for time lapse images
Hardware Requirements
- Raspberry Pi3 with 8GB Class10 SDCard and 2.5A+ power supply
- Official Raspberry Pi 7" LCD
- GrovePi+ Board
- Up to three Grove Soil Moisture Sensors
- Grove Temperature and Humidity Sensor Pro
- Grove Digital Light Sensor
- Some Grove RJ45 Adapters to extend sensor distance with ethernet patch cables (2 per sensor)
Building
Hardware Assembly
First assemble the LCD and RPi3. Next, follow the GrovePi setup guide and upgrade the firmware and test the GrovePi. Lastly plug the sensors into the appropriate ports. Soil Moisture Sensors use analog, Temperature and Humidity Pro uses digital and the Digital Light Sensor uses I2C.
Software Setup
Android Thing App
First step is to follow the Android Things setup guide for RPi3 to flash Android Things to your SDCard and set up your network.
Next follow the AndroidThings SDK setup guide to get the Development Environment ready. Once complete make sure you can connect to your RPi3 running AndroidThings with adb.
Next clone the GardenThing repo
git clone https://github.com/kconger/org.thecongers.gardenthing.git
Import the project into Android Studio, then build and run on your RPi3.
Once GardenThing is running you can now point your web browser to http://<yourIP>:8080/ and login with the default username/password of gardener/secret. Once logged in click the settings gear up in the top right hand corner. On the settings page change the password and configure your sensors. You should now be accumulating data and soon your graphs should fill.
Optional Mobile Android App
The optional Mobile app provides you essentially the same features as the local UI or web interface.
Clone the GardenThing Mobile repo
git clone https://github.com/kconger/org.thecongers.gardenthingmobile.git
Import the project into Android Studio, then build and run on your Android device.
Set the IP and username/password of your GardenThing in the settings and you should be connected up.
Credits
androidplot Android Graphing API
bootstrap CSS
dygraphs Web Graphing API
GrovePi Java Libraries (Ported to Android Things)
nanohttpd Android Web Server API