Normally, we control the home appliances using the switches. But nowadays there are different technologies like Bluetooth, WiFi, RF, and DTMF. By these technologies, we can control the home appliances wirelessly.
Our article is based on DTMF technology. DTMF stands for Dual Tone Multi Frequency. In our mobile, we use this technology. Some time we communicate with the mobile operator customer care and asked us to press some keys. And some information sent to customer care computer because we pressed some keys.
In DTMF each key has a specific frequency. This frequency is generated by the row and column frequency. Column frequency is higher than the row frequency.
In this project, we will control the home appliances from the mobile by pressing the keys. For this, we take two mobile. One act as a transmitter and operated by the user by pressing the keys. Second mobile act as a receiver and placed with home appliances with controlling circuitry.
Table of Contents
DTMF Low and High Frequency Tones
Key | Low Freq. (Hz) | High Freq. (Hz) |
---|---|---|
1 | 697 | 1209 |
2 | 697 | 1336 |
3 | 697 | 1477 |
4 | 770 | 1209 |
5 | 770 | 1336 |
6 | 770 | 1477 |
7 | 852 | 1209 |
8 | 852 | 1336 |
9 | 852 | 1477 |
0 | 941 | 1336 |
* | 941 | 1209 |
# | 941 | 1477 |
A | 697 | 1633 |
B | 770 | 1633 |
C | 852 | 1633 |
D | 941 | 1633 |
ANY | ANY | ANY |
DTMF Key and Decoded Output
Key | OE | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|---|
1 | H | 0 | 0 | 0 | 1 |
2 | H | 0 | 0 | 1 | 0 |
3 | H | 0 | 0 | 1 | 1 |
4 | H | 0 | 1 | 0 | 0 |
5 | H | 0 | 1 | 0 | 1 |
6 | H | 0 | 1 | 1 | 0 |
7 | H | 0 | 1 | 1 | 1 |
8 | H | 1 | 0 | 0 | 0 |
9 | H | 1 | 0 | 0 | 1 |
0 | H | 1 | 0 | 1 | 0 |
* | H | 1 | 0 | 1 | 1 |
# | H | 1 | 1 | 0 | 0 |
A | H | 1 | 1 | 0 | 1 |
B | H | 1 | 1 | 1 | 0 |
C | H | 1 | 1 | 1 | 1 |
D | H | 0 | 0 | 0 | 0 |
ANY | L | Z | Z | Z | Z |
DTMF Controlled Home Automation Circuit
DTMF Controlled Home Automation AVR Code
#include <avr/io.h>
#include <util/delay.h>
#include”lcd.h”
int main()
{
int dtmfInput=0;
DDRC=0b0000000;//DTMF input
DDRB=0xFF;//Load output
lcd_init(LCD_DISP_ON);
lcd_puts(“Home Automation”);
lcd_gotoxy(0,1);
lcd_puts(“www.maxphi.com”);
_delay_ms(5000);
_delay_ms(5000);
while(1)
{
lcd_puts(“www.maxphi.com”);
dtmfInput=PINC&0b0001111;
lcd_gotoxy(0,1);
if(dtmfInput==1){
PORTB|=(1<<PORTB0);
lcd_puts(“FAN ON”);
}
if(dtmfInput==2){
PORTB&=~(1<<PORTB0);
lcd_puts(“FAN OFF”);
}
if(dtmfInput==3){
PORTB|=(1<<PORTB1);
lcd_puts(“AC ON”);
}
if(dtmfInput==4){
PORTB&=~(1<<PORTB1);
lcd_puts(“AC OFF”);
}
if(dtmfInput==5){
PORTB|=(1<<PORTB2);
lcd_puts(“BULB ON”);
}
if(dtmfInput==6){
PORTB&=~(1<<PORTB2);
lcd_puts(“BULB OFF”);
}
_delay_ms(200);
lcd_clrscr();
}
return 0;
}