• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino UNO + SIM900A
#1
Brick 
Cześć, pracuje nad małym projektem alarmu sterowanego telefonem.
Alarm ma się składać z:
- Arduino uno
- SIM900A
- kontaktron na drzwiach
- przekaźnik SSR do źródła światła.

Założenie jest takie:
1. Po starcie systemu przychodzi sms z info o starcie.
2. Arduino czeka na polecenie włączenia alarmu.
3. Jak przyjdzie sms "ALARM ON" alarm ma się aktywować
4. Alarm jest aktywny i jak ktoś otworzy drzwi ma się zaświecić światło i przyjść sms o wejściu.
5. W międzyczasie jak alarm jest aktywny na sms "STATUS" przychodzi aktualny stan alarmu.
6. Można też zdalnie sms "ALARM OFF" dezaktywować alarm.

Trochę kodu już napisałem ale utknąłem.
Nie do końca wiem jak ogarnąć żeby w czasie aktywacji alarmu była możliwość odpytania statusu lub dezaktywacji alarmu. Jak wrzucę if w sekcje w której aktywuje alarm to z niej nie wyjdzie wiec nie będzie można dezaktywować alarm.
Nie wiem czy to dobrze wytłumaczyłem Smile
Konstruktywna krytyka mile widziana Smile

Dodatkowo myślałem jeszcze żeby można było sms sprawdzać zasięg (żeby przychodził w sms zwrotnym) wiem że jest komenda AT (AT+CSQ) ale nie wiem jak zrobić żeby po wysyłce sms "ZASIEG" zwracany był wynik na sms.

Tutaj moje dotychczasowe wypociny jak na razie wszytko działa:
Kod:
#include <SoftwareSerial.h>
SoftwareSerial SIM900A(2,3);                              //piny na których jest podłączona komunikacja z modułem GSM

String textMessage;                                       //deklaracja zmiennej do sms
String alarmState = "OFF";                                //zmienna do przechowywania statusu alarmu
const int relay = 12;                                     //do pinu 12 podpięty przekaźnik
String phone = "XXXXXXXXX";                               //zmienna z numerem tel do powiadomień

void setup() {
  pinMode(relay, OUTPUT);                                 // ustawienie pinu 12 jako wyjście
  digitalWrite(relay, LOW);                               // ustawienie poziomu niskiego

Serial.begin(9600);

while(!Serial);
SIM900A.begin(9600);
delay(5000);
sendSMS(phone,"START SYSTEMU");
}

void sendSMS(String phone, String message)
{
  SIM900A.print("AT+CMGF=1\r\n");                        // komenda AT do wysyłania SMS
  delay(1000);
  SIM900A.println("AT+CMGS=\"+48" + phone + "\"\r\n");  // numer telefonu w formacie +48xxxxxxxxx
  delay(1000);
  SIM900A.println(message);                             // wiadomość
  delay(1000);
  SIM900A.println((char)26);                            // komenda AT z końcem linii a ^Z, ASCII code 26
  delay(1000);
  SIM900A.println();
  delay(100);
}


void loop(){
  if(SIM900A.available()>0){
    textMessage = SIM900A.readString();
    Serial.print(textMessage);   
    delay(10);
  }
  if(textMessage.indexOf("ALARM ON")>=0){  
    digitalWrite(relay, HIGH);
    alarmState = "ON";
    Serial.println("ALARM AKTYWOWANY"); 
    textMessage = "";  
  }
  if(textMessage.indexOf("ALARM OFF")>=0){  
    digitalWrite(relay, LOW);
    alarmState = "OFF";
    Serial.println("ALARM DEZAKTYWOWANY");
    textMessage = "";
  }
  if(textMessage.indexOf("STATUS")>=0){
    String message = "ALARM JEST " + alarmState;
    sendSMS(phone,message);
    Serial.println("Status ALARMU");
    textMessage = "";
  }
}
 
Odpowiedź
  


Wiadomości w tym wątku
Arduino UNO + SIM900A - przez hugobossbb - 11-03-2020, 21:54
RE: Arduino UNO + SIM900A - przez MERASerwis - 12-03-2020, 11:31
RE: Arduino UNO + SIM900A - przez hugobossbb - 12-03-2020, 13:21
RE: Arduino UNO + SIM900A - przez MERASerwis - 12-03-2020, 14:17
RE: Arduino UNO + SIM900A - przez hugobossbb - 15-03-2020, 16:14
RE: Arduino UNO + SIM900A - przez Agregacik - 15-03-2020, 19:13
RE: Arduino UNO + SIM900A - przez hugobossbb - 18-03-2020, 15:59

Skocz do:


Przeglądający: 1 gości