El telèfon mòbil és un invent revolucionari del segle. Va ser dissenyat principalment per fer i rebre trucades i missatges de text, però s’ha convertit en el món sencer després que el telèfon intel·ligent aparegui. En aquest projecte estem construint un sistema domòtic, on es poden controlar els electrodomèstics mitjançant el simple telèfon basat en GSM, només enviant SMS a través del seu telèfon. En aquest projecte, no es necessita cap telèfon intel·ligent, només el vell telèfon GSM funcionarà per encendre i apagar qualsevol aparell electrònic de casa, des de qualsevol lloc. També podeu consultar alguns projectes de domòtica sense fils aquí: domòtica controlada per IR mitjançant Arduino, domòtica controlada per Bluetooth juntament amb domòtica basada en DTMF, domòtica controlada per PC mitjançant Arduino.
Explicació de treball
En aquest projecte, Arduino s'utilitza per controlar tot el procés. Aquí hem utilitzat la comunicació sense fils GSM per controlar els electrodomèstics. Enviem algunes ordres com ara "# A.light on *", "# A.light off *" i així successivament per controlar els electrodomèstics de CA. Després de rebre les ordres donades per Arduino mitjançant GSM, Arduino envia senyals als relés, per encendre o apagar els electrodomèstics mitjançant un controlador de relé.
Components del circuit:
- Arduino UNO
- Mòdul GSM
- ULN2003
- Relé 5 volts
- Bombeta amb suport
- Connexió de cables
- Taula de pa
- LCD de 16x2
- Font d'alimentació
- Mòbil

Aquí hem utilitzat un prefix a la cadena d'ordres que és "#A". Aquest prefix s’utilitza per identificar que l’ordre principal ve al costat i * al final de la cadena indica que s’ha acabat el missatge.
Quan enviem SMS al mòdul GSM per mòbil, GSM rep aquest SMS i l’envia a Arduino. Ara Arduino llegeix aquest SMS i extreu l'ordre principal de la cadena rebuda i emmagatzema en una variable. Després, Arduino compara aquesta cadena amb una cadena predefinida. Si es produeix una coincidència, Arduino envia senyal al relé mitjançant el controlador del relé per activar i apagar els electrodomèstics. I el resultat relatiu també s’imprimeix a la pantalla LCD de 16x2 mitjançant les ordres adequades.
Aquí, en aquest projecte, hem utilitzat una bombeta de 3 watts de zero per demostrar que indica Fan, Light i TV.
A continuació es mostra la llista de missatges que enviem per SMS per activar i desactivar el ventilador, la llum i el televisor:
|
S. núm. |
Missatge |
Operació |
|
1 |
# A.fan activat * |
Ventilador activat |
|
2 |
# A.fan desactivat * |
Ventilador apagat |
|
3 |
# A. encén * |
Llum encesa |
|
4 |
# A.llum apagat * |
Llum apagada |
|
5 |
# A.tv activat * |
TV encesa |
|
6 |
# A.tv desactivat * |
TV desactivat |
|
7 |
# A.all on * |
Tot activat |
|
8 |
# A.tot apagat * |
Tot apagat |
Mòdul GSM:
El mòdul GSM s'utilitza en molts dispositius de comunicació que es basen en la tecnologia GSM (Sistema global de comunicacions mòbils). S'utilitza per interactuar amb la xarxa GSM mitjançant un ordinador. El mòdul GSM només entén les ordres AT i pot respondre en conseqüència. L'ordre més bàsic és "AT", si el GSM respon bé, funciona bé en cas contrari, respon amb "ERROR". Hi ha diverses ordres AT com ATA per respondre una trucada, ATD per marcar una trucada, AT + CMGR per llegir el missatge, AT + CMGS per enviar els missatges de sms, etc.), com ara "AT + CMGS \ r". Podem utilitzar el mòdul GSM mitjançant aquestes ordres:
ATE0: per fer ressò
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Número de mòbil"
>> Ara podem escriure el nostre missatge
>> Després d'escriure el missatge
Ctrl + Z envia un missatge (26 en decimal).
ENTER = 0x0d a HEX

El SIM900 és un mòdul GSM / GPRS de quatre bandes complet que ofereix un rendiment GSM / GPRS 850/900/1800/1900 MHz per a veu, SMS i dades amb baix consum d’energia.
Descripció del circuit
Les connexions d’aquest circuit domòtic basat en GSM són bastant senzilles, aquí s’utilitza una pantalla de cristall líquid per mostrar l’estat dels electrodomèstics que està directament connectat a arduino en mode de 4 bits. Els pins de dades de LCD, RS, EN, D4, D5, D6, D7, estan connectats al pin digital arduino número 6, 7, 8, 9, 10, 11. I els pins Rx i Tx del mòdul GSM es connecten directament a Tx i Rx pin d'Arduino respectivament. I el mòdul GSM s’alimenta mitjançant un adaptador de 12 volts. Els relés SPDT 3 de 5 volts s’utilitzen per controlar LIGHT, FAN i TV. I els relés estan connectats al pin arduino número 3, 4 i 5 mitjançant el controlador de relés ULN2003 per controlar LIGHT, FAN i TV respectivament.

Descripció del codi
En la programació de part d’aquest projecte, primer en programació, incloem una biblioteca per a la visualització de cristalls líquids i després definim les dades i els pins de control per a LCD i electrodomèstics.
#incloure
Després d'aquesta comunicació serial s'inicialitza a 9600 bps i dóna direcció al pin usat.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (Ventilador, SORTIDA); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Per rebre dades en sèrie hem utilitzat dues funcions, una és Serial.available, que comprova si hi ha dades de sèrie, i una altra és Serial.read, que llegeix les dades que es proporcionen en sèrie.
while (Serial.available ()) {char inChar = Serial.read ();
Després de rebre dades en sèrie, les hem emmagatzemat en una cadena i després esperem Enter.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); retard (1000); digitalWrite (led, BAIX); while (Serial.available ()) {char inChar = Serial.read (); str = inChar; if (inChar == '*') {temp = 1; tornar; }
Quan ve el programa Enter, comenceu a comparar la cadena rebuda amb la cadena ja definida i, si la cadena coincideix, es realitza una operació relativa mitjançant l'ordre adequat que es dóna al codi.
void check () {if (! (strncmp (str, "tv on", 5)))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ACTIVAT"); retard (200); } else if (! (strncmp (str, "tv off", 6)))) {digitalWrite (TV, BAIX); lcd.setCursor (13,1); lcd.print ("DESACTIVAT"); retard (200); }
