Mobilní telefon je revoluční vynález století. Byl primárně určen k uskutečňování a přijímání hovorů a textových zpráv, ale po objevení chytrého telefonu se stal celým světem. V tomto projektu budujeme systém domácí automatizace, kde lze ovládat domácí spotřebiče pomocí jednoduchého telefonu založeného na GSM pouhým zasíláním SMS prostřednictvím jeho telefonu. V tomto projektu není potřeba žádný chytrý telefon, pouze starý telefon GSM bude pracovat na zapnutí a vypnutí jakéhokoli domácího elektronického zařízení odkudkoli. Zde můžete také zkontrolovat další projekty bezdrátové domácí automatizace: IR dálkově ovládaná domácí automatizace pomocí Arduina, Bluetooth řízená domácí automatizace spolu s DTMF domácí automatizací, PC řízená domácí automatizace pomocí Arduina.
Pracovní vysvětlení
V tomto projektu se Arduino používá pro řízení celého procesu. Zde jsme použili bezdrátovou komunikaci GSM pro ovládání domácích spotřebičů. Odesíláme některé příkazy jako „# A.light on *“, „# A.light off *“ atd. Pro ovládání střídavých domácích spotřebičů. Po přijetí zadaných příkazů Arduino přes GSM, Arduino posílá signál do relé, pro zapnutí nebo vypnutí domácích spotřebičů pomocí ovladače relé.
Součásti obvodu:
- Arduino UNO
- GSM modul
- ULN2003
- Relé 5 voltů
- Žárovka s držákem
- Připojovací vodiče
- Chlebová deska
- 16x2 LCD
- Zdroj napájení
- Mobilní telefon
Zde jsme v příkazovém řetězci použili předponu „#A“. Tato předpona slouží k identifikaci, že hlavní příkaz přichází vedle ní, a * na konci řetězce označuje, že zpráva byla ukončena.
Když pošleme SMS na GSM modul mobilem, GSM přijme tuto SMS a pošle ji Arduinu. Nyní Arduino načte tuto SMS a extrahuje hlavní příkaz z přijatého řetězce a uloží jej do proměnné. Poté Arduino porovná tento řetězec s předdefinovaným řetězcem. Pokud došlo ke shodě, Arduino vyšle signál do relé pomocí ovladače relé pro zapnutí a vypnutí domácích spotřebičů. A relativní výsledek se také tiskne na 16x2 LCD pomocí příslušných příkazů.
Zde v tomto projektu jsme pro demonstraci použili žárovku s nulovým wattem, která označuje ventilátor, světlo a televizi.
Níže je uveden seznam zpráv, které posíláme prostřednictvím SMS, abychom zapnuli a vypnuli ventilátor, světlo a televizi:
S.no. |
Zpráva |
Úkon |
1 |
# A.fan na * |
Ventilátor zapnutý |
2 |
# A.fan off * |
VYPNUTÝ ventilátor |
3 |
# A. světlo na * |
Rozsvítit |
4 |
# A. světlo vypnuto * |
Zhasnout |
5 |
# A.tv na * |
TV ZAPNUTÁ |
6 |
# A.tv vypnuto * |
TV vypnutá |
7 |
# A. vše na * |
Vše ZAPNUTO |
8 |
# A. vše vypnuto * |
Vše VYPNUTO |
GSM modul:
GSM modul se používá v mnoha komunikačních zařízeních založených na technologii GSM (Global System for Mobile Communications). Používá se k interakci se sítí GSM pomocí počítače. GSM modul rozumí pouze AT příkazům a může podle toho reagovat. Nejzákladnějším příkazem je „AT“, pokud je GSM v pořádku, pak funguje dobře, jinak odpovídá „CHYBOU“. Existují různé AT příkazy jako ATA pro přijetí hovoru, ATD pro vytočení hovoru, AT + CMGR pro přečtení zprávy, AT + CMGS pro odeslání SMS atd. Po AT příkazech by měl následovat Carriage return tj. \ 0 (0D v hex), jako „AT + CMGS“. Modul GSM můžeme použít pomocí těchto příkazů:
ATE0 - Pro vypnutou ozvěnu
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = „Číslo mobilního telefonu“
>> Nyní můžeme napsat naši zprávu
>> Po napsání zprávy
Ctrl + Z příkaz k odeslání zprávy (26 v desítkové soustavě).
ENTER = 0x0d v HEX
SIM900 je kompletní Quad-band GSM / GPRS modul, který přináší GSM / GPRS 850/900/1800 / 1900MHz výkon pro hlasová volání, SMS a data s nízkou spotřebou energie.
Popis obvodu
Připojení tohoto obvodu domácí automatizace založené na GSM je poměrně jednoduché, zde se pro zobrazení stavu domácích spotřebičů používá displej z tekutých krystalů, který je přímo připojen k arduino ve 4bitovém režimu. Datové piny LCD, jmenovitě RS, EN, D4, D5, D6, D7, jsou připojeny k digitálnímu pinu arduino číslo 6, 7, 8, 9, 10, 11. A piny Rx a Tx GSM modulu jsou přímo připojeny k Tx a Rx pin Arduina, resp. A modul GSM je napájen pomocí 12voltového adaptéru. 5 voltová relé SPDT 3 se používají pro ovládání LIGHT, FAN a TV. A relé jsou připojena k pinům Arduino číslo 3, 4 a 5 prostřednictvím reléového ovladače ULN2003 pro ovládání LIGHT, FAN a TV.
Popis kódu
V programovací části tohoto projektu, nejprve v programování, zahrnujeme knihovnu pro displej z tekutých krystalů a poté definujeme datové a kontrolní piny pro LCD a domácí spotřebiče.
#zahrnout
Poté je tato sériová komunikace inicializována na 9600 b / s a udává směr použitému kolíku.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (ventilátor, VÝSTUP); pinMode (Light, OUTPUT); pinMode (TV, VÝSTUP);
Pro sériový příjem dat jsme použili dvě funkce, jedna je Serial.available, která kontroluje, zda přicházejí sériová data, a druhá je Serial.read, která čte data, která přicházejí sériově.
while (Serial.available ()) {char inChar = Serial.read ();
Po sériovém přijetí dat jsme je uložili do řetězce a poté čekali na Enter.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); zpoždění (1000); digitalWrite (led, LOW); while (Serial.available ()) {char inChar = Serial.read (); str = inChar; if (inChar == '*') {temp = 1; vrátit se; }
Když program Enter přijde, začněte porovnávat přijatý řetězec s již definovaným řetězcem a pokud se řetězec shoduje, provede se relativní operace pomocí příslušného příkazu, který je uveden v kódu.
void check () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print („ZAPNUTO“); zpoždění (200); } else if (! (strncmp (str, "tv off", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("VYPNUTO"); zpoždění (200); }