Bonsoir
je suis sur un projet d'automatisation par SMS via le shield GSM/GPRS de chez OPEN ELECTRONICS monté sur une carte Arduino
je commande une pompe via un SMS
voici le code
pas de probleme j'envoie le SMS Pompeon la led s'allume et Pompeoff la led s'éteind
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" #include "gsm.h" #include "string.h" SMSGSM sms; boolean started=false; char smsbuffer[160]; char n_in[20]; char n_ref[20] = "3367xxxxxxx"; char msg[1]; char pompe_on[160] = "Pompeon"; char pompe_off[160] = "Pompeoff"; // fin init void setup() { pinMode(13, OUTPUT); //Serial connection. Serial.begin(9600); Serial.println("GSM Shield testing."); if (gsm.begin(9600)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ Serial.println("mise en ligne"); Serial.println("AT+CMEE=2"); gsm.SimpleWriteln("AT+CMEE=2"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CPIN ?"); gsm.SimpleWriteln("AT+CPIN ?"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CPIN=2434"); gsm.SimpleWriteln("AT+CPIN=xxxx"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CLIP=1"); gsm.SimpleWriteln("AT+CLIP=1"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CSCA ?"); gsm.SimpleWriteln("AT+CSCA ?"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CMGF=1"); gsm.SimpleWriteln("AT+CMGF=1"); delay(5000); gsm.WhileSimpleRead(); Serial.println("INITIALISATION POMPE"); digitalWrite(13, LOW); } }; void loop() { if(started) { //Read if there are messages on SIM card and print them. Serial.println("lecture sms"); if(gsm.readSMS(smsbuffer, 160, n_in, 20)) { Serial.println(n_in); Serial.println(smsbuffer); // // véfication téléphone commande // if (memcmp(n_in,n_ref,11)==0) { Serial.println(n_in); Serial.println(smsbuffer); // // Test message commande de ponpe // if (memcmp(smsbuffer,pompe_on,7)==0) { Serial.println("POMPE ON"); digitalWrite(13, HIGH); } if (memcmp(smsbuffer,pompe_off,7)==0) { Serial.println("POMPE OFF"); digitalWrite(13, LOW); } } delay(1000); } } };
j'ajoute une commande de vanne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" #include "gsm.h" #include "string.h" SMSGSM sms; boolean started=false; char smsbuffer[160]; char n_in[20]; char n_ref[20] = "3367xxxxxxxxx"; char msg[1]; char pompe_on[160] = "Pompeon"; char pompe_off[160] = "Pompeoff"; char vanne_on[160] = "Vanneon"; char vanne_off[160] = "Vanneoff"; // fin init void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); //Serial connection. Serial.begin(9600); Serial.println("GSM Shield testing."); if (gsm.begin(9600)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ Serial.println("mise en ligne"); Serial.println("AT+CMEE=2"); gsm.SimpleWriteln("AT+CMEE=2"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CPIN ?"); gsm.SimpleWriteln("AT+CPIN ?"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CPIN=2434"); gsm.SimpleWriteln("AT+CPIN=xxxx"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CLIP=1"); gsm.SimpleWriteln("AT+CLIP=1"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CSCA ?"); gsm.SimpleWriteln("AT+CSCA ?"); delay(5000); gsm.WhileSimpleRead(); Serial.println("AT+CMGF=1"); gsm.SimpleWriteln("AT+CMGF=1"); delay(5000); gsm.WhileSimpleRead(); Serial.println("INITIALISATION POMPE"); digitalWrite(13, LOW); } }; void loop() { if(started) { //Read if there are messages on SIM card and print them. Serial.println("lecture sms"); if(gsm.readSMS(smsbuffer, 160, n_in, 20)) { Serial.println(n_in); Serial.println(smsbuffer); // // véfication téléphone commande // if (memcmp(n_in,n_ref,11)==0) { Serial.println(n_in); Serial.println(smsbuffer); // // Test message commande de ponpe // if (memcmp(smsbuffer,pompe_on,7)==0) { Serial.println("POMPE ON"); digitalWrite(13, HIGH); } if (memcmp(smsbuffer,pompe_off,7)==0) { Serial.println("POMPE OFF"); digitalWrite(13, LOW); } if (memcmp(smsbuffer,vanne_on,7)==0) { Serial.println("VANNE ON"); digitalWrite(12, HIGH); } if (memcmp(smsbuffer,vanne_off,7)==0) { Serial.println("VANNE OFF"); digitalWrite(12, LOW); } } delay(1000); } } };
je fais un copier/coller je change les variables et plus rien ne fonctionne
j'ai changé les textes de commande
j'ai changé les Pin de commande
je dois faire une erreur
mais ou ?
je pense que cela doit être une erreur de débutant que je suis.
Merci par avance
Partager