Buongiorno a tutti ,
ho seguente problema con un sketch che tramite comando gsm mi accende secondo la richiesta un led oppure tutti.
Vorrei pero' inserire nello sketch inviando il comando gsm per la accensione/spegnimento dei vari led che mi rotorni con un sms di conferma quale led acceso/spento (es red on -con conferma sms )
Ci sono dei sketch che funzionano con un led in gsm e comando sms.
Ho provato di inserire : es.
bool inviosms = true ;
bool inviosmsred = true;
if (inviosms == true ) {
sms.SendSMS(Mittente, "STATUS:red on,yell off,black of,blue off, green off");
inviosms = false;
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
String textMessage;
// TX CON RX --- RX CON TX-- PORTA 1/2 OPPURE 7/8 SIM 900
const int red = 13;
const int green = 12;
const int blue = 11;
const int black = 10;
const int yell = 9;
SMSGSM sms;
boolean started = false;
void setup()
{
//set led as output
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(black, OUTPUT);
pinMode(yell, OUTPUT);
//by default the leds is off
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
digitalWrite(black, LOW);
digitalWrite(yell, LOW);
Serial.begin(9600);
Serial.println("GSM Shield testing.");
Serial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000);
Serial.println("AT+CNMI=2,2,0,0,0\r"); // AT Command to receive a live SMS
delay(1000);
Serial.println("AT+CMGDA=\r");
delay(1000);
Serial.println("DEL ALL");
if (gsm.begin(4800)) {
Serial.println("nstatus=READY");
started = true;
} else {
Serial.println("\nstats=iDLE");
}
}
char phone_number[20];
char sms_text[100];
void loop(){
if (started) {
char sms_position = sms.IsSMSPresent(SMS_UNREAD);
if (sms_position) {
//Serial.print(SMS position:");++
//Serial.printLn(sms_positione,DEC);++
sms.GetSMS(sms_position, phone_number, sms_text,100);
Serial.println(sms_text);
String msg = String(sms_text);
if (msg.indexOf("yellon") >= 0) {
Serial.println("ON");
digitalWrite(9,HIGH);
}
if (msg.indexOf("yelloff") >= 0) {
Serial.println("OFF");
digitalWrite(9,LOW); }
if (msg.indexOf("blackon") >= 0) {
Serial.println("ON");
digitalWrite(10,HIGH);
}
if (msg.indexOf("blackoff") >= 0) {
Serial.println("OFF");
digitalWrite(10,LOW); }
if (msg.indexOf("blueon") >= 0) {
Serial.println("ON");
digitalWrite(11,HIGH);
}
if (msg.indexOf("blueoff") >= 0) {
Serial.println("OFF");
digitalWrite(11,LOW); }
if (msg.indexOf("greenon") >= 0) {
Serial.println("ON");
digitalWrite(12,HIGH);
}
if (msg.indexOf("greenoff") >= 0) {
Serial.println("OFF");
digitalWrite(12,LOW); }
if (msg.indexOf("redon") >= 0) {
Serial.println("ON");
digitalWrite(13,HIGH);
}
if (msg.indexOf("redoff") >= 0) {
Serial.println("OFF");
digitalWrite(13,LOW); }
if (msg.indexOf("allon") >= 0) {
Serial.println("ON");
digitalWrite(red, HIGH);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
digitalWrite(black, HIGH);
digitalWrite(yell, HIGH);
}
if (msg.indexOf("alloff") >= 0) {
Serial.println("OFF");
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
digitalWrite(black, LOW);
digitalWrite(yell, LOW);
}
}
}
sketch funziona perfettamente in gsm
Grazie a tutti per il aiuto