I stumbled across José Ramón Hoz Torre‘s excited announcement on LinkedIn that he’d just completed an MSc in the Internet of Things — congrats, José! — and the subject of his thesis caught my eye. José had developed a smart home prototype using an Arduino MEGA and a Raspberry Pi 4.
The project aimed to explore the capabilities of popular IoT platforms and their potential to create intelligent and automated home environments. It is open source and available on GitHub for your perusal and/or adoption.
José explained that the inspiration for his thesis subject came from growing up in a rural region and struggling with a lack of high-speed internet and other basic technological infrastructure. He hoped that introducing smart home devices to these areas would help spur investment in improving all types of infrastructure and stop the high rate of depopulation, maybe even encouraging more people to move to this beautiful, if rather isolated, area. Additionally, with an aging population, there is a growing need for remote healthcare and monitoring: another focus of José’s thesis was to create a system that can help elderly people and their relatives stay connected across rural areas to support their safety and well-being.
How does it work?
At the core of this smart home prototype are two boards: an Arduino Mega 2560 Rev3 and a Raspberry Pi 4. The Arduino is a microcontroller board with 54 digital I/O pins, which come in handy given the number of peripherals it powers. We all know who Raspberry Pi 4 is, and José emphasises that you don’t need an 8GB to make this prototype work; it just happened to be what he had to hand. This section of the project’s GitHub repo runs through all the extra little bits of hardware, but the image below will save you the click.
Arduino and Raspberry Pi talk to each other over Bluetooth. The Arduino board is connected to various sensors around the house, as well as to output devices like LEDs, speakers, and screens. Raspberry Pi runs the software that makes the sensors collect the right data, and the speakers and displays play or show the right things. It also tells users what’s going on via an Android app.
- Arduino IDE for programming
- Android Studio Arctic Fox, a useful toolkit for building user interfaces
The smart home app
José’s setup includes gas, movement, humidity, and temperature sensors, as well as a RFID reader, an OLED screen, and the obligatory handful of LEDs. The app lets you keep an eye on it all.
Through the app, you can control your house alarm and window alarms, and see how many people have come near the property recently. You can also monitor environmental factors like air quality. I couldn’t figure out from the GitHub repository exactly how the smart home prototype is able to detect how full your bins are, but it is my favourite part. How can you text your kids or partner to complain that they forgot to take the bins out, unless you have cold, hard evidence like this? Yet another problem solved by José’s creation.