Bird Watcher using Edge Impulse Linux SDK and BalenaOS
Checkout the website -> https://just4give.github.io/birdwatcher/
This project enables you to run Edge Impulse Linux SDK on balenaOS thus allowing you to manage a fleet of devices with the same software stack on them which can do various kinds of on-device Machine Learning applications.
To-Do List
- hostname: confirm that http://birdwatcher.local works if you are on the same network than the Bird Watcher.
- Snaps: check title of Snaps (I see
motion
instead of the bird name) - Snaps: pictures of watched to train the ML shouldn't have the box with the name of the bird. Solution: store picture with no box and with box. We will show on Snaps the picture with box and send to Edge Impulse the picture without box.
- Settings: Add GPS (lat and lon form) of the Bird Watcher.
- Settings: Add the possibility to add Telegram information.
- Settings: Add the possibility to make the Bird Watcher public or private.
- Settings: Add the possibility to change password of the UI.
- Make a cron to get Device Variables from the balenaCloud fleet and create a markdown file on github with the list of Bird Watchers (location + telegram link).
- Telegram: check about group bots to add more people on the channel.
- Migrate Vanila JS Web App to React or Svelte
- Build Project/Product Website to provide detail information on features, DIY feeder, community and device map.
3D Printed Unit
Website on Mobile
Hardware
| balenaFin |
| Raspberry Pi 3 Model B+ |
| Raspberry Pi 4 Model B |
Raspberry Pi camera or any USB camera.
Software
- Sign up for a free Edge Impulse account
- Sign up for a free BalenaCloud account
- balenaEtcher
Deploy using balenaCloud
Click on the deploy-with-balena button as given below, which will help you to deploy your application to balenaCloud and then to your Raspbery Pi in one-click!
Else you can build your own release by cloning this repo on your primary machine (x86) and use the following commands :
$ git clone https://github.com/just4give/birdwatcher.git
$ cd birdwatcher
$ balena login
$ balena push birdwatcher
Data Collection Mode
Set the variable to Y which will bring the application to data collection mode.
EI_COLLECT_MODE_IMAGE
and follow the instructions being laid down in the terminal.
Enable Motion
Sometimes you may need to unknown bird's image and feed to your EI model and retrain. For this, you can enable motion detection by setting the variable to Y
ENABLE_MOTION
Enable Telegram
If you wish to turn off telegram notification for any reason, you can set below variable to N ( set back to Y if you like to receive notification)
ENABLE_TG
Manage WiFi
If you change your Wifi SSID or password, don't worry, you can reconfigure your WiFi without physically touching the device. When your device lose internet connection, it will create an access point named BIRD-WIFI-AP
. Choose that and it will open captive UI where you can selected your new Wifi and password.