On the eve of September 4th, I cracked open my laptop and logged into my student portal to see my schedule for senior year. Every class seemed standard: Calculus, Biology, English, Chemistry, ASL… Wait, ASL? Why was American Sign Language a required course in my high school curriculum?
I walked into my ASL class as a skeptic. Why couldn’t the Deaf undergo a cochlear implant surgery and hear again? How could they carry on with their lives without their sense of hearing to guide them? All these questions and more clouded my thoughts for the first few days of class until our teacher dove into the topic of Deaf Culture.
The Deaf don’t perceive their condition as a disability, but rather as a way of life. Deaf Culture, just like any culture, holds a set of values, social beliefs, behaviors, history, and traditions. As I dove further into the topic, I was inspired by the innovative methods that the Deaf use to overcome the hurdle of being hard of hearing.
- To communicate in person or over video chat, the Deaf use ASL
- To play instruments or listen to music, the Deaf use/listen to vibrations
- To talk over the phone, the Deaf use a TTY (Text Telephone)
Being the nerd I am, I ventured to the web to learn how technology was utilized to improve the lives of the Deaf. However, I was unfortunately greeted with outdated, overpriced technology on archaic online storefronts.
While this was disappointing, it was certainly no surprise. Demand drives innovation, and, from an economics standpoint, the Deaf were the minority in a primarily hearing society.
Consequently, I set out to innovate some products on my own. I wanted to start with the doorbell — one of the many products that hearing people take for granted.
A doorbell for the Deaf uses light and vibrations rather than vocal chimes to alert those who are hard of hearing. However, current offerings haven’t been improved upon since 2004 and don’t utilize the most useful asset offered in every household: light fixtures and lamps that are already in our home. The products shown above only strobe light in one specific area. What if you’re in another room? You can’t carry a clunky light wherever you are in your home and, not to mention, many offerings need to be plugged in at all times. Furthermore, buying multiple Strobe Signalers will run you a pretty penny, something no consumer enjoys.
Recently, the rise of smart doorbells have offered the illusion of innovation in the field of doorbells for the Deaf. However, in addition to the fact that these doorbells cost over $200, an obvious oversight of these products is that they don’t even have a function for strobing lights! The Deaf must rely on tactile feedback from phone notifications to know who is at the door and, similar to the predicament discussed above, nobody has their phone at their side 24/7.
What we Need:
The ideal doorbell for the deaf has to be:
- Incorporate feedback through both vibrations and light
- Notify the Deaf no matter what room they are in
Here’s how I did it:
I set out to use my knowledge in technology to come up with a solution. After hours of scouring the web, brainstorming countless ideas, and analyzing the pros and cons of many setups, I created a system that meets all of our requirements, and it’s easier than you may think! Here’s what my home looks like after everything is set up!
Pretty awesome right?
What we Need:
- Raspberry Pi (with peripherals)($35–50) — A popular microcontroller that will be the “brain” of our setup.
- Amazon Dash Button ($5) — Originally debuted the day before April Fools Day and thought to be a joke, this neat little IoT button can serve as our doorbell. It’s a small, plastic button with a battery and a WiFi chip inside. It has enough juice for 2000 button presses and is sealed shut preventing damage moisture or rain.
- Smart Switches, Plugs, and Dimmers ($10–50 each) — These will be controlling the light switches and lamps of our home. Ideally, we want one of these devices per room so the more the merrier. I recommend the brand WeMo by Belkin as they are trustworthy, secure, and cost-effective.
Make sure your smart product has integration with a company known as IFTTT (If This Then That). To verify this, look for a variation of the following logo on the marketing material or product packaging:
As a nerd, all of these items were already at my disposal meaning that this setup was simply putting my resources to good use. However, for a new user, this setup may cost up to $200. No matter the case, this is still a better option than the ones listed above!
How Does this Work?
Here is a rundown of how this system works:
- Our Amazon Dash Button, once pressed, will connect to our home network in an attempt to purchase an item. Unfortunately for Amazon, we are not letting this happen!
- Our Raspberry Pi will constantly be probing for a Dash Button on our home network. When the Raspberry Pi recognizes that a Dash Button has attempted to connect to our home network, it will ping a website called IFTTT.
- IFTTT will handle all of the commands we need and our Smart Plugs, Switches, and Dimmers will blink. Furthermore, IFTTT will send a notification to our smartphone.
Now its time to get down to the nitty-gritty!
- To install Raspbian, the Operating System of our neat little micro-controller, visit the guide here. Alternatively, you can purchase a Raspberry Pi and a Micro SD card with Raspbian already installed.
- Follow manufacturer instructions to set up Smart Plugs and hook them up to lamps all around your home.
- Install Smart Dimmers and Switches using their respective instructions to ensure notification in rooms without lamps.
- Visit https://IFTTT.com and create an account
- Use the instructions provided by the manufacturer of your plug/dimmer/switch to link your smart device to your IFTTT account. For WeMo users, this feature is located in the “Connect to our Smart Home Partners” menu in the “More” tab of the mobile application.
- Download IFTTT on your smartphone and log in. Make sure to allow notifications! This application will be handling our notification requests!
- We want to set up our Dash Button, but we don’t want it purchasing anything (sorry Amazon!). Setup the Dash Button with the instructions provided by Amazon, but when you arrive at the splash screen to select a product, exit the setup — don’t select a product to be ordered.
Step 1: Setup our Raspberry Pi to detect our Dash Button’s ARP Probes
Background: Anything that connects to our home network must identify itself using a something known as an ARP Probe. This probe contains, among many other things, the device’s unique identifier: its MAC Address. Our router checks if this identifier is being used by any other device on the network. Once our router has finished with this check, it permits a connection to our home network. When we press our Dash Button, the device fires up its Wi-FI chip and sends an ARP probe. Our Raspberry Pi’s purpose is to sniff this probe and be able to tell exactly when our Dash Button is attempting to connect to our home network.
To sniff ARP Probes, we will use a Python library known as Scapy. Open a new Python 2 document on your Raspberry Pi and paste the following code:
Now run this neat little program! What you’ll see is a bunch of MAC Addresses pop up as they connect to your home network. They look a bit like this: 72:05:68:3f:79:40 except your numbers and letters will be completely different. Now, press your Dash Button. When it connects to the network, its MAC Address will pop up on your monitor screen. Press it again just to make sure. If the same MAC address pops up, we have now identified our Dash Button!
Copy your unique address, create a new Python file, and paste this code into it.
Test out this code. When your Dash Button is pressed now, instead of your MAC address appearing, you will see “Doorbell Rang” Cool right? The hard part is over now!
Step 2: Assign an action for when your Doorbell has been pressed
Background: IFTTT is awesome enough to handle the entire backend of our operation free of charge. We are going to set up a link on our IFTTT account that, when pinged, will execute a notification or blink our smart lights.
Setting up Webhooks:
- After logging into your IFTTT account, visit https://ifttt.com/services/maker_webhooks
Creating our Applet:
- Visit https://IFTTT.com/create
10. Repeat this process for your switches and dimmers if you have them. For additional applets, name the Webhooks event name in a predictable pattern. For example, I named them “dimmer_blink” and “switch_blink”
- Visit https://IFTTT.com/create to create another applet
- Click on “this” and click on “webhooks” once again
4. Create this trigger and then, click on “that”
Using our Webhooks:
- Remember that webpage I told you to save? Go back to that tab. If you accidentally exited it, rewind and follow the directions to get back to that page and then come back.
3. Now, press “Test it” while your lamps are manually set to the “ON” position (This means that if you were to plug in your lamp, it should turn on and you should not have to flip a switch or turn a knob). Your lights should now blink before your eyes. Repeat this process for your other applets and verify that they work. Now we’re done! Lets put this in our code!
Step 3: Put our Webhooks links in our Code
- Remember the link that you created above by typing “plug_blink” in the text box? Take that link, as well as your notification link, and put it in your code like so:
Furthermore, import the library “system” by entering line 1 of this code in your document
Run your program and press your Dash Button. Your lamps and switches should all blink and a notification should be sent to your phone in seconds! Isn’t that so satisfying?
With just a few lines of code, we’ve made a breakthrough in the stagnant industry of technology for the Deaf. Let me know what you think! Is there any more archaic technology we can tackle next?
With just a simple addition to our code, we can include doorbells that are specific to one room like the scenario shown below:
To do this, repeat the steps listed below to identify another Dash Button’s MAC Address and paste it in the new lines of code listed below. Now, your doorbell AND a room-specific doorbell can work at the same time. There are no limits on how many doorbells your home can have so go crazy!
While this device works well and reduces the possibility of malfunction through the use of a third-party service (IFTTT), it is admittedly inefficient. Just think about it: to get to our light switches, our home network pings a server thousands of miles away just so the request could turn around and come right back! This leaves room for error, and not to mention, it wastes time. Our doorbell takes, on average, 5 seconds to notify our smart technology whereas, if the process were done locally, the notification would be instantaneous. I was able to use the plugin uploaded here to control my smart lights locally and I will write an additional article in the future with steps on how I did it. Until then, our system works, and it works well! Thank you for reading!