BerryBell

A Wireless Doorbell that Will Text the User Upon the Press of a Button




Personal Objective: To build a wireless device that would alert the user to any packages or visitors that arrive on their doorstep, thereby demonstrating the power of wireless communication.




Skills learned: Basic Python, Command-Line Coding, Twilio API, Raspberry Pi and Arduino implementation, Soldering





The video above shows the demo of my project, with the members of my team filming and co-starring. If the video doesn't load, you can download it (410.7 MB) here.




Check out this PDF for more information about the project by clicking here.




Check out this ReadMe for more information about how to install and set up Twilio by clicking here.




BerryBell Images The image to the right shows the different components of this project.

On the right-hand side, the Raspberry Pi, with all of its connections, is shown.

On the upper left-hand side, the Arduino, with the power and breadboard connected, is shown.

On the lower left-hand side, the Python code, with the command-line code on the far left, is shown.

These images are explained in more detail below.












BerryBell Raspberry Pi The image to the right shows the Raspberry Pi used in this project.

The heart of this part of the project was the Software-Defined Radio (SDR) that receives the 434MHz signal from the transmitter.

Run by using a Matlab script, it determined when the button was pressed by listening for a break in the signal.

The various connections for power, HDMI, Ethernet, mouse, and keyboard, are also hooked up.

























BerryBell Arduino The image to the right shows the Arduino circuitry used in this project.

The heart of this part of the project was the 434MHz transmitter that continually sent the 434MHz wave unless the button was pressed down.

The Arduino microcontroller allowed the button, LED, and 434MHz transmitter to work together, providing for a seamless transition from the transmitter to the SDR receiver.

The connection for power is also hooked up, allowing the device to be run wirelessly and from a remote location.













BerryBell Python The image to the right shows the Python code, with the command-line code on the far left, used in this project.

The heart of this part of the project was the Python implementation of the Twilio API, which allowed for the button press to send the text message to the user's phone.

The Twilio API requires an Account SID and an Authorization token to establish a valid connection between itself and the phone that will receive the text messages.

For the code to run, the SDR library (code: from rtlsdr import *) and part of the Twilio library (code: from Twilio.rest import Client) must be imported.