I’ve created this webpage as reference information for my presentation at the 2018 Maker Faire.
Our home alarm system is 24+ years old and has mostly worked flawlessly for all that time except for one issue. The make and model of alarm system that I have has a known fault which can occur on rare occasions. This fault turns on the alarm siren even though there is actually no intrusion detected. It is very loud! This only happens when the system is armed and fortunately it does not report the alarm to the monitoring company because in that case the police are usually at the door within minutes.
The one time the siren went off it was at night and it was a confusing and somewhat terrifying experience as I didn’t know about the potential alarm system fault at the time. I am usually a pretty light sleeper so we elected to leave the alarm system unarmed after that when we are in the house.
Every once in a while I hear something at night and then lay there listening intently for a while before eventually falling back to sleep. It happens rarely and it is usually the wind that made the noise or maybe the rain beating down on the skylight so I’ve always concluded that I didn’t need to do anything about it. Plus even when the alarm was armed I used to wake up if I heard something so there is no fixing that anyway.
Finally one of those nights fairly recently when I was lying there listening intently a solution suddenly came to me. With my alarm system connected to my home network and my lighting control system connected as well I could make something for the bedside that would give me everything that I wanted. I don’t remember if I went back to sleep that night or not but in any case I did remember my idea and a new project was born!
The heart of this project is the Wemos Lolin32 OLED board which is available from Banggood and others. Here is the Banggood link and that is where I had already purchased a few of them for experimenting: Wemos on Banggood.
This board is based on the latest and greatest Espressif ESP32 processing technology with WIFI and Bluetooth connectivity along with a 128x64 pixel OLED display and for a price of around $15 CAD shipped!
What I originally wanted to do was simply see when one of the alarm sensors reported something and to know how long ago that occurred. But once I started on the project the scope of it expanded a bit and I added the capability to turn on selected lights in the house. For that feature I decided to use a tilt sensor so when the small case that holds the board is pushed over the lights come on. This prevents having to fumble for a switch or something during what will likely be a moment of panic!
Here is a block diagram of the system.
Below is a picture of the 3D printed case and tilt sensor held in place with hot glue. There is not much to the electronics for this project!
Below are some still pictures of the monitor initializing and then showing an alarm. When nothing is happening it displays a rotating line character to show in an unobtrusive manner that it is operating. Once a alarm condition is detected it shows the source of the alarm and starts to count the elapsed time in seconds. The monitor is powered by a USB backup battery that lasts for about 4 nights. Being battery powered allows the system to operate during a power failure since the servers and alarm system are battery backed as well.
I used the ESP32 Arduino environment under Platform.IO to write the code. It is pretty much trivial but I am happy to share if there is any interest (contact page).
Future enhancements include showing a sequence of alarm conditions if there are any such as GarageDoor -> EntranceMotion -> FamilyRoomMotion and putting in an optionally enabled beeper just in case I were to sleep more soundly than normal!