This is my entry for the Build-2-gether 2.0 in the mobility impairments track- Home and toolsPests are annoying, and it is frustrating to monitor and mitigate their activityFor those with mobility impairments, it would be all the more difficult to monitor pest activity and take actions against these.To solve this issue, I came up with PHROG, a rover which helps track and take action against Pests.This can be helpful to those who struggle with motor impairments, and ease their pest related concerns
Overall Working and Algorithm:
The device does the following - Controlled via bluetooth- Accessible via desktop application
- Drops pest toxins with the help of servo motor
- Monitoring of pests remotely with xiao esp32 s3 sense
- Pest detection using ML
- The Device is bluetooth based, it connects to a python application over bluetooth. We can control the device via the application
- It also streams live camera feed so users needn't move around too much
- Detection and monitoring of pests using ML
- It drops pest repellent using a servo motor. (in our example we use naphthalene, which is used to repel lizards)
Motor control:
The board connected to the motor controls it such that it drops naphthalene balls at the location the user wants to. Basically like a valve.
4WD motor control:-The 4WD control is also done by the NRF 52840 DK, which controls the whole system. The GPIO Pins are connected to the motor driver which is connected to 6v of battery supply.
Video Streaming: - Live video is streamed by the Xiao Esp32 S3 Sense .
Software:Pest Detection Training:-
We are training our model to detect 2 pests in this- lizards and cockroaches. We use Google's Teachable machine to efficiently train and get a good model
Python Application development
We have developed an application in python to control the device remotely. It connects to the bluetooth device and can be controlled. Here pests can be detected using the ML model as well.
To connect to the bluetooth device, we need to assign it to the Service UUID's(Which we will get to soon)
# BLE constants
DEVICE_NAME = "MY_LBS2"
LBS_SERVICE_UUID = "00001523-1212-efde-1523-785feabcd123"
LBS_LED_UUID = "00001525-1212-efde-1523-785feabcd123"
Motor_Control_UUID = "00001526-1212-efde-1523-785feabcd123"
To livestream camera data from the esp32 microcontroller, we have to set up the URL as we have extracted earlier from
Bluetooth Device :-The NRF is controlled via bluetooth via the user application,make sure to change the UUID's accordingly. The bluetooth application controls the motors as well as the naphthalene deployment motors.
The UUID's have to be declared for each service, here we declare a service for controlling the motors, and one for controlling the valve
#define BT_UUID_VALVE BT_UUID_DECLARE_128(BT_UUID_LBS_LED_VAL)
#define BT_UUID_MOTOR_CONTROL BT_UUID_DECLARE_128(BT_UUID_MOTOR_CONTROL_VAL)
Camera live streaming capabilities:
The Xiao Esp32 S3 Sense handles livestreaming. Upload the firmware, test it and run it . In the Arduino IDE, connect it to serial monitor, You will see the IP to which it connects.
Future Developments:
This device could be worked upon a lot more in the upcoming future, these features could be implemented.
- Automatic navigation system
- Better pest detection and alert system
- Edge processing capabilities
Comments