As a kid, Daniel was inspired by a neighbor who was ahead of his time. “One of the very first inventions that impressed me was his toilet. He had the toilet flush electronically with a little push button similar to a door bell, » Daniel said. « He also had a rudimentary, yet sophisticated system of pulleys, ropes, and weights that let you open and shut the house gates without leaving the car—just by pulling down on a hanging rope.”
Daniel’s first opportunity to tinker with the internet of things (IoT) came after purchasing his first home with his partner. The house came with one garage door opener, and after just a week, his partner lost it.
“Not very keen to spend the money on a new set of openers, I decided to look into the garage door circuit and found out that it had an input connection for a push button that would open and close the garage door,” he said. “I thought I could use this as a starting point. From there, I realized that I could just add a relay to the port, and by connecting to an Arduino board, I could have it on WiFi and control the door with my mobile phone.”
In fact, Daniel first joined the Windows Insider Program to be able to get the latest in Windows IoT. “By doing so, I was always able to obtain firsthand the new improvements and features released, » he said. « Also, having the power to provide feedback and being heard is amazing. I believe this helps Microsoft get a feeling about what people are working on and how to improve the OS to assist people with their goals.”
Daniel’s first prototype for his smart garage door worked great, but one aspect continued to annoy him. When getting home from commuting to work on a motorcycle, he’d have to take his gloves off, find his phone in his backpack, wait for the app to open, and finally open the door each day.
“It was not great fun on raining days,” he said. “So, I decided to upgrade the module to a Raspberry Pi, which allowed me to improve the application and include voice recognition. This time now, when approaching my home, I could easily from my helmet Bluetooth activate the garage door. Happy days!”
That was just the beginning for Daniel.
More home automation projects
Daniel installed mics around the house that let him and his partner turn all the house lights off by shouting “Good night.” What about dimming the dining room lights? Just say, “romantic dinner.”
“I had been given an outdoor rotisserie-type BBQ from my father-in-law, and after a few months of use, I managed to burn the power supply that makes the engine rotate the spits, » he said. « Instead of buying a new one, I decided to replace the module that makes the motor run with an Arduino board and used the output pins to generate a Pulse With Modulation (PWM), which would allow for control of the speed of the rotation.”
“To ‘beef-it up,’ I also added a touch screen that allows us to graphically check the temperature, as well as control the exhaust fan and lights along with the rotation, » he said. « Barney, my dog, was honored when we baptized this project with his name. Some improvements are yet to come, such as connecting to a WiFi module, so this can be also be operated by mobile, in addition to voice commands.”
Touchscreen for the home
“Inside the house, I mounted a 7′ LCD screen on the wall, which would allow us to control the items at home without using the mobile. It all started with a small web app with a not so great interface, which slowly got new functionalities, such as the forecast,” he said.
“Once I started to learn more about the .NET SignalR, the design improved with responsive buttons, so the icon would be updated even if lights were switched on and off from the mobile app or using the wall switch itself,” he said.
But Daniel didn’t stop there. “Further improvements included an interface to select audio streams, such as YouTube and Spotify API’s. So now, either using voice commands or the touch screen, we can also listen to music around the house via the ceiling speakers. It is still far away from complete, but each feature I add in keeps getting it closer to what Tony Stark had.”
For Daniel, implementing voice commands is one of the most exciting aspects of his adventures in creating his own smart home. “As a developer, most of the time I only get so see pieces of code and unit tests. Being able to control real devices with home automation feels like bringing lines of code to life,” Daniel said.
Most challenging so far, “but also great fun,” has been figuring out how to automate light switches. “Basically, I purchased the cheapest smart light switches I could find on eBay, which not surprisingly came with a not so great application with limited operations,” he said.
“To figure out how the vendor’s application controlled them, I used a network package capturing tool on my LAN, intercepting the communications between the app and the light switches, » he said. « I was then able to identify the message format used to control the lights. Just a few lines of code later, I was able to send the same message using my own application, which then opened a door for limitless possibilities.”
Looking to the future
What’s next on the IoT front for Daniel? He’s curious about what he can do in his car to give it remote access to features like lights, windows, and the horn. He also thinks it would be exciting to add real-time tracking or a bump sensor that would alert him if someone hits it.
For anyone with an interest in getting started with IoT, Daniel says there are many resources online with tutorials for all levels. “One place I found very interesting as a source of inspiration is hackster.io, where people are kind enough to share their hardware list and app source, so you can easily modify a project to suit your needs,” he said. “Likewise, forums such as the Windows IOT MSDN forum is a great source of knowledge with very helpful people,” he said.
“The best project to start with, in my opinion, would be something that would allow you to resolve some problem that you encounter on a daily basis, that could be sorted with some sort of automation, » he said. « This would keep you focused on finishing the project, and along the way, every single improvement or feature addition will be very rewarding.”