Mobiltelefoner er en revolusjonerende oppfinnelse av århundret. Den ble primært designet for å ringe og motta samtaler og tekstmeldinger, men det har blitt hele verden etter at smarttelefonen kommer inn i bildet. I dette prosjektet bygger vi et hjemmeautomatiseringssystem, der man kan kontrollere husholdningsapparatene ved hjelp av den enkle GSM-baserte telefonen, bare ved å sende SMS via telefonen. I dette prosjektet er det ikke behov for en smarttelefon, bare den gamle GSM-telefonen vil fungere for å slå PÅ og AV alle elektroniske husholdningsapparater, hvor som helst. Du kan også sjekke flere trådløse hjemmeautomatiseringsprosjekter her: IR fjernstyrt hjemmeautomatisering ved hjelp av Arduino, Bluetooth-kontrollert hjemmeautomatisering sammen med DTMF-basert hjemmeautomatisering, PC-styrt hjemmeautomatisering ved hjelp av Arduino.
Arbeidsforklaring
I dette prosjektet brukes Arduino til å kontrollere hele prosessen. Her har vi brukt GSM trådløs kommunikasjon for å kontrollere husholdningsapparater. Vi sender noen kommandoer som "# A.light on *", "# A.light off *" og så videre for å kontrollere AC-apparater. Etter å ha mottatt gitte kommandoer fra Arduino via GSM, sender Arduino signal til reléer, for å slå PÅ eller AV husholdningsapparater ved hjelp av en relédriver.
Kretskomponenter:
- Arduino UNO
- GSM-modul
- ULN2003
- Relé 5 volt
- Pære med holder
- Koble ledninger
- Brettbrett
- 16x2 LCD
- Strømforsyning
- Mobiltelefon
Her har vi brukt et prefiks i kommandostrengen som er “#A.”. Dette prefikset brukes til å identifisere at hovedkommandoen kommer ved siden av den og * på slutten av strengen indikerer at meldingen er avsluttet.
Når vi sender SMS til GSM-modulen via Mobile, mottar GSM den SMSen og sender den til Arduino. Nå leser Arduino denne SMSen og trekker ut hovedkommandoen fra den mottatte strengen og lagrer i en variabel. Etter dette sammenligner Arduino denne strengen med forhåndsdefinert streng. Hvis kamp oppstod, sender Arduino signal til relé via relédriver for å slå PÅ og AV husholdningsapparater. Og det relative resultatet skrives også ut på 16x2 LCD ved hjelp av passende kommandoer.
Her i dette prosjektet har vi brukt 3 null watt pære til demonstrasjon som indikerer Vifte, Lys og TV.
Nedenfor er listen over meldinger vi sender via SMS for å slå på og av viften, lyset og TV:
S.no. |
Beskjed |
Operasjon |
1 |
# A.fan på * |
Vifte PÅ |
2 |
# A.fan av * |
Vifte AV |
3 |
# A.lys på * |
Lys på |
4 |
# A.lys av * |
Lys av |
5 |
# A.tv på * |
TV PÅ |
6 |
# A.tv av * |
TV av |
7 |
# A. alle på * |
Alt PÅ |
8 |
# A.all av * |
Alt av |
GSM-modul:
GSM-modulen brukes i mange kommunikasjonsenheter som er basert på GSM-teknologi (Global System for Mobile Communications). Den brukes til å samhandle med GSM-nettverk ved hjelp av en datamaskin. GSM-modulen forstår bare AT-kommandoer, og kan svare tilsvarende. Den mest grunnleggende kommandoen er "AT". Hvis GSM svarer OK, fungerer den bra, ellers svarer den med "FEIL". Det er forskjellige AT-kommandoer som ATA for å svare på en samtale, ATD for å ringe en samtale, AT + CMGR for å lese meldingen, AT + CMGS for å sende sms osv. AT-kommandoer skal følges av Vognretur dvs. \ r (0D i heks), som “AT + CMGS \ r”. Vi kan bruke GSM-modul ved hjelp av disse kommandoene:
ATE0 - For ekko av
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”mobilnummer”
>> Nå kan vi skrive meldingen vår
>> Etter å ha skrevet melding
Ctrl + Z send meldingskommando (26 i desimal).
ENTER = 0x0d i HEX
Den SIM900 er en komplett Quad-band GSM / GPRS-modul som leverer GSM / GPRS 850/900/1800/1900 MHz ytelse for tale, SMS og data med lavt strømforbruk.
Kretsbeskrivelse
Tilkoblinger til denne GSM-baserte hjemmeautomatiseringskretsen er ganske enkle, her brukes en flytende krystallskjerm for å vise status for husholdningsapparater som er direkte koblet til arduino i 4-biters modus. Datapinner på LCD, nemlig RS, EN, D4, D5, D6, D7 er koblet til arduino digital pin nummer 6, 7, 8, 9, 10, 11. Og Rx og Tx pin på GSM-modulen er direkte koblet til Tx og Rx pin av henholdsvis Arduino. Og GSM-modulen drives av en 12 volt adapter. 5 volt SPDT 3-reléer brukes til å kontrollere LYS, VIFTE og TV. Og reléer er koblet til arduino pin nummer 3, 4 og 5 gjennom relédriver ULN2003 for å kontrollere henholdsvis LIGHT, FAN og TV.
Kode Beskrivelse
I programmeringen av en del av dette prosjektet inkluderer vi først og fremst i programmering bibliotek for flytende krystallvisning, og deretter definerer vi data og kontrollpinner for LCD og husholdningsapparater.
#inkludere
Etter at denne serielle kommunikasjonen er initialisert med 9600 bps og gir retning til brukt pin.
ugyldig oppsett () {lcd.begin (16,2); Serial.begin (9600); pinMode (ledet, UTGANG); pinMode (Fan, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
For å motta data serielt har vi brukt to funksjoner, den ene er Serial.available som sjekker om noen serielle data kommer og den andre er Serial.read som leser dataene som kommer serielt.
mens (Serial.available ()) {char inChar = Serial.read ();
Etter å ha mottatt data serielt har vi lagret det i en streng og deretter ventet på Enter.
ugyldig serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); forsinkelse (1000); digitalWrite (ledet, LAV); mens (Serial.available ()) {char inChar = Serial.read (); str = inChar; hvis (inChar == '*') {temp = 1; komme tilbake; }
Når Enter kommer, begynner programmet å sammenligne mottatt streng med allerede definert streng, og hvis streng matches, utføres en relativ operasjon ved å bruke passende kommando som er gitt i kode.
void check () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ON"); forsinkelse (200); } annet hvis (! (strncmp (str, "tv av", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); forsinkelse (200); }