Ang mobile phone ay isang rebolusyonaryong imbensyon ng daang siglo. Pangunahin itong idinisenyo para sa pagtawag at pagtanggap ng mga tawag at text message, ngunit ito ay naging buong mundo matapos ang larawan ng Smart phone. Sa proyektong ito ay nagtatayo kami ng isang sistema ng automation ng bahay, kung saan makokontrol ng isang tao ang mga gamit sa bahay, gamit ang simpleng teleponong nakabatay sa GSM, sa pamamagitan lamang ng pagpapadala ng SMS sa pamamagitan ng kanyang telepono. Sa proyektong ito, hindi kinakailangan ng Smart phone, ang lumang GSM phone lamang ang gagana upang mag-ON at MA-OFF ang anumang mga elektronikong gamit sa bahay, mula sa kahit saan. Maaari mo ring suriin ang ilan pang mga proyekto sa Wireless Home Automation dito: IR Remote Controlled Home Automation na gumagamit ng Arduino, Bluetooth Controlled Home Automation kasama ang DTMF Base Home Automation, PC Controlled Home Automation na gumagamit ng Arduino.
Paggawa ng Paliwanag
Sa proyektong ito, ang Arduino ay ginagamit para sa pagkontrol ng buong proseso. Ginamit namin dito ang GSM wireless na komunikasyon para sa pagkontrol sa mga gamit sa bahay. Nagpadala kami ng ilang mga utos tulad ng "# A. light on *", "# A. light off *" at iba pa para sa pagkontrol sa mga appliances sa bahay ng AC. Matapos matanggap ang ibinigay na mga utos ng Arduino sa pamamagitan ng GSM, ang Arduino ay nagpapadala ng signal sa mga relay, upang buksan o I-OFF ang mga gamit sa bahay gamit ang isang relay driver.
Mga Bahagi ng Circuit:
- Arduino UNO
- Module ng GSM
- ULN2003
- Relay ng 5 volt
- Bombilya sa may hawak
- Mga kumokonekta na mga wire
- Bread board
- 16x2 LCD
- Supply ng kuryente
- Cellphone
Dito namin ginamit ang isang unlapi sa command string na "#A.". Ginamit ang unlapi na ito upang makilala na ang pangunahing utos ay darating sa tabi nito at * sa dulo ng string ay ipinapahiwatig na ang mensahe ay natapos na.
Kapag nagpapadala kami ng SMS sa module ng GSM sa pamamagitan ng Mobile, pagkatapos ay natatanggap ng GSM ang SMS na iyon at ipinapadala ito sa Arduino. Ngayon binabasa ni Arduino ang SMS na ito at kinukuha ang pangunahing utos mula sa natanggap na string at mga tindahan sa isang variable. Pagkatapos nito, ihambing ng Arduino ang string na ito sa paunang natukoy na string. Kung naganap ang laban ay nagpadala si Arduino ng senyas upang i-relay sa pamamagitan ng relay driver para sa pag-ON at pag-OFF ng mga appliances sa bahay. At ang kamag-anak na resulta ay naka-print din sa 16x2 LCD sa pamamagitan ng paggamit ng naaangkop na mga utos.
Dito sa proyektong ito nagamit namin ang 3 zero watt bombilya para sa pagpapakita na nagpapahiwatig ng Fan, Light at TV.
Nasa ibaba ang listahan ng mga mensahe na ipinapadala namin sa pamamagitan ng SMS, upang buksan at I-off ang Fan, Light at TV:
S.no. |
Mensahe |
Pagpapatakbo |
1 |
# A.fan on * |
Fan ON |
2 |
# A.fan off * |
Fan OFF |
3 |
# A. ilaw sa * |
Magaan ang ilaw |
4 |
# A. mapatay * |
Magaan na OFF |
5 |
# A.tv sa * |
TV ON |
6 |
# A.tv off * |
TV Off |
7 |
# A.lahat sa * |
NAKA-ON lang |
8 |
# A.papatay * |
Lahat OFF |
Module ng GSM:
Ginagamit ang module ng GSM sa maraming mga aparato sa komunikasyon na nakabatay sa teknolohiyang GSM (Global System for Mobile Communications). Ginagamit ito upang makipag-ugnay sa GSM network gamit ang isang computer. Nauunawaan lamang ng module ng GSM ang mga utos ng AT, at maaaring tumugon nang naaayon. Ang pinaka-pangunahing utos ay "AT", kung ang GSM ay tumutugon sa OK pagkatapos ito ay gumagana nang maayos kung hindi man tumugon ito sa "ERROR". Mayroong iba't ibang mga utos ng AT tulad ng ATA para sa pagsagot sa isang tawag, ATD upang i-dial ang isang tawag, AT + CMGR upang basahin ang mensahe, SA + CMGS upang ipadala ang mga sms atbp. Ang mga utos ng AT ay dapat sundin ng pagbalik ng Car ie ie r (0D sa hex), tulad ng "AT + CMGS \ r". Maaari naming gamitin ang module ng GSM gamit ang mga utos na ito:
ATE0 - Para sa echo off
SA + CNMI = 2,2,0,0,0
ATD
SA + CMGF = 1
SA + CMGS = "Numero ng Mobile"
>> Ngayon ay maaari naming isulat ang aming mensahe
>> Pagkatapos ng pagsusulat ng mensahe
Ang Ctrl + Z ay magpadala ng utos ng mensahe (26 sa decimal).
ENTER = 0x0d sa HEX
Ang SIM900 ay isang kumpletong Quad-band GSM / GPRS Module na naghahatid ng GSM / GPRS 850/900/1800 / 1900MHz na pagganap para sa boses, SMS at Data na may mababang paggamit ng kuryente.
Paglalarawan ng Circuit
Ang mga koneksyon ng GSM based home automation circuit na ito ay medyo simple, dito ginagamit ang isang likidong kristal na display para sa pagpapakita ng katayuan ng mga gamit sa bahay na direktang konektado sa arduino sa 4-bit mode. Ang mga data pin ng LCD na katulad ng RS, EN, D4, D5, D6, D7 ay konektado sa arduino digital pin number 6, 7, 8, 9, 10, 11. At ang Rx at Tx pin ng GSM module ay direktang konektado sa Tx at Rx pin ng Arduino ayon sa pagkakabanggit. At ang module ng GSM ay pinalakas ng paggamit ng isang 12 volt adapter. Ang 5 volt SPDT 3 relay ay ginagamit para sa pagkontrol sa LIGHT, FAN at TV. At ang mga relay ay konektado sa arduino pin number 3, 4 at 5 sa pamamagitan ng relay driver na ULN2003 para sa pagkontrol sa LIGHT, FAN at TV ayon sa pagkakabanggit.
Paglalarawan ng Code
Sa bahagi ng pagprograma ng proyektong ito, una sa lahat sa pag-program ay nagsasama kami ng silid-aklatan para sa likidong kristal na pagpapakita at pagkatapos ay tinutukoy namin ang data at mga control pin para sa LCD at mga gamit sa bahay.
# isama
Matapos ang serial na komunikasyon na ito ay nasimulan sa 9600 bps at nagbibigay ng direksyon sa ginamit na pin.
walang bisa ang pag-set up () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (Fan, OUTPUT); pinMode (Banayad, OUTPUT); pinMode (TV, OUTPUT);
Para sa pagtanggap ng data nang seralyal ginamit namin ang dalawang pag-andar ang isa ay Serial.available kung aling mga tseke kung darating ang anumang serial data at ang isa pa ay Serial.read na nagbabasa ng datos na darating nang seryal.
habang (Serial.available ()) {char inChar = Serial.read ();
Matapos makatanggap ng data nang serial naiimbak namin ito sa isang string at pagkatapos ay naghihintay para sa Enter.
void serialEvent () {habang (Serial.available ()) {kung (Serial.find ("# A.")) {digitalWrite (led, HIGH); pagkaantala (1000); digitalWrite (led, LOW); habang (Serial.available ()) {char inChar = Serial.read (); str = inChar; kung (inChar == '*') {temp = 1; bumalik; }
Kapag pumasok ang programa simulan upang ihambing ang natanggap na string na may tinukoy na string at kung ang string ay tumugma sa gayon ang isang kamag-anak na operasyon ay ginaganap sa pamamagitan ng paggamit ng naaangkop na utos na ibinigay sa code.
walang bisa ang tsek () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ON"); pagkaantala (200); } iba pa kung (! (strncmp (str, "tv off", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); pagkaantala (200); }