Remotely monitor and control appliances from anywhere!

Similar projects worth following
In a nutshell it's what it says on the title. My goal is to quickly and easily remotely control appliances and monitor environmental conditions in my house and any other building that I own. The finished project will use a microcontroller for interacting with the physical world.

With the help of PHP, I've created a web interface for control.

  • 1 × Atmega 1284p current microcontroller being used to interact with the physical world (mcu will likely change)
  • 1 × CH340G Cheap USB-Serial for connecting the microcontroller to the host computer
  • 1 × DS1631+ I2C temperature sensor
  • 1 × Raspberry Pi Cheap host computer
  • 1 × Photoresistor For taking light readings

View all 7 components

  • A rework in the works

    mcu_nerd02/04/2017 at 18:35 0 comments

    I'm once again working on the project doing some cleanup and changing things around a bit. Currently, I'm now programming the esp8266 directly instead of using the MSP430. Another thing that I'm working on is providing proper documentation on how to get everything configured and working. I will likely switch from the Atmega 1284p to something more mainstream such as a 328p.

    I will most likely create a new project page, and will post the link hear when it's up.

  • Getting back to work

    mcu_nerd07/14/2016 at 20:41 0 comments

    I've been busy but starting last weekend, I'm one again working on the project. I've been cleaning up some things and adding a new key feature: temperature logging. The latest version is located in the fifthgen folder in the GitHub repo.

    How the temperature logging feature currently works:

    On the sensors page, there is a form for temperature logging. It allows the user to set the interval of samples, how many samples to take, and the desired filename. After various validation checks and making sure that a temperature log recording is not already in process, a php file is run as a background process that writes the temperature data to a .csv file along with the time of the sample. The user can get access to all of the log files by clicking "get logs" which spits out the links to all of the log files present. All log files can easily be deleted via the "delete logs button". The log recording process can be killed and checked with a press of a button.

    This new feature is still very much a work in progress, and I have yet to check its robustness when it comes to things such as turning on an led while it takes a temperature reading for the log.

    Screenshot of updated page:

    I imported a log file into Excel and graphed the ~24 hour readings for my room. You can tell when the A/C cycles.

  • On the road again :)

    mcu_nerd02/10/2016 at 16:08 0 comments

    It's been a while since I've last worked on the project, been busy with other things including another project (a target board for the attiny85 which I shall post soon.) I've updated the web side of things a bit.

    If you have any suggestions/comments/constructive critizism, please do let me know in the comments below.

  • More playing around with a mcu connected to an ESP8266

    mcu_nerd11/04/2015 at 16:33 0 comments

    Yes, I'm still here! I've figured out my own way to do bi-directional communication (sort of) between my MSP430G2553 connected to an ESP8266 and my web server. The MSP430 sending temp data to my web server is nice, but I wanted to come up with a way to send commands back to the MSP430 without having to dump the default AT firmware on the ESP8266.

    Here is how it works in a nutshell:

    There is a text file on the webserver that contains a character that represents a command (that's to be updated via the web control interface, haven't done that part yet)

    The ESP8266 essentially polls that textfile every so often, and if it finds one of several particular characters, it runs the associated command (such as turn on an LED)

    It's a hack job, but it does work: Energia sketch below:

    char starry[170];
    void setup()
      // put your setup code here, to run once:
    P1OUT &=~B01000001;
    P1DIR |=BIT0;
    P1DIR |=BIT6;
    void loop()
      // put your main code here, to run repeatedly:
    void querycommand(){
    Serial.print("ATE0\r\n"); //disables local echo
    Serial.print("GET /nextgen/command.txt\r\n\r\n");//26
    int count=0;
    if (Serial.available()){
      P1OUT |=BIT6;
    while(count < 170){
     if(starry[count] =='8'){
        P1OUT |=BIT0;
     else if(starry[count]=='z'){
      P1OUT &=~BIT0;

  • Been Busy with other projects

    mcu_nerd10/09/2015 at 00:02 0 comments

    Seeing as I"m getting a few more followers, I'll get back to the project soon. I've been side-tracked lately my mini-projects. My latest mini-project has been a small I2C temp sensor board featuring a TC74 and a DS1631. Come to think of it, this may come in handy for the HouseRemote Project. If anyone is interested, I'll be happy to provide the KiCad files.

  • Been Busy

    mcu_nerd08/14/2015 at 11:56 0 comments

    First of all let me say thanks for those that are following and/or have given skulls, your support is appricated! I've been busy with other things this week such as making having my first PCB made. I plan to get back on track next week.

  • Added a remote sensor

    mcu_nerd07/28/2015 at 22:18 0 comments

    I've added a remote sensor using an ESP8266 and a MSP430G2553. The sensor is currently configured to detect the presence of water and send and alert to the web server if it does. The new code(and modifications to web page files) has been posted on my GitHub repo here.

    A little backstory: I've suffered in the past from water leaks from the washing machine, the last leak damaged my flooring in the hallway.

    I of course plan to do more things than just detect water with remote sensors in the future. The downside of using the ESP8266 is that it's a power hog, which reduces the practicality of making the remote sensor battery-powered and thus limits where I can place it.

  • GitHub Page

    mcu_nerd07/07/2015 at 14:09 0 comments

    I know, I know it's about time that I set one up (continuing to dump my code on the Hackaday page would just make things messy and inpractical.) I"m still learning how to use GitHub.

    Anyways, here is the link to it:

    GitHub page

  • Working on the Web side of things

    mcu_nerd07/04/2015 at 00:06 0 comments

    I'm currently working on improving the web interface (a screenshot of it can be seen in the second project photo.) Originally everything was in a few files. I've not split up all the different functions, into separate files.

    I've also changed the appearance a bit, it's still just a draft so there is bound to be at least a few more iterations to go. As for new features, I'm considering taking logs of sensor data.

    Happy 4th of July in advance!

  • I'm still here!

    mcu_nerd06/25/2015 at 23:25 0 comments

    I've been temporarily distracted with the arrival of two esp8266 modules. I may incorporate them into the project.

View all 12 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates