DIY Hacking Your Own Home Automation System

46,107

641

14

Introduction: DIY Hacking Your Own Home Automation System

About: I have a degree in Electronics Engineering and various certifications in all kinds of internet programming languages. Professionally, I have over 20 years of experience in various roles including an electronic…

A home automation system should be able to turn on/off appliances such as lights, fans, entertainment systems, etc. A system that is wireless yet independent from the Internet, but most importantly, DIY and open-source because I want to understand how it works.

Why re-invent the wheel?

Want More?

  • Why DIY when you could buy?
  • What is a “Smart” Garden?
  • Starting a Smart Indoor Garden
  • Digging Deeper into Indoor Gardening
  • Indoor Gardening: What can go wrong?
  • Managing Nutrient Solution Systems
  • Why Arduino when you can Pi?

hydromazing.com

Step 1: Review the CoreConduit: Garden Controller System

The Coreconduit: Garden Controller System does more than we need for human living conditions so let's see what it is doing so we can make some changes. The author of the Instructable drones on and on about healthy plants requiring attention and boredom until,

"...I've programmed into the Arduino a function I called, "TheDecider" that makes decisions based on maintaining optimum environmental conditions for growing plants. I added 2.4Ghz Wireless Radio Transceiver modules and a modular receiver system so that data is transmitted to within 1000 feet."

Nice! We should take a look at this, "TheDecider"

Another plus for this project is:

"With safety in mind, I chose not to use relays that expose AC currents. Instead, I chose to use Remote Controlled Wireless Outlets for controlling lights, pumps, fans, heaters, and humidifiers."

Step 2: Download the Source-code

Download the source-code from GitHub.

433MHz RF Module Tutorial

The Instructable explains:

"In the source-code I created a base foundation for managing, transmitting, and receiving "sensor" objects and "appliance" objects. This project could easily be modified to work with other environments in which control is achieved by reading sensors and operating appliances based on programmed rules. You'll need to make a few adjustments to the source-code in order for it to work properly with your wireless outlets. To make the changes, you'll need to find out what the codes are that your wireless remote control uses and the outlets are programmed to receive. I have included a sketch for installing onto your Arduino Uno* w/ protoshield - step you through the process of acquiring the codes. You will need to insert the 433Mhz Receiver module (as pictured) and upload this sketch, StartCore.ino to the Arduino Uno* and open up the serial console for that port so that you can receive data from the Arduino."

Let's make one!!

"After you complete the process of acquiring all of the codes from your remote you can copy and paste directly into TheDecider.h header file where I have indicated."

Step 3: Build the Controller

Parts: ( links provided as reference )

Optional Parts:

  • Arduino Uno R3* or Pro Mini*
  • Real-Time Clock Module
  • Optional: nRF24L01 Adapter with 3.3v regulator
  • connector wires
  • Display Option LCD w/ buttons Shield + Arduino Uno R3*
  • 2 x 4-pin male header connector wires
  • SD Card Option SD Card Shield + Arduino Uno R3*
  • connector wires

Internet Connectivity Option

Tools:

Step 4: Some Assembly Required

Start by figuring out what codes your own particular wireless remote AC outlets use. The source-code assumes that there is a 433Mhz receiver on pins 2 (ground), 3 (Data), 4 (Vcc) and a real-time clock module connected via I2C using A5 (SCL), A4 (SDA), Vcc, ground.

Step 5: Going Wireless

Now that the controller is programmed with the codes for our AC outlets, we can add the nRF24L01 module.

Using the DuPont Rainbow ribbon with 2.54mm female connectors so that I can make custom wire connectors:

  • Pin number on Arduino / Wire Color / nRF24L01 Pin
  • Pin 9 : Orange / CSN "Chip Select"
  • Pin 10: Yellow / CE "Chip Enable"
  • Pin 11: Green / MOSI "Master Out, Slave In"
  • Pin 12: Blue / MISO "Master In, Slave Out"
  • Pin 13: Purple / SCK "System Clock"
  • Vcc 3.3v* Red (if not using Uno, optional adapter board with voltage regulator)
  • Ground. Brown

Wire color coding looking at the nRF24L01 component side with the crystal oriented on top - from bottom right, going up: Brown | Orange | Purple | Blue. Left from bottom going up: Red | Yellow | Green | NC

More amazing information on connecting the nRF24L01 to Arduino.

Step 6: Receiver Side

The Receiver source-code assumes that it is going to be compiled and executed on an Arduino Uno or ProMini connected to an nRF24L01, same as The Controller. As part of the Garden Controller System, the Receiver will send alerts via attached LCD Display and/or audible alert from a piezo connected on pins 2 (ground), 3 (signal), 4 (Vcc). For use in home automation projects, the alerts system can be removed or the rules customized according to the desired effect.

Step 7: Going Further...

Using Arduino Uno, Pro Mini, nRF24L01, and other open-source modules opens the door to many possibilities. We now have a wireless framework for sending data objects for sensors, appliances, alerts, etc, using a controller for remote AC outlets and sensor inputs and a receiver for exploring development of a user interface. TheDecider can be updated to perform any number of tasks based on sensor and user inputs. What the receiver does in response to the data it receives is up to you.

Enjoy tinkering!!

Interested in Hydroponics?

Home Automation

Runner Up in the
Home Automation

Reuse Contest

Participated in the
Reuse Contest

Be the First to Share

    Recommendations

    • Make It Bridge

      Make It Bridge
    • Big and Small Contest

      Big and Small Contest
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge

    14 Comments

    0
    gtoal
    gtoal

    6 years ago

    This is really good work, but quite complicated, which limits how many people are likely to build it. I came up with an easier way to control outlets by using a handheld remote that is triggered by relays controlled by a raspberry pi: https://www.instructables.com/id/Control-Any-Remote-From-a-Raspberry-Pi-and-Amazon-/ - Pi programming is a lot easier than arduino programming, though maybe not as much fun.

    0
    bitsandbots
    bitsandbots

    Reply 7 years ago on Introduction

    Thank you for your question. The software manages "sensor" objects and "appliance" objects by transmitting and receiving to the controller which makes decisions using TheDecider to turn on and off wireless AC outlets.

    0
    jdedios
    jdedios

    7 years ago

    People!
    Why some of you are so grumpy.
    The project is good. Why some human beings are always looking for motivations without knowing the one that took the time and effort to do it. It was a good prihect and i enjoyed. Thanks for taking your time to explain it.

    0
    JoeI2
    JoeI2

    7 years ago on Introduction

    I like this. It helped me know what this Arduino is for. I like the dry humor of pretending to base it on someone else's work, when it turns out to be you. I like that! And how gratifing that someone noticed.

    0
    diy_bloke
    diy_bloke

    7 years ago on Introduction

    I am a bit confused: aren't you the author of the Coreconduit Garden Controller Systen?

    0
    bitsandbots
    bitsandbots

    Reply 7 years ago on Introduction

    Sorry for causing confusion. My intent was to be humorous in the fact that I'm showing readers how to hack my own project for their needs.

    0
    vanweb
    vanweb

    Reply 7 years ago on Introduction

    Your intent was also "maybe" to be able to enter this in the Home Automation contest which started after your original Instructable was already published?

    0
    bitsandbots
    bitsandbots

    Reply 7 years ago on Introduction

    I'm sorry if you think entering a contest is my primary motive for sharing. Honestly, I've spent a lot more money on these projects than any contests will ever compensate me for. My original Instructable is for a garden controller, not home automation. I think I have provided a significant amount of new information in this Instructable. If I do win a contest it would be a bonus. Thank you for taking the time to comment, even if it wasn't very positive or constructive.

    0
    diy_bloke
    diy_bloke

    Reply 7 years ago on Introduction

    no problem, no harm doe, but indeed i was getting a bit confused. Good project by the way

    0
    bitsandbots
    bitsandbots

    Reply 7 years ago on Introduction

    I touched it up a bit and I think it'll be more clear and still somewhat humorous :-) btw, thank you for taking the time to comment!

    0
    diy_bloke
    diy_bloke

    Reply 7 years ago on Introduction

    sorry for cousing trouble. I was just curious :-)

    0
    bitsandbots
    bitsandbots

    Reply 7 years ago on Introduction

    No trouble at all! I sincerely appreciate you letting me know what I had written was confusing. Your feedback has been very helpful. Thanks much for your constructive comments!!