Mobilný telefón je revolučným vynálezom storočia. Bol primárne určený na uskutočňovanie a prijímanie hovorov a textových správ, ale po objavení sa inteligentného telefónu sa stal celým svetom. V tomto projekte budujeme domáci automatizačný systém, v ktorom je možné ovládať domáce spotrebiče pomocou jednoduchého telefónu založeného na GSM, a to zasielaním SMS cez jeho telefón. V tomto projekte nie je potrebný žiadny inteligentný telefón, iba starý telefón GSM bude pracovať na zapnutí a vypnutí ľubovoľných domácich elektronických spotrebičov odkiaľkoľvek. Môžete si tiež pozrieť ďalšie projekty bezdrôtovej domácej automatizácie: IR diaľkovo ovládaná domáca automatizácia pomocou Arduina, Bluetooth riadená domáca automatizácia spolu s DTMF domácou automatizáciou, PC riadená domáca automatizácia pomocou Arduina.
Pracovné vysvetlenie
V tomto projekte sa Arduino používa na riadenie celého procesu. Tu sme použili bezdrôtovú komunikáciu GSM na ovládanie domácich spotrebičov. Na ovládanie domácich domácich spotrebičov posielame niektoré príkazy ako „# A.light on *“, „# A.light off *“ a tak ďalej. Po prijatí zadaných príkazov Arduino cez GSM, Arduino pošle signál relé, na zapnutie alebo vypnutie domácich spotrebičov pomocou ovládača relé.
Súčasti obvodu:
- Arduino UNO
- GSM modul
- ULN2003
- Relé 5 volt
- Žiarovka s držiakom
- Pripojovacie vodiče
- Chlebová doska
- 16x2 LCD
- Zdroj
- Mobilný telefón
Tu sme v príkazovom reťazci použili predponu „#A“. Táto predpona slúži na identifikáciu toho, že hlavný príkaz prichádza vedľa neho a * na konci reťazca označuje, že správa bola ukončená.
Keď pošleme SMS na GSM modul z mobilu, potom GSM prijme túto SMS a odošle ju do Arduina. Teraz Arduino prečíta túto SMS a extrahuje hlavný príkaz z prijatého reťazca a uloží do premennej. Potom Arduino porovná tento reťazec s preddefinovaným reťazcom. Ak došlo k zhode, potom Arduino pošle signál do relé pomocou ovládača relé na zapnutie a vypnutie domácich spotrebičov. A relatívny výsledok sa tiež vytlačí na 16x2 LCD pomocou vhodných príkazov.
V tomto projekte sme na demonštráciu použili žiarovku s 3 wattmi, ktorá označuje ventilátor, svetlo a televízor.
Nižšie je uvedený zoznam správ, ktoré odosielame prostredníctvom SMS na zapnutie a vypnutie ventilátora, osvetlenia a televízie:
S.no. |
Správa |
Prevádzka |
1 |
# A.fan na * |
Ventilátor ZAPNUTÝ |
2 |
# A.fan off * |
VYPNUTÝ ventilátor |
3 |
# A. svietiť * |
Svetlo ZAPNUTÉ |
4 |
# A. svetlo vypnuté * |
Svetlo VYPNUTÉ |
5 |
# A.tv v * |
TV ZAPNUTÁ |
6 |
# A.tv vypnutá * |
TV vypnutá |
7 |
# A.všetko * |
Všetko ZAPNUTÉ |
8 |
# A. všetko vypnuté * |
Všetko VYPNUTÉ |
GSM modul:
Modul GSM sa používa v mnohých komunikačných zariadeniach založených na technológii GSM (Global System for Mobile Communications). Používa sa na interakciu so sieťou GSM pomocou počítača. Modul GSM chápe iba príkazy AT a podľa toho môže reagovať. Najzákladnejším príkazom je „AT“, ak je GSM v poriadku, potom funguje dobre, inak reaguje „CHYBOU“. Existuje niekoľko príkazov AT, napríklad ATA na prijatie hovoru, ATD na vytočenie hovoru, AT + CMGR na prečítanie správy, AT + CMGS na odoslanie sms atď. Po príkazoch AT by mal nasledovať návrat vozíka, tj.), ako napríklad „AT + CMGS“. Modul GSM môžeme použiť pomocou týchto príkazov:
ATE0 - Pre vypnutie ozveny
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = „Číslo mobilného telefónu“
>> Teraz môžeme napísať našu správu
>> Po napísaní správy
Ctrl + Z príkaz na odoslanie správy (26 v desatinnej čiarke).
ENTER = 0x0d v HEX
SIM900 je kompletný Quad-band GSM / GPRS modul, ktorý prináša GSM / GPRS 850/900/1800 / 1900MHz výkon pre hlasové volania, SMS a dáta s nízkou spotrebou energie.
Popis obvodu
Pripojenie tohto obvodu domácej automatizácie založenej na GSM je celkom jednoduché, tu sa na zobrazenie stavu domácich spotrebičov používa displej z tekutých kryštálov, ktorý je priamo pripojený k arduino v 4-bitovom režime. Dátové kolíky LCD, menovite RS, EN, D4, D5, D6, D7, sú pripojené k arduino digitálnemu pinu číslo 6, 7, 8, 9, 10, 11. A piny Rx a Tx GSM modulu sú priamo pripojené k Tx a Rx pin Arduina, resp. A modul GSM je napájaný pomocou 12 voltového adaptéra. 5 voltové relé SPDT 3 sa používajú na ovládanie LIGHT, FAN a TV. Relé sú pripojené k pinom arduino číslo 3, 4 a 5 cez budič relé ULN2003 na ovládanie LIGHT, FAN a TV.
Popis kódu
V programovej časti tohto projektu, predovšetkým v programovaní, sme zahrnuli knižnicu pre displej z tekutých kryštálov a potom sme definovali dáta a kontrolné piny pre LCD a domáce spotrebiče.
#include
Po tejto sériovej komunikácii sa inicializuje rýchlosť 9600 bps a dáva smer použitému kolíku.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, VÝSTUP); pinMode (ventilátor, VÝSTUP); pinMode (svetlo, VÝSTUP); pinMode (TV, VÝSTUP);
Na sériový príjem dát sme použili dve funkcie, jedna je Serial.available, ktorá kontroluje, či prichádzajú nejaké sériové dáta a druhá je Serial.read, ktorá číta dáta, ktoré prichádzajú sériovo.
while (Serial.available ()) {char inChar = Serial.read ();
Po sériovom prijatí dát sme ich uložili do reťazca a potom čakali na Enter.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); oneskorenie (1 000); digitalWrite (led, LOW); while (Serial.available ()) {char inChar = Serial.read (); str = inChar; if (inChar == '*') {temp = 1; návrat; }
Keď vstúpi program Enter, začnite porovnávať prijatý reťazec s už definovaným reťazcom a ak sa reťazec zhoduje, vykoná sa relatívna operácia pomocou príslušného príkazu, ktorý je uvedený v kóde.
void check () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print („ZAPNUTÉ“); oneskorenie (200); } else if (! (strncmp (str, "tv off", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("VYPNUTÉ"); oneskorenie (200); }