We decided to go with a hardware hack this time because of our limited experience with hardware. We decided that a smart doorbell / front door security system would be both fun and a good challenge for us.
What it does
We have designed a doorbell which, when pressed, will buzz and then send a text message straight to your phone telling you that someone is at your door. You can then choose to respond to this message (to let the person at the door know that you'll be out in five minutes) or you can ignore the message. This allows for all of the convenience and utility of a regular doorbell along with the modern capability of receiving text messages. This is helpful in situations where a traditional doorbell fails, such as: when you're not home, when you're in a part of your house where the doorbell can't be heard, etc.
How I built it
Our initial design was a motion sensor which would alert the homeowner that someone is at the door. We were designing this with the Intel Edison. However, this design is still very buggy and as such we went with a different approach -- a button ("doorbell") which connects to an Arduino board. Upon being pressed, a POST request is sent to a server which then sends a text message to the homeowner through the Twilio API. The homeowner can then respond to this message through another POST request which then writes the message to an LCD screen which is on the door. The server and web application was designed with Python and Flask; the circuitry used was Arduino; the API used was Twilio.
Challenges I ran into
One challenge was integrating IoT (internet-of-things) into the project. We were initially going to have a board that wirelessly sends a POST request based on a motion or light sensor. However, we ran into some difficulties with network security (the Particle Spark Core would not connect to the web in any way) and then with firmware issues (the Intel Edison would not upgrade to a firmware which would allow for standalone WiFi interaction). So, we designed the bulk of the project without IoT and are instead working on it as a feature for the project in the future.
Another challenge was sending messages from the server to the LCD screen. The interaction between the serial and the server was written in Python.
Accomplishments that I'm proud of
Our Twilio integration. Ultimately, we were able to smoothly send and receive text messages through our doorbell system and with the Twilio API.
What I learned
We learned that hardware has a whole sea of problems with it, much like software does. However, while these problems are scary for people who don't deal with hardware often, they are still solvable problems. This project taught us how to deal with hardware and how to deal with the issues that come with it.
What's next for chimr
We are going to integrate IoT at some point, once the hardware is less buggy. The idea is for the board itself to send the POST requests instead of through another computer. This allows for less requirements for the project, which is desirable by any consumer. Besides this, we are considering adding an optional keyboard to the LCD screen or microphone on the door which allows for the visitor to communicate with the homeowner instead of just the homeowner sending messages to the visitor. In addition, we hope to integrate with wooden doors at some point. Finally, we aim to have two components: a small hardware component and a mobile or web application that users can download to use with the hardware.