Skip to main content

Featured Post

Product Design of a 4 wheel differential drive robot

Smart Room :-) | Wireless controlled appliances

If you are a geek, then you definitely want to mess with everything to create something cool out of it. What about controlling all of your appliances from your computer or from your smart phone wirelessly? Set timer for light when you go to sleep; autonomously switch your fan on when temperature exceeds; and when you are too lazy to get up from your bed to switch fan/light off. All you need is an ESP8266 with a couple of other components that cost <10$.

Kind of lazy to always go and switch OFF the lights/Fans especially when sleepy :-). So 3 days straight and it's done... 2 days is spend to understand and change the firmware of WiFi chip ESP 8266. (You can add an extra micro controller along with ESP 8266, but what's the fun in it? )

Made ESP 8266 ES01 chip to act as a TCP server and also to control the Relay circuit (Changed the firmware and programmed it). Control messages are interpreted and necessary signals are passed to the Relay circuit. AC to DC converter (from an old mobile charger) along with a regulator (LM2596 Module) was needed as the chip is 3.3V tolerant. Finally create a nice and tidy script (using Script Manager) in Mobile to control the appliances (Rooted the device.. Thumbs up..). Same script will works in a Linux/Windows Machine also. All the components can be found online (bought from Amazon).


This is a video showing control of appliances using a smart-phone. A desktop implementation is also done which is shown at the end of the blog. A cool conky widget is also a part of this desktop integration.

 

Initial setup of the ESP 8266 for downloading firmware

putting all hardware inside the switchboard

Edit: Now temperature readings are also taken using DS18B20 and are send through WiFi. (DS18B20 cannot be seen in th above picture because it is placed on closing side to get temperature readings of room rather inside the box). All the schematics along with code are uploaded in github. (link) The same source file are reproduced in the blog for clarity. Replace SSID, PASSWORD, IP, PORT in the scripts to suite your needs. Comment if you need any help.

Features:
  • Control the appliances with normal switch
  • Control the appliances wirelessly using smart phone
  • Control the appliances wirelessly using computer
  • Get temperature readings in both smart phone and computer
  • Set timer to switch your fan/light on/off
  • Automatic control of fan using temperature reading
  • A clean Linux conky-widget that shows the room temperature with graph
conky widget

--------------------
Schematics
--------------------

---------------
ESP8266
---------------

---------------------------------------------
Controlling using Mobile
---------------------------------------------

App required

an example script that switches the fan at 5.00 AM


---------------------------------------------------
Controlling using Computer
---------------------------------------------------

Create scripts shown below & move it in /usr/bin
  • lightON
  • lightOFF
  • fanON
  • fanOFF
  • temp

----------------------------
Conky-manager
----------------------------

To create a cool widget right on your desktop showing your room temperature with  a graph. The graph will plot you room temperature based on readings taken at every 3 minutes.

Install conky-manager using

sudo apt-get install conky-manager

Then save the script in

~/.conky/tempwidget/

Open conky-manager and load the script.

conky-manager widget






Comments

Popular posts from this blog

Plymouth theme for Ubuntu

Bored of having the same boot animation screen again and again? There are plenty of Plymouth themes available out there. This is a theme I created by slicing some cool gif files I found online. You can download the theme and find the installation steps on my github account. ( https://github.com/krishnan793/PlymouthTheme-Cat )  The theme is created for Ubuntu 16.04. But this can be installed on previous versions with slight modification. If you have a slow computer then you can watch the whole animation loops. (The VM I used to record the screen was fast though. :))

Remote access your BeagleBone Black using vnc

Before going into how to share desktop with your BBB I assume you have a proper ssh access to your BBB. (through USB) (if not read this ) Also this tutorial is for BBB with Debian installed (type cat /etc/*-release to know which distro you are currently using. Or refer here ) First install the vnc server in BBB.(After logging into BBB) ssh root@192.168.7.2 apt-get install x11vnc Then go to your local computer and open a terminal window. Install a vnc viewer like vinagre. sudo apt-get install vinagre Now its time to start vnc server in BBB. x11vnc -auth /var/run/lightdm/root/:0 -forever This will start a vnc server at port 5900. Note this server setup is temporary. If you want to remotely connect to your BBB after a reboot type the above command again. Go to your local computer and type  vinagre 192.168.7.2::5900 A remote desktop will be shown if all goes well. Try exploring other options in x11vnc using (in BBB) man x11vnc The se

Product Design of a 4 wheel differential drive robot

I have been thinking of creating a small mobile robot from scratch. From scratch means, go through all the steps of a product development. Design the overall architecture, design the circuits, make 3D model of the parts, 3D print the parts and finally integrate with ROS. The methods I followed may not be the best practice. The only aim is to reach from idea to actual product (prototype). Features: 4 Wheel Differential Drive Camera WiFi IMU GPS(optional) Overview A 4 wheeled differential mobile robot with wheel encoders, camera, WiFi, IMU and GPS(optional). The first thing I did was to come up with an overall architecture. Raspberry pi 3 will be the heart of the robot. Pi Zero was considered in the beginning, but eventually had to  change because of the lack of support for ROS. Even though able to compile ROS from scratch, it became so hard to compile other packages needed for the project. Since I do not want to use pi to directly control motors, I had to design a