Prairie Patrol is a Flutter-based mobile application designed to work in tandem with an Arduino and Google Firebase. The app facilitates smart, remote-controlled trapping of prairie dogs using RFID technology to identify animals and close the cage only when the desired dog is detected.
This project is built to assist zookeepers or wildlife researchers with precision and automation, ensuring humane and efficient trapping.
- RFID Integration: Detects animals with embedded RFID tags to identify specific prairie dogs in the trap.
- Remote Control: Communicates with an Arduino via Firebase to control the trap's door mechanism.
- Real-Time Updates: Displays live notifications and trap status on the app.
- Dark and Light Themes: Supports both themes for user preference.
- Customizable Settings: Easily configure the app for your environment.
After installing the package dependencies with:
flutter pub get
Run the code generation tool:
flutter pub run build_runner build
The project supports multiple build modes, along with environments for testing and production:
- debug - Development environment for debugging.
- profile - Optimized for profiling.
- release - Optimized for production.
To run the app in debug mode, use:
flutter run
Or set configurations in your IDE (e.g., Android Studio or VSCode).
- Set up a Firebase project.
- Add
google-services.json
(for Android) andGoogleService-Info.plist
(for iOS) to the respective folders in your Flutter project.
- Program the Arduino to read RFID tags and communicate with Firebase Realtime Database using code in arduinoRFID copy Folder.
- Ensure the Arduino controls the servo motor for the cage mechanism.
** to start make sure the battery is connected
- Download arduino onto your computer
- plug the arduino into your computer
- Hover over tools --> Board --> Board Manager --> install " Arduino uno R4 boards"
- Hover over sketch--> include library--> library manager --> install mfrc 22
- Open "testRfidNoWifi"
- Hover over Tools --> Port --> select port that the arduino is plugged into (usually the recommened port)
- Hover over Tools --> and click on serial monitor (this is where any text will pop up as the code runs, so keep the serial monitor visible)
- Go back to the arduino tab, and click the circle button with upload button with the arrow in it. This should be the second button in the top left hand corner. This button uploads the code to the arduino.
- When the code has successfully uploaded the serial monitor should tell you that the card is ready to be scanned, simply hold a HF RFID card to the scanner and the door should close when its the selected card held up to the scanner.
- To reset the simulation just reupload the code
Note: the process is the same for running any arduino program: simply plug the arduino into the computer, then wait for the code to upload!
- RFID Scanner: Detects the animal in the cage.
- Firebase: Acts as a bridge between the Arduino and the Flutter app, syncing data in real-time.
- Flutter App: Displays trap status and allows remote control.
- TasksRepository: Handles communication with Firebase and local data cache.
- ApiService: Provides an abstraction for Firebase communication.
This app is built for zookeepers or wildlife researchers looking for an automated solution to trap specific prairie dogs humanely and efficiently.
- Connor Sullivan (Project Leader)
- Will Webber (Software Developer)
- Noah Webb (Software Developer)
- Ashley Gerbes (Hardware Developer)
- Jude Maggitti (Hardware Developer)
This project is licensed under the MIT License. See the LICENSE file for details.