Algunos de nosotros tenemos este deseo innato de hacer cosas por nuestra cuenta y disfrutamos el desafío de aprender algo nuevo. Si eso suena como usted, entonces probablemente disfrutará de subir de nivel el estilo de bricolaje de su hogar inteligente con un Arduino.
¿Necesita ponerse al día sobre lo que es un Arduino? Consulte nuestra guía para principiantes de Arduino y todo lo que necesita para comenzar con los proyectos de Arduino.
Por qué usar Arduino para proyectos de hogar inteligente
Hacer casas inteligentes a la manera de Arduino es divertido. No hay nada como ver los frutos de tu trabajo moverse y hacer algo como te lo propones.
Fuente de la imagen: Wikipedia
Pero hay más que diversión. Hay mucho que decir acerca de hacer cosas por su cuenta con un Arduino, especialmente algo que parece tan complejo como un sistema doméstico inteligente. Aquí hay cuatro razones para apoyar el argumento:
1. Ahorre un poco más de dinero
Si bien no le ahorrará una fortuna, las placas Arduino son mucho más baratas que un Google Nest Hub, siempre que esté dispuesto a renunciar a algunas otras funciones.
A $ 55, el Google Nest Hub de segunda generación ocupa más de la mitad del presupuesto para el equipo de bricolaje. Si desea construir algo usted mismo por menos, puede obtener un Arduino Nano RP2040 Connect con la potencia de procesamiento y las capacidades inalámbricas de un Raspberry Pi. Solo sepa que no obtendrá un altavoz, un micrófono y una pantalla táctil.
2. Mantenga más control
While there are issues with Google and Amazon and their respect for your data privacy, Arduino doesn’t bother using your data for anything.
Rest assured you won’t see any hidden apps or programs sending your data to advertising companies. There are no hidden loopholes behind a user agreement. There won’t even be any advertising. You’re making your smart home on your own. That’s total control in your hands.
3. Get More Variety
Remember that an Arduino is a tiny computer with a chip for a brain and a lot of metal bits for “sensing” things.
What I’m getting at is that you could make your own sensors and attach them to an Arduino. You could also use some specialized sensors, some of which could be scrapped parts from old stuff, and give them new life in a smart home ecosystem.
4. Combined Services
Who says you have to be stuck with one wallet-sized board?
As long as you have the right parts, you can make the Arduino connect to almost anything that can compute. Smart home on a Wi-Fi network? Check. Using Zigbee for your automatic lights? No problem, there’s the XBee shield. Real-time data to a cloud server? Ethernet shield to go!
Combine that with all the exotic sensors you may end up using, and you can have a fully DIY, super high-tech smart home with your name on it.
How to Use Arduino in a Smart Home Setting
How can you fit an Arduino board into a smart home’s network infrastructure? Three ways are listed below:
1. Wireless Hub
The most obvious of all these methods is using the Arduino as a hub to wirelessly connect and interact with your smart home devices.
Wireless Arduino hubs use Arduino shields that give their boards the ability to emit and listen to radio frequencies. An example of this is the SparkFun XBee Shield that works with XBee and Zigbee modules up to 100 feet away.
Image source: Wikimedia Commons
There are also other boards that host wireless capabilities without needing extra shields. Boards such as the Uno WiFi Rev 2 and Nano 33 IoT can use both Wi-Fi and Bluetooth Low Energy (BLE) to communicate with other devices on a wireless network.
In fact, you could do away with other commercial IoT hubs, like Wyze, Google Home, and Amazon Echo, as long as you have the right parts.
Have an Amazon smart display? Here’s how you can turn it into a digital photo frame.
2. Data Logger
The Arduino can also be used to log data about its surroundings on a memory card or some other storage device. This lets you do analyses on different variables: temperature, light levels, the number of times you used the coffee maker – practically anything connected to the Arduino.
Image source: Wikimedia Commons
With this information, you can get a better idea of how to improve your home. Your smart hub can also use this information directly, saving memory for other tasks by leaving all the sensor-related computations to your Arduino board.
The most straightforward way to do this is by adding a memory card module on the Arduino to give your Arduino direct access to your memory card. Another way is through serial communication – you can send information to a computer or another device that can store it someplace else (like in a cloud service).
3. As a Smart Controller for Non-Smart Devices
Let’s get a bit philosophical with smart devices. The only thing that makes them any different from “dumb” devices is that they can connect to a network. Almost every smart device you’ll ever own has a way with wireless communications – even a state-of-the-art programmable toaster can’t be as “smart” as a simple light switch that’s connected to a smart system.
What does this mean for our jumper wires and Arduino boards? You can turn a non-smart appliance smart by giving it wireless capabilities.
WiFi modules nRF2L01+ (left) and ESP-01 (right) allow the Arduino to connect to Wi-Fi networks.
Normally, you would start by connecting your non-smart appliances to an Arduino board. This can be done through relay modules and turning your Arduino into an electronic switch. Then, by using a board with wireless capabilities (like UNO WiFi Rev2 or RP-2040 Connect) or adding transceiver modules (like ESP-01 or XBee Shield), you can connect your “dumb” appliances to a smart hub and automate them from there.
Looking for a new smart thermostat for your home? This guide will help you choose the right model.
Make Your Smart Home Even Smarter With Arduino
Here’s a more detailed look at how smart homes can put your Arduino board to good use.
Internet of Things (IoT) Architecture
IoT architecture refers to the method you’re using to connect your smart devices all around the house. Most styles you’ll probably think of are centralized, meaning you’re using one central hub that listens to other things.
For the Arduino, you should be clear about its role in the architecture. Will it be gathering data? Is it going to store that data somewhere? Are you going to add the Arduino to a wireless or wired infrastructure? How many devices will it control?
One example is an Arduino-controlled smart bedroom that turns on the lights and opens the window blinds at 6AM every morning before it blares an alarm.
You could also use a relay module to act as a switch that would turn on a light bulb. If it could divert power to a Raspberry Pi too, then it should turn on and activate a preprogrammed script that rolls the blinds with a DC motor and plays a song on a piezo speaker.
It could also use a clock module to note the time without checking the Internet. This module and the Arduino could fit inside a box, along with some batteries connected to a solar panel, to have a low-power system that saves more energy than any other mains-connected smart hub ever could.
That is an example of a centralized IoT architecture using an Arduino as a central hub. But then, you might notice, most of the things I mentioned were “dumb” devices. They don’t have sensors, nor can you control them through your smartphone. There’s not even a cloud to connect to. Or is there?
Arduino-Based Networking
Arduino-based networking is not an official term, but it might as well be. Your little Arduino is capable of great things, and one of them is exchanging information with other devices.
In general, you have two ways to connect your Arduino to a network: wired and wireless. You could use shields and modules to give your Arduino wired connection ports that it didn’t come with straight from the factory. These ports include HDMI, Ethernet, GSM, and more. The same can be said for wireless connections, giving you Bluetooth, WiFi, and NFC, among others.
But given the nature of most beginner Arduino projects, another thing you should look at is having the Arduino connected directly to other devices. You could opt for a rather decentralized approach by having each unit connected to whatever they need to be connected to. That’s simpler to build but can get pretty messy once you get to about six or seven devices.
Webhooks
Although it’s a rather complex topic, we can summarize webhooks as a way to make your Arduino send information to a web server.
Webhooks use the HTTP protocol to send messages to servers waiting for these messages. With an Arduino, you can make it send your own kind of webhook messages on a server. Webhook-capable automation services like Zapier or IFTTT could listen for these messages, which would trigger automatic responses each time a sensor notices something.
Displays
While this one can be optional, it’s always good to have access to your home’s environmental data through a display. You could use various kinds, such as 16×2 LCDs, TFT monitors, OLED, or even an old Nokia 5110 LCD!
For the most part, you just need to wire these to the Arduino and be on with your code. But you’d sometimes end up with two problems here:
- It’s easy to run out of I/O pins because these things use many.
- The Arduino can’t drive laptop-sized LCD displays on its own.
These problems are not without solutions, though. You can reduce the wires directly connected to your Arduino board by using I2C and shift registers. There are driver modules that you could tweak to use here as well.
Tip: did you know you can program an Ardruino with Raspberry Pi? Learn how to do it by following this guide.
Example Project: Turn Lights on Every Twelve Hours
Given all that, let’s do a little demonstration with an example. This quick project lets you turn your lights on and off every twelve hours with just a few materials:
- Jumper wires
- Relay
- Light bulb
- Light bulb socket
- Copper wires (12 AWG should do, preferably stranded)
- Electric plug
- A phone adapter
We talked about using a relay module to light up a light bulb before. This example is quite similar – we’re just going to make it light up every 12 hours.
1. Input the Code
Copy the code in the box below and paste it into the Arduino IDE.
const int relayPin = 7; void setup() { pinMode(relayPin, OUTPUT); } void loop() { digitalWrite(relayPin, LOW); delay(43200000); digialWrite(relayPin, HIGH); delay(43200000); }
This code is almost the same as what we used in our relay module and Arduino post, except for the timing. Here, we used delay(43200000)
to pause between HIGH
and LOW
states for 12 hours each. The number in the delay is in microseconds. The pin states are also reversed here: it starts at LOW
, then moves to HIGH
after 12 hours.
2. Build the Circuit
Start by working on the light bulb socket. Connect one side to the relay’s GND using the 12 AWG copper cable. The other side of the light bulb socket should be connected to one wire from the electric plug. Then connect the other wire from the electric plug to the relay’s NC terminal.
Finally, connect the smaller pins to the Arduino using jumper pins. GND should go to GND, 5V to 5V, and Signal to pin 7.
3. Connect to Mains
Connect the Arduino to mains using a phone adapter. Starting from the moment you plugged it ib, it will keep counting in microseconds until it reaches 12 hours. That should flip the relay module’s state from off to on.
Next, connect the electric plug to mains. If the light bulb powers on immediately, that means you connected the light bulb socket to NO instead of NC. You can switch it up after disconnecting everything from the mains socket.
Looking for Inspiration?
With the Arduino, creativity and inspiration are your greatest tools. Take a look at the following Arduino smart home projects made by tinkerers all over the globe:
- Smart Thermostat: this smart thermostat project uses an Arduino Nano R3, DS18B20 Programmable Thermometer, and an HC-05 Bluetooth Master/Slave Module to sense the temperature in the room and command the AC to pick up the pace with the cooling on a hot summer’s day.
- Remote Control Light Switch: have a 3D printer? This remote control light switch uses a pair of RF transceivers on a pair of Arduino Unos to flip a physical light switch. It’s wireless, low-power, and doesn’t clog up your Wi-Fi router. Having 3D printing skills is important for this one.
- DIY Weather Station With ESP32: while the ESP32 isn’t an “Arduino,” it’s compatible, and you could think of it as an even better version of an Arduino board. This ESP32-based weather station gathers temperature, wind speed, wind direction, and rainfall metrics, then sends it to the Home Assistant mobile app for easy viewing.
Frequently Asked Questions
Can an Arduino run an OS?
Arduino boards, unlike Raspberry Pis, are very simple pieces of hardware that can’t run an OS because of a lack of memory. While there are projects that try to run OS simulations on an Arduino like MCUOS, there’s just not enough RAM in there to run even an older OS like MS-DOS.
Why do I experience lag with my wireless smart devices?
There can be many reasons: from network overcrowding due to too many smart devices in a home network to your smart devices being naturally slow products. There is also an inherent “lagginess” when it comes to anything wireless.
Is it a good idea to use my Android phone as a smart hub?
Si bien es ciertamente posible, es probable que esto no funcione muy bien. Una vez que salga de su casa con su teléfono en el bolsillo, sus dispositivos inteligentes no funcionarán automáticamente hasta que regrese. Pero esto no será un problema si todos sus dispositivos inteligentes se comunican entre sí a través de Internet, siempre que su teléfono tenga datos móviles.
Todas las imágenes originales de Terenz Jomar Dela Cruz.
Danos tu opinión