Question

In: Electrical Engineering

DTMF Home Automation System This project is about controlling of home appliances using DTMF (Dual Tone...

DTMF Home Automation System

This project is about controlling of home appliances using DTMF (Dual Tone Multi Frequency) technology. These appliances includes lights, fans, central heating, etc. A control unit will be required to encode the 4bit binary code from the DTMF decoder to link with 16 appliances or operations. However anyone can control your appliances if they know the cell number of the phone connected to the module. Furthermore, the number of appliances is limited to 16, which is the number of DTMF tones. These problems can be solved by using a controller at both transmit and receive end, and introduce a digital code. Now it will be possible to use more than one tone per command. For example, using 2 tones will give 16x16 =256 commands. A duplex operation can now be possible.

I need help Designing the DTMF Home Automation System using an Arduino.

I need the source code and circuit

Solutions

Expert Solution

Platform assembly

Now you need to tight Arduino board, relay board, DTMF board to the appropriate place with the bolts.

Make connection as shown in the above figure.

The source code will be for the 4 home appliances.

Source code:

const int Q1 = 8;  // Defining Digital Input Pins from DTMF Module
const int Q2 = 9;
const int Q3 = 10;
const int Q4 = 11;
const int D1 = 4;  // Defining Digital output Pins for Relay Board
const int D2 = 5;
const int D3 = 6;
const int D4 = 7;

int SoQ1 = 0;     // Defining variable to store the status(HIGH/LOW) of above inputs.
int SoQ2 = 0;
int SoQ3 = 0;
int SoQ4 = 0;
int oldCon = 0;  //  Variable to know what was the last button pressed.  

void setup(){ 
   pinMode(Q1, INPUT);  // Defining pins as input.
   pinMode(Q2, INPUT);
   pinMode(Q3, INPUT);
   pinMode(Q4, INPUT);
   
   pinMode(D1, OUTPUT);  // Defining pins as output.
   pinMode(D2, OUTPUT);
   pinMode(D3, OUTPUT);
   pinMode(D4, OUTPUT);
 
}

void loop(){
  SoQ1 = digitalRead(Q1);  // Reading status of Input Pins. It can be LOW or HIGH
  SoQ2 = digitalRead(Q2);
  SoQ3 = digitalRead(Q3);
  SoQ4 = digitalRead(Q4);
  
   if(SoQ4==LOW && SoQ3==LOW && SoQ2==LOW && SoQ1==HIGH )  // Condition for Button 1. It is equal to Binary - 0001 
    {
      if (oldCon!=1){
         digitalWrite(D1, HIGH);
       }
      oldCon=1;  
    }
  
  else if(SoQ4==LOW && SoQ3==LOW && SoQ2==HIGH && SoQ1==LOW )  // Condition for Button 2. It is equal to Binary - 0010 
    {
      if (oldCon!=2){
        digitalWrite(D1, LOW);
       }
      oldCon=2;  
    }
  else if(SoQ4==LOW && SoQ3==LOW && SoQ2==HIGH && SoQ1==HIGH )  // Condition for Button 3. It is equal to Binary - 0011 
        {
      if (oldCon!=3){
         digitalWrite(D2, HIGH);
       }
      oldCon=3;  
    }
 
  else if(SoQ4==LOW && SoQ3==HIGH && SoQ2==LOW && SoQ1==LOW )   // Condition for Button 4. It is equal to Binary - 0100 
    {
      if (oldCon!=4){
        digitalWrite(D2, LOW); 
       }
      oldCon=4;  
    } 
  else if(SoQ4==LOW && SoQ3==HIGH && SoQ2==LOW && SoQ1==HIGH )   // Condition for Button 5. It is equal to Binary - 0101 
    {
      if (oldCon!=5){
         digitalWrite(D3, HIGH);  
       }
      oldCon=5;  
    }    

  else if(SoQ4==LOW && SoQ3==HIGH && SoQ2==HIGH && SoQ1==LOW )   // Condition for Button 6. It is equal to Binary - 0110 
    {
      if (oldCon!=6){
         digitalWrite(D3, LOW); 
       }
      oldCon=6;  
    }
    
  else if(SoQ4==LOW && SoQ3==HIGH && SoQ2==HIGH && SoQ1==HIGH )   // Condition for Button 7. It is equal to Binary - 0111 
    {
      if (oldCon!=7){
         digitalWrite(D4, HIGH);
       }
      oldCon=7;  
    } 

  else if(SoQ4==HIGH && SoQ3==LOW && SoQ2==LOW && SoQ1==LOW )   // Condition for Button 8. It is equal to Binary - 1000 
    {
      if (oldCon!=8){
        digitalWrite(D4, LOW);
       }
      oldCon=8;  
    } 
  else if(SoQ4==HIGH && SoQ3==LOW && SoQ2==LOW && SoQ1==HIGH )   // Condition for Button 9. It is equal to Binary - 1001 
    {
      if (oldCon!=9){
         digitalWrite(D1, LOW);
         digitalWrite(D2, LOW);
         digitalWrite(D3, LOW);
         digitalWrite(D4, LOW);  
       }
      oldCon=9;  
    }
    
delay(50);   // Debounce Delay.
  
}

Dial the phone number attached to the kit. Receive the call. Then the procedure will be as follows.

If you press 1: Device 1 will be on.

If you press 2: Device 1 will be off.

If you press 3: Device 2 will be on.

If you press 4: Device 2 will be off.

If you press 5: Device 3 will be on.

If you press 6: Device 3 will be off.

If you press 7: Device 4 will be on.

If you press 8: Device 4 will be off.

If you press 8: All devices will be off.


Related Solutions

DTMF Home Automation System This project is about controlling of home appliances using DTMF (Dual Tone...
DTMF Home Automation System This project is about controlling of home appliances using DTMF (Dual Tone Multi Frequency) technology. These appliances includes lights, fans, central heating, etc. A control unit will be required to encode the 4bit binary code from the DTMF decoder to link with 16 appliances or operations. However anyone can control your appliances if they know the cell number of the phone connected to the module. Furthermore, the number of appliances is limited to 16, which is...
DTMF home automation system using ATMEGA8 i need the circuit and the code for the microcontroller
DTMF home automation system using ATMEGA8 i need the circuit and the code for the microcontroller
I am working on an IOT BASED HOME AUTOMATION PROJECT...I want to make use of a...
I am working on an IOT BASED HOME AUTOMATION PROJECT...I want to make use of a camera in this system to be able to capture movements or happenings in the house... Can this be accomplished by using NODEMCU,ARDUINO,RASPBERRY PIE.. if yes...I need detailed ways on how to do it using each of them.
Material Energy balance course. a. By using several examples related to your home appliances or any...
Material Energy balance course. a. By using several examples related to your home appliances or any real-life application out there, and aligning it to mass conservation law, justify why do you need to learn material balance. Support your answer with minimum 5 solid points.
Please create a presentation slide about five (5) vibration control examples for home appliances. The presentation...
Please create a presentation slide about five (5) vibration control examples for home appliances. The presentation slides must be in Microsoft PowerPoint (*.pptx) format.
Answer the following questions about cache coherency protocols in a dual-processor system. a) If each processor...
Answer the following questions about cache coherency protocols in a dual-processor system. a) If each processor has a separate cache, what is the main advantage of the 4-state MESI snoopy cache coherency protocol compared to a snoopy cache coherency protocol that uses only 3 states M, S and I (modified, shared and invalid)? b) Suppose that processor P1 (in a dual-processor system) writes to a memory block. A copy of this same memory block is already in a modified line...
Activity Cost Pools, Activity Rates, and Product Costs using Activity-Based Costing Caldwell Home Appliances Inc. is...
Activity Cost Pools, Activity Rates, and Product Costs using Activity-Based Costing Caldwell Home Appliances Inc. is estimating the activity cost associated with producing ovens and refrigerators. The indirect labor can be traced into four separate activity pools, based on time records provided by the employees. The budgeted activity cost and activity-base information are provided as follows: Activity Activity Pool Cost Activity Base Procurement $12,600 Number of purchase orders Scheduling 90,000 Number of production orders Materials handling 11,000 Number of moves...
project about automotive cruise control system
project about automotive cruise control system
Given the partially coded project: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...
Given the partially coded project: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StaticHW {    class Program { static void Main(string[] args) { // will have 3 Dogs Dog[] allDogs = new Dog[3]; allDogs[0] = new Dog(20f, 10f, "Fido"); allDogs[1] = new Dog(40f, 20f, "Percy"); allDogs[2] = new Dog(70f, 30f, "Snoopy"); // comment out the next 3 lines until you have written the Dog class and the code runs ok // then put these 3 lines...
MHI Corp. is considering a capital budgeting project developing a new and improved home management system...
MHI Corp. is considering a capital budgeting project developing a new and improved home management system that will allow customers to easily inventory frequently purchased items for their home and to receive reminders when these items need to be repurchased. The firm’s WACC is 6.7%. The project is slightly more risky that the average project of the firm. You have been advised to add a 3.1% premium to the firm’s WACC for the discount rate for this project. The project...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT