Mobiltelefoner er en revolutionerende opfindelse i århundredet. Det var primært designet til at foretage og modtage opkald og tekstbeskeder, men det er blevet hele verden, efter at smarttelefonen kommer ind i billedet. I dette projekt bygger vi et hjemmeautomatiseringssystem, hvor man kan styre husholdningsapparater ved hjælp af den enkle GSM-baserede telefon ved blot at sende SMS via sin telefon. I dette projekt er der ikke behov for en smarttelefon, bare den gamle GSM-telefon fungerer til at tænde og slukke for elektroniske apparater til hjemmet, hvor som helst. Du kan også kontrollere nogle flere trådløse hjemmeautomatiseringsprojekter her: IR-fjernstyret hjemmeautomatisering ved hjælp af Arduino, Bluetooth-styret hjemmeautomatisering sammen med DTMF-baseret hjemmeautomatisering, pc-styret hjemmeautomatisering ved hjælp af Arduino.
Arbejdsforklaring
I dette projekt bruges Arduino til at kontrollere hele processen. Her har vi brugt GSM trådløs kommunikation til styring af husholdningsapparater. Vi sender nogle kommandoer som "# A.light on *", "# A.light off *" og så videre til styring af AC-husholdningsapparater. Efter at have modtaget givne kommandoer fra Arduino via GSM, sender Arduino signal til relæer, for at tænde eller slukke for husholdningsapparaterne ved hjælp af en relædriver.
Kredsløbskomponenter:
- Arduino UNO
- GSM-modul
- ULN2003
- Relæ 5 volt
- Pære med holder
- Tilslutning af ledninger
- Brødbræt
- 16x2 LCD
- Strømforsyning
- Mobiltelefon
Her har vi brugt et præfiks i kommandostreng, der er “#A.”. Dette præfiks bruges til at identificere, at hovedkommandoen kommer ved siden af den, og * i slutningen af en streng angiver, at meddelelsen er afsluttet.
Når vi sender SMS til GSM-modul via Mobile, modtager GSM den SMS og sender den til Arduino. Nu læser Arduino denne SMS og udtrækker hovedkommandoen fra den modtagne streng og gemmer i en variabel. Herefter sammenligner Arduino denne streng med foruddefineret streng. Hvis der opstod match, sender Arduino signal til relæ via relædriver for at tænde og slukke for husholdningsapparaterne. Og et relativt resultat udskrives også på 16x2 LCD ved hjælp af passende kommandoer.
Her i dette projekt har vi brugt 3 nul watt pære til demonstration, hvilket indikerer blæser, lys og tv.
Nedenfor er listen over meddelelser, som vi sender via SMS, for at tænde og slukke for blæseren, lys og tv:
S.nr. |
Besked |
Operation |
1 |
# A. fan på * |
Ventilator TIL |
2 |
# A.fan slukket * |
Ventilator OFF |
3 |
# A.lys på * |
Lys på |
4 |
# A.lys slukket * |
Sluk lyset |
5 |
# A.tv på * |
TV TIL |
6 |
# A.tv slukket * |
TV slukket |
7 |
# A. alle på * |
Alt ON |
8 |
# A. alle slukket * |
Alt FRA |
GSM-modul:
GSM-modulet bruges i mange kommunikationsenheder, der er baseret på GSM-teknologi (Global System for Mobile Communications). Det bruges til at interagere med GSM-netværk ved hjælp af en computer. GSM-modulet forstår kun AT-kommandoer og kan reagere i overensstemmelse hermed. Den mest grundlæggende kommando er “AT”, hvis GSM svarer OK, fungerer den godt, ellers svarer den med “FEJL”. Der er forskellige AT-kommandoer som ATA til besvarelse af et opkald, ATD for at ringe til et opkald, AT + CMGR for at læse beskeden, AT + CMGS for at sende sms osv. AT-kommandoer skal følges af Carriage return dvs. \ r (0D i hex), som “AT + CMGS \ r”. Vi kan bruge GSM-modul ved hjælp af disse kommandoer:
ATE0 - Til ekko fra
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”mobilnummer”
>> Nu kan vi skrive vores besked
>> Efter at have skrevet besked
Ctrl + Z send beskedkommando (26 i decimal).
ENTER = 0x0d i HEX
Den SIM900 er en komplet Quad-band GSM / GPRS-modul, som leverer GSM / GPRS 850/900 / 1800 / 1900MHz ydeevne til tale, sms og data med lavt strømforbrug.
Kredsløbsbeskrivelse
Forbindelser til dette GSM-baserede hjemmeautomatiseringskredsløb er ret enkle, her bruges en skærm med flydende krystaller til visning af status på husholdningsapparater, der er direkte forbundet til arduino i 4-bit-tilstand. Datastifter på LCD, nemlig RS, EN, D4, D5, D6, D7 er forbundet til arduino digital pin nummer 6, 7, 8, 9, 10, 11. Og Rx og Tx pin på GSM-modul er direkte forbundet med Tx og Rx pin af henholdsvis Arduino. Og GSM-modulet får strøm ved hjælp af en 12 volt adapter. 5 volt SPDT 3-relæer bruges til styring af LYS, FAN og TV. Og relæer er forbundet til arduino pin nummer 3, 4 og 5 gennem relædriver ULN2003 til styring af henholdsvis LYS, FAN og TV.
Kode Beskrivelse
I programmeringen af en del af dette projekt inkluderer vi først og fremmest bibliotek til display med flydende krystaller, og derefter definerer vi data og kontrolben til LCD og husholdningsapparater.
#omfatte
Efter denne serielle kommunikation initialiseres ved 9600 bps og giver retning til brugt pin.
ugyldig opsætning () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (Fan, OUTPUT); pinMode (lys, OUTPUT); pinMode (TV, OUTPUT);
Til seriel modtagelse af data har vi brugt to funktioner, den ene er Serial.available, der kontrollerer, om der kommer serielle data, og den anden Serial.read, der læser de data, der kommer serielt.
mens (Serial.available ()) {char inChar = Serial.read ();
Efter at have modtaget data serielt har vi gemt det i en streng og derefter venter på Enter.
ugyldigt serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); forsinkelse (1000); digitalWrite (led, LAV); mens (Serial.available ()) {char inChar = Serial.read (); str = inChar; hvis (inChar == '*') {temp = 1; Vend tilbage; }
Når Enter kommer, begynder programmet at sammenligne modtaget streng med allerede defineret streng, og hvis streng matches, udføres en relativ operation ved hjælp af passende kommando, der er angivet i kode.
ugyldig kontrol () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ON"); forsinkelse (200); } ellers hvis (! (strncmp (str, "tv fra", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); forsinkelse (200); }