modulo sim 900

ciao, ho un modulo sim900 di cui metto qui le foto:

quello che vorrei fare, se fattibile, è questo:
collegare in serie alla mia sirena di allarme (un antifurto comelit) un relè, che è collegato poi al modulo sim900
quando l'antifurto suona il relè si chiude ed il modulo della sim900 riceve il segnale alto, e fa partire il messaggio / chiamata.
è fattibile?
mi dareste qualche dritta su come procedere?

un'ultima curiosità, per fare ciò, dovrei acquistare una sim apposita, ma ho una sim con un piano dati che non uso praticamente mai....potrei usare questa sim per inviare un messaggio "via internet" (gprs)
grazie

...ho pensato e cercato un po' come fare....
se usassi la libreria:

e collegassi il "contatto pulito" della mia sirena di allarme al pin 11 di arduino uno

con questo codice sarei in grado di effettuare la chiamata:

   #include "SIM900.h"
    #include <SoftwareSerial.h>
    #include "call.h"
    CallGSM call;
    char number[]="328XXX"; //inserisco qui il numero1 da chiamare
    int value=0;
    int pin=11; // collego il contatto pulito della sirena al pin11
   float threshold=0.9;
 
void setup()
    {
    Serial.begin(9600);
    lpf_val =analogRead(pin);
    if (gsm.begin(2400))
      Serial.println("\nstatus=READY");
    else Serial.println("\nstatus=IDLE");
    };

    void loop()
    {
    value=analogRead(pin);
    lpf_val = lpf_val *threshold+(1-threshold)*value;

    Serial.println(value);
     if(value<50){
      Serial.println("Allarme");
      if(call.CallStatus()!= CALL_ACTIVE_VOICE){
        Serial.println("Chiamo");
        call.Call(number);
      }

      else
         Serial.println("Chiamata in corso");
     }
     delay(1000);
    };

pensate che possa funzionare?
ho pensato di usare una lettura analogica per evitare falsi allarmi...
oppure mi consigliate di utilizzare un ditalread semplicemente vedendo se il segnale è high o low ?

se volessi chiamare non solo un numero, ma più di uno, come dovrei fare?
immagino creare un'altra variabile char con il numero, ma poi come gestisco due chiamate? dovrei fare una pausa sulla prima chiamata e poi inviare la seconda ecc ecc....
mi dareste una mano?

... intanto ... sicuro che il segnale che vai a prelevare da portare al pin 11 sia di livelli TTL ? ... di solito tutti i segnali degli antifurto lavorano a livelli più alti (12V) ::slight_smile:

Guglielmo

ciao, grazie della risposta
si hai ragione, gli antifurti funzionano a 12v ma posso abbassare la soglia con un circuito in modo da usare i 5v, giusto?

Si, puoi fare un parttore resistivo in modo da ridurre i 12V a 5V (… anche un po meno per sicurezza) e mandari il tutto su un pin digitale di Arduino (… lascia stare l’analogico che non ti serve a nulla).

Per il resto … tutto da provare … specie se usi una libreria fatta da altri e non hai tu il controllo dei comandi AT che vengono inviati.

Guglielmo

ok...allora farò come dici...
lascio perdere l'analogico ed uso il digitale

ehmmm se non seguo la libreria...che altro potrei fare?
in rete anche cercando, ci ho perso ore..ma non ho trovato nessuna applicazione simile...
eppure usarla come "combinatore" telefonico nel caso di un segnale in ingresso alto o basso...mi sembrava una delle applicazioni che credevo essere la più comune...
grazie!

megamarco83:
... ehmmm se non seguo la libreria...che altro potrei fare?

Hai due possibilità ...

  1. strada più facile - usi una libreria e attraverso le sue chiamate gestisci il modulo. Studiati bene tutte le classi ed i metodi che la libreria che usi mette a disposizione,

  2. strada più difficile - ti scarichi il manuale dei comandi AT del SIM900, te li studi uno per uno e li applichi tu direttamente.

Nella soluzione 1. usi quello che qualcuno ha scritto e con la sua implementazione, nella 2. l'implementazione (... e l'ottimizzazione) la fai tu.

Tutto però dipende da quanta esperienza di programmazione su Arduino hai :wink:

Guglielmo

Ciao Guglielmo, grazie per le risposte!
purtroppo la mia abilità in programmazione con arduino è davvero base...ecco perché cercavo qualche aiuto qui per farla funzionare :slight_smile:

Ok, allora l'unica è usare una buona libreria e provare i vari metodi per l'invio di messaggi ...

Guglielmo