In: Electrical Engineering
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
Set up and demonstrate the operation of the DTMF controlled automation system, using a designed control unit.
int x,y,z,t,r,s;
int a=3;
int b=4;
int c=5;
int d=6;
void setup() {
pinMode(a,INPUT);
pinMode(b,INPUT);
pinMode(c,INPUT);
pinMode(d,INPUT);
Serial.begin(9600);
}
void loop() {
char e[16];
String command;
x=digitalRead(a);
y=digitalRead(b);
z=digitalRead(c);
t=digitalRead(d);
if (x==0 && y==0 && z==0 && t==0)
e[0]='1';
if (x==0 && y==0 && z==0 && t==1)
e[1]='2';
if (x==0 && y==0 && z==1 && t==0)
e[2]='3';
if (x==0 && y==0 && z==1 && t==1)
e[3]='4';
if (x==0 && y==1 && z==0 && t==0)
e[4]='5';
if (x==0 && y==1 && z==0 && t==1)
e[5]='6';
if (x==0 && y==1 && z==1 && t==0)
e[6]='7';
if (x==0 && y==1 && z==1 && t==1)
e[7]='8';
if (x==1 && y==0 && z==0 && t==0)
e[8]='9';
if (x==1 && y==0 && z==0 && t==1)
e[9]="11";
if (x==1 && y==0 && z==1 && t==0)
e[10]="12";
if (x==1 && y==0 && z==1 && t==1)
e[11]="13";
if (x==1 && y==1 && z==0 && t==0)
e[12]="14";
if (x==1 && y==1 && z==0 && t==1)
e[13]="15";
if (x==1 && y==1 && z==1 && t==0)
e[14]="16";
if (x==1 && y==1 && z==1 && t==1)
e[15]='2';
for(r=0;r<16;r++)
{
for(s=0;s<16;s++)
{
command=e[r]+e[s];
}
}
if(command="1")
{
Serial.print("First devices");
// it can be continued to 256 devices
}
}
}