Introduction: Control Room Temperature Over WiFi
Hey everyone! In this instructable, I will show you how to make a device that can control the temperature of a room, through the internet. This is useful for times when it is cold outside and you are at work or school, wanting to get home to a warm room. Where I live, it doesn't really get cold outside, but hey, I've been wanting to try a project like this for a while.
The Arduino code could use some work, for example, it only has a few presets, instead of having a text box, so you can't get an exact temperature. Feel free to edit the code in any way.
Step 1: Parts and Tools
Linkit ONE board with micro USB cable
Mini Servo (Preferably with metal gears)
Double-Sided Foam tape
Hot Glue gun and hot glue
3D Printer and filament (If you don't have access to one, try 3dhubs.com)
Step 2: Install Linkit One Drivers
The Mediatek Linkit One is a powerful microcontroller, but getting it set up isn't quite as easy as as an arduino. Here are the steps to get it set up.
1. Download latest Arduino IDE: https://www.arduino.cc/en/Main/Software
2. Install Arduino IDE, open preferences, find additional boards manager and paste: http://download.labs.mediatek.com/package_mtk_link... into the text box.
3. Go to Tools --> Board --> Board Manager. Scroll down until you see "Mediatek Linkit One" and click it, then you should see an install button, click it.
4. Download USB drivers from: https://labs.mediatek.com/site/global/developer_to... , Unzip the file, and open the "Drivers" folder and double click the .mpkg file to open it. This will take you through a setup wizard, just accept the terms and conditions and press continue whenever you can.
Step 3: 3D Print Parts
3D Print this .STL file:
Step 4: Upload Sketch to Linkit ONE
Download this file, then double click to open it in the Arduino IDE. Go to tools --> Board and make sure that Linkit ONE is selected.
You will have to edit the code slightly, Near the top of the code, you should see a line that says: #define WIFI_AP "Your Network" and on the next: #define WIFI_PASSWORD "Your Password" change theparts in the brackets to your wifi network name, and on the second one, your password to the network.
Now, press the upload button.
Step 5: Wiring
Using jumper cables, wire the ground pin of the servo cable to a ground (brown) pin on the Linkit ONE board, then the servo's positive (red) wire to the 5v pin on the board. Now, wire the servo's signal (orange) wire to pin 9 on the board.
For the internet connection, you will need to use the WiFi antenna included in the box. To attach the antenna, you will need to turn over the linkit ONE board and plug it into the middle uFL connector.
Step 6: Assemble 3D Printed Parts
This step isn't as elegant as I wish it was, but you will need hot glue. Start by taking the main large 3D printed piece, and glue the servo onto it, making sure that when doing so, the servo horn mount is in the centre. Next, Take the (kind of) circular piece, and glue the servo horn onto it, using the indent in the part as a guide. Now, mount the servo horn onto the servo by press fitting it on. You don't need to worry if the servo is in it's centre position yet.
Step 7: Mount Servo Assembly Onto Room Thermostat
Make sure the servo is in its counter-clockwise max, then put double sided foam tape onto the centre of the thermostat knob. Then use hot glue to mount the main servo mount onto the sides of the room thermostat (I don't know what else to call them). Make sure that the circular servo piece is in the middle of the thermostat knob.
Step 8: Test...
To test the project, open the serial monitor in the Arduino IDE, copy the IP address that is displayed and paste it into a web browser. Keep the serial monitor open while in use. Once the webpage is open, you should see several buttons. To use the device, click a button, then press "Do It!". The servo should move a certain amount of degrees, which you may have to change the amount of degrees that it turns, depending on the type of room thermostat that you have.
We have a be nice policy.
Please be positive and constructive.