In the age of mobile phones, you would expect that people would be responsive to your call 24/7.
Or… not. Once my wife gets home, the phone stays buried in her hand bag, or its battery is flat. We don’t have a land line. Calling or SMSing to ask for a lift home from the train station on a rainy night or calling to ask if my keys are still on my desk is literally wishful thinking.
I have this problem often enough to warrant a solution. A bit of tinkering with an Arduino and a Freetronics Dot Matrix Display (DMD) resulted to a very annoying (for my wife) gadget, but an amazing communication device and information center for me. I love it, and it’s only version 1!
Home Alert is made of these parts:
Have a look at the home page (show in the first attached image in this step), where the form awaits a new message from the user.
The first field accepts a numerical hardware code. It’s a code that allows you to target a specific Home Alert system, as each can be given a unique code. Or, you can have multiple Home Alerts sharing the same code, so that the same message is displayed to multiple locations.
The message you want to display goes to the second field. Any text you type in there will be displayed in the DMD.
If you want to make some noise, check the Yes! checkbox, and the buzzer is sure to gain the attention of anyone nearby.
In this article, I’ll show you how to build your own Home Alert system, both Arduino hardware and software, as well as the Sinatra mini web application.
Let’s get started!
The DMD is the focal point of the gadget. I could have gone with a small LCD screen, but the main idea for this project was to produce something that can be seen and heard from a distance. For the visual part, I needed something big and bright, and this Freetronics display is exactly what I needed. Each panel contains an array of 16x32 LEDs, and you can stick several of these together to create much larger displays. This is something I’d like to do in the near future.
The DMD comes with an easy to use Arduino library. it communicates with the Arduino via high-speed SPI. I was able to get the library from the Freetronics Github page, then fire up the demo sketch and get it working within minutes of opening the box. I was surprised to see such a bright display using only power from the Arduino. If you want to temporarily blind your viewers, you can attach a dedicated power supply to this DMD. If this doesn’t get their attention, nothing will!
Physically, this display measures 320mm (W), 160mm (H) and 14mm (D).
The back panel contains the connectors for the external power, 5V with at least 4Amps capacity, the Arduino connector marked HUB1, and the connector for daisy-chaining additional displays on the opposite side. According to the documentation, you can daisy-chain up to four DMDs.
The DMD is controlled by an Arduino Uno. Freetronics provides a very convenient “DMDCON” connector that just snaps directly onto the correct SPI and data pins.
Other than the DMD, I used an Arduino Uno, an Ethernet Shield, a real-time clock breakout, a buzzer, and a DHT22. For all of these components, I have created lectures describing their operation in my Udemy course. (Shameless self-promotion: sign up to my email list at arduinosbs.com and receive a coupon that give you discounted access to all 55 lectures).
The real-time clock, a breakout based on the DS18072 clock IC, is an I2C device so it is connected to the Uno’s analog pins 1 and 2, which implement the I2C bus.
The buzzer is connected to digital pin 3, from where I control it using the tone() function.
The DHT22 sensor is connected to digital pin 2. Be careful to connect the 10KΩ pull-up resistor between the 5V line and the data line.