Inspiration
Vipula's dog Leela is often left alone at home. She goes near the garbage and Vipula often comes home to see the garbage strewn around the house (and on her bed -left there as a present!). Leela also often gets lonely and bored when let alone at home. So we decided to come up with a device that both comforts her by giving her a treat ever so often, when she barks or when Vipula wishes to from her lab, and gets her to stay away from the garbage/kitchen!
What it does
The device has an in-built microphone that listens for a dog bark. when the dog is left alone at home, and gets bored and starts barking, the device runs a motor hooked up to a treat box that drops a treat when the motor is run. The motor can also be controlled remotely through an app. This also has the advantage that if there's an external loud noise (say, fireworks, which often scare dogs at home), a treat will fall which will comfort the dog at home and assure him that all is good. The second application is to get your dog to stay away from certain areas of the home or kitchen when you're not at home. The device detects proximity and if the dog comes near, it buzzes, and you can train your dog to keep away from the buzzing sound.
How we built it
We designed the board in Altium, starting from the circuit schematics linked by a top-level schematic. The PCB was designed in Altium PCB schematics, with some of the footprints for the sensors made by us. We interfaced the sensors (microphone and proximity sensor) in C, in the Atmel Studio environment. We also wrote a custom bootloader in Atmel for over-the-air firmware updates (to continue developing the board!) and connected it to the cloud using MQTT and Node-Red, so that Vipula can ensure that her dog is happy even when she's completely stressed out at university with her assignments.
Challenges we ran into
Designing the schematics and PCB was extremely time-consuming, as we had to ensure that everything works fine. Designing the power circuitry was especially challenging, as it is often the most critical part of the hardware. We also had a good time writing the custom bootloader, reading and writing to the external flash on the board ant to the internal flash memory, and ensuring that we didn't accidentally brick the device! We also made a small mistake in hooking up the button on the board, which we were easily able to fix.
Accomplishments that we're proud of
We're quite proud that everything on the board actually works! We are quite proud also of our stable firmware update capability, that just requires the push of a button on the board.
What we learned
- PCB design in Altium
- Revised fundamentals concepts in hardware design and hardware safety
- Existence of MQTT, NodeRed and how to interface this with offline firmware
What's next for IoT Woof
- Automatic timer-driven firmware updates
- Camera Integration to accomodate video calls
- Audio processing to detect only dog barks
Built With
- altium
- atmel-studio
- c
- nodered
Log in or sign up for Devpost to join the conversation.