Here I am with another IoT-based home automation project; Arduino IoT Fan Control.
Every day, I get back from work tired and feeling hot. No air conditioner here and the fan takes much time to start cooling the room, sadly!
So, I was thinking why not controlling the fan from outside my home with my smartphone so I can tell it to turn the fan on once I am ready to leave my office! That would make the room cooler, indeed. And that’s why I have made this tutorial.
Of course, the landing image shows only a small USB fan, not a real big one. But it’s the same concept here, just used a small one for an easier demonstration.
In a previous Arduino Light Control tutorial, I have gone through controlling a lamp through my smartphone by connecting it to an MQTT broker “server”. That was the first IoT tutorial using IoT Shield from 1Sheel. Today, I am going to go through my second IoT real-world project. It’s about connecting the fan to an MQTT broker, so I can control its speed anywhere using my smartphone.
The idea behind the IoT Fan Control is as follows:
Once the phone – the first device – is connected to the broker and the Arduino – the second device – is connected to the broker too, you can start publishing messages from the phone like “2” and “3” on the topic that the Arduino is subscribing on. These messages are just the speed level of the fan since you can send “1” for the lowest fan speed, “4” for the maximum fan speed or even “0” to turn the fan off.
In the Arduino code, I will compare these received messages and then I can easily generate PWM signal to the fan pin with a value between 0 and 255 according to the received message. For example:
when received “0” from the broker, you generate a PWM with the value of “0”.
“1”, generates a PWM with the value of “100” which is the lowest speed.
“2”, generates a PWM with the value of “150”. And so on … Just this simple!
Since the broker is online, then you need to connect the Arduino to the Internet, then connect it to the broker.
But Arduino alone can’t do that, so I will use the IoT Shield from 1Sheeld+ board that will be plugged into the Arduino and connect it to the online MQTT broker.
Also, you will need an iPhone “since IoT Shield works with iOS only” to be connected to the 1Sheeld via Bluetooth. And another one “iPhone or Android” that will act as the controller device where you will use it to publish messages through an IoT app.
You will find all the software and Apps required for this tutorial linked in the software components section.
If this is your first time to deal with 1Sheeld or you want to learn more about it, then I recommend checking this quick and easy getting started tutorial.
Furthermore, if this your first time reading about MQTT broker, then I recommend you go through this MQTT before going into this tutorial.
Now, after you’ve become a little bit familiar with 1Sheeld and MQTT broker, let’s start!
Step 1: Hardware components:
Arduino USB cable.
NPN BC547 transistor.
USB 5v fan.
Male-to-male jumper wires.
iOS phone with 1Sheeld App installed on it.
Android/iOS phone with the IoT MQTT Panel Pro installed on it.
Connect the fan “just a motor” with the Arduino as illustrated below:
Switch the 1Sheeld power to operate on 5v (Not the 3.3v):
1Sheeld have 2 modes: Uploading mode and Operating mode. You can switch between them using the switch close to the Digital pins and is called “UART SWITCH” on 1Sheeld and “SERIAL SWITCH” on 1Sheeld+.
Firstly, you slide the switch towards the “SWITCH” notation which turns the 1Sheeld board into the Uploading mode to let you upload the Arduino code.
Then, after you finish uploading the code, slide the switch towards the “UART” notation (or “SERIAL” at 1Sheeld+ board) which turns the 1Sheeld board into the Operating mode to communicate with your smartphone 1Sheeld App.
Finally, connect the Arduino via your PC using Arduino USB cable.
Step 4: Code:
I would recommend checking the Arduino IoT Shield documentation to know more about the Arduino IoT Shield functionalities and how to use them.
Arduino keeps standing out from the crowd of all-around development boards due too its ease of use and budget price. As a result, this has enabled almost anyone to get his own idea into life no matter how crazy or even useless to the whole world it was, except for its maker! Also, it has …
Arduino robots are always funny and definitely more enjoyable when combined with robotic arm! And today, I will walk you through the making of a simple Arduino Robot Arm that’s made of cardboard and how you can attach it over your Arduino Bluetooth RC Car / Robot that you have made so far through this series. …
Arduino Line Following Robot is one of the easiest and most well-known projects that anyone can make to learn the basics of programming, electronics, and mechanics all in one project. It’s known that this project is common for most of the makers and tech students and today I am going to give it a revisit …
Back again with another Arduino Bluetooth RC Car tutorial but with an advanced feature that makes your car autonomous by adding ultrasonic sensors to the RC Car you have made before!. Yeah, I know that you may have seen other tutorials using ultrasonic to make the car/robot avoid obstacles ahead, but I am going to …
Cardboard crafts are one of the most popular and easy to make DIY stuff. Mixing this with the unmatchable enjoyment of RC Cars and the ease of using Arduino, I am going to show you how to make a Cardboard Arduino Bluetooth RC car that you can control via Bluetooth from your smartphone. …
Arduino Security Camera Have you ever wanted to check your home in real time? Afraid that maybe someone has stormed in, don’t remember if you shut the door or not or maybe wanna check if your Hyper-energetic dog has broken any of your dishes AGAIN!! 🙂 Then this is the perfect place for you cause today …