https://forum.arduino.cc/index.php?topic=329604.0
Διάβασε αυτό το νήμα.
Δεύτερον, δοκίμασε αυτό εδώ, είναι πολύ γρήγορο χωρίς πολλή σκέψη, τουλάχιστον να δεις αν κάνει κάτι:
Κώδικας:
#include <Wire.h>
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
//===========================================
#define relay_1 5//DIGITAL PIN D5
#define relay_2 6//DIGITAL PIN D6
#define relay_3 7//DIGITAL PIN D7
#define relay_4 8//DIGITAL PIN D8
#define A6_POWER_PIN 9//DIGITAL PIN D9 for power up modem
//===========================================
SMSGSM sms; //instance for the modem
//===========================================
boolean started = false;
char telnumber_1[] = "+306999999999"; //ΕΔΩ ΤΟΝ ΑΡΙΘΜΟ ΤΗΛΕΦΩΝΟΥ ΣΟΥ
char pos;
char *p;
char phone_number[20]; // array for the phone number string
char message[250];
int i = 0;
//===========================================
void setup()
{
Wire.begin();
Serial.begin(9600);
pinMode(relay_1, OUTPUT);
pinMode(relay_2, OUTPUT);
pinMode(relay_3, OUTPUT);
pinMode(relay_4, OUTPUT);
pinMode(A6_POWER_PIN, OUTPUT);
digitalWrite(relay_1, LOW);
digitalWrite(relay_2, LOW);
digitalWrite(relay_3, LOW);
digitalWrite(relay_4, LOW);
digitalWrite(A6_POWER_PIN, LOW);
A6Power();
if (gsm.begin(9600))
{
started=true;
}
}
//===========================================
void loop()
{
if(started)
{
pos = sms.IsSMSPresent(SMS_UNREAD);
if((int)pos > 0 && (int)pos <= 20)
{
sms.GetSMS(pos, phone_number, message, 100);
if(strcmp(phone_number,telnumber_1) == 0)// ΔΕΧΕΤΑΙ ΜΟΝΟ ΑΠΟ ΤΟ ΔΙΚΟ ΣΟΥ ΝΟΥΜΕΡΟ ΤΗΛΕΦΩΝΟΥ
{
chooseRelayOutput();
}
pos = sms.IsSMSPresent(SMS_READ);
}
delay(1000);
}
}
//===========================================
void A6Power()
{
digitalWrite(A6_POWER_PIN, LOW);
delay(1000);
digitalWrite(A6_POWER_PIN, HIGH);
delay(2000);
digitalWrite(A6_POWER_PIN, LOW);
}
//===========================================
void chooseRelayOutput()
{
if(p == strstr(message,"RE1 ON"))//Πρέπει να στείλεις μήνυμα με το περιεχόμενο "RE1 ON"
{
digitalWrite(relay_1, HIGH);
}
else if(p == strstr(message,"RE1 OFF"))
{
digitalWrite(relay_1, LOW);
}
else if(p == strstr(message,"RE2 ON"))
{
digitalWrite(relay_2, HIGH);
}
else if(p == strstr(message,"RE2 OFF"))
{
digitalWrite(relay_2, LOW);
}
else if(p == strstr(message,"RE3 ON"))
{
digitalWrite(relay_3, HIGH);
}
else if(p == strstr(message,"RE3 OFF"))
{
digitalWrite(relay_3, LOW);
}
else if(p == strstr(message,"RE4 ON"))
{
digitalWrite(relay_4, HIGH);
}
else if(p == strstr(message,"RE4 OFF"))
{
digitalWrite(relay_4, LOW);
}
sms.DeleteSMS((int)pos);
}
//===========================================
//===========================================
//===========================================
//===========================================
Οι βιβλιοθήκες συνημμένες.