How I did it: Designing and coding a custom guest notification system with Arduino
*This post was originally published November 8, 2020.
Given that we're in quarantine, I've got a lot more time on my hands. No commute? No problem. I've been filling up my time with a lot of design challenges, for instance, a custom guest notification system complete with an LED, a screen with scrolling left text, and a buzzer that I coded in Arduino and built in a matter of days.
Background: I started getting into Arduino a couple weeks ago when it was offered at a workshop through an organization called George Hacks. Since that workshop I've learned more and more about the processor. If you're not familiar, take for example a button, the input, that turns on a light, the output. The Arduino is that piece in the middle embedded with code that processes the information so that if the button is pressed, the Arduino instructs the light to turn on.
I recently noticed an issue with guests at my door. I don't have a doorbell and I often have my headphones on, so I don't usually hear people knocking. I needed a guest notification that could get my attention. So I set to work on this problem statement: How might we create an Arduino system in a way that alerts you when someone is at the door so that you can greet them?
Here's the idea I decided on: Every now and then, there is a knock at my door, likely from a delivery person. Unfortunately, I don't have a doorbell at the apartment I'm renting, so sometimes I don't hear them immediately. Given that, I decided to create a prototype for a motion sensing machine (input) that would alert me of their knocking. For the output, I decided on being notified through a light, an LCD screen, and a buzzer. No way I would be able to miss all three for someone at my door without easy access to my phone number.
Here's how I wired my LCD: This is the schematic I used to wire up my LCD. You'll see that I used a breadboard, a 10K potentiometer, lots of male to male wires, and a 220 ohm resistor. I learned that the potentiometer can adjust the contrast of the screen, so if your message doesn't immediately appear, play with that. Also, if you're not seeing your screen light up check that the potentiometer and LCD screen are tightly connected to the breadboard. And if that doesn't work check your wiring for any misplaced wires.
Moving onto the buzzer and ultrasonic sensor: Here are the schematics on the buzzer and the ultrasonic sensor. Instead of attaching them into my Arduino directly, I wired the circuits through a bread board.
And last but not least our LED light: Wiring the LED was extremely easy. Make sure the positive leg is connected one of the digital pins. Make sure the negative leg is connected to Ground. (Here's some access to Arduino basics).
Coding it in Arduino: There are so many sources online for how to code different projects into Arduino but nothing that worked for me. So, I Frankenstein-ed different bits of code off of the Arduino project site that made sense, making sure the logic made sense for what I wanted the system to do. If you upload this code through Arduino, activating the motion sensor turns on the LCD with a scrolling left message that reads "You have a visitor." Activation will also cause the light to turn on and the buzzer to ping.
Now to encase it all: For the prototype to share with reviewers, I used a picture frame and a sheet of cardboard to mimic a product. The front view is what the sensor might look like encased and hung on a door. Turn it around and find the wiring that notifies me of a visitor while I sit at my desk headphones on. This week, with slower than normal deliveries, I couldn't get an XBEE Series 2 wireless shield to connect the ultrasonic sensor to the notification system wirelessly. As a next step, that would be great to do as a prototype and show it to people and work on some usability testing.
What I would do next:
One consideration I thought of in the prototype concerned a family member who visits weekly. It's cheaper for me to make a scanner than it is buy one from our keycard access-only apartment building. Therefore, I would like to code a system uses RFID technology. I could place a scanner at my front window by the apartment building front door. After he scans the his custom keycard coded with a custom UID code onto the RFID sensor, I'll receive a notification.
I would also like to take the notifications a step farther. The use cases for the current system are pretty limited. What if I'm not home? I'd like to code it in a way that will send me a text message . What if my phone is off? Instead of the buzzer and light, I'll connect everything to my Echo Dot, so it can tell me and light up.
What products are you designing?
Hi, I'm Sarah Coloma. I'm an interaction designer with a passion for products and services that help people get the care they need. I post every Sunday, and every so often I post a bonus blog on Wednesdays.