Ciao, ho acquistato da poco un modulo gsm sim900.Sono riuscito a mandare sms,ricevere sms e fare delle chiamate.Ora però vorrei che il modulo inviasse un mesaggio di risposta,non sempre allo stesso numero ma al numero che invia il comando.Mi spiego:Se un numero A manda un mesaggio al modulo,il modulo deve rispondere al numero A e non al numero fisso scritto nella normale funzione di invio sms.E' possibile fare ciò? Potete darmi una mano per favore? Grazie mille in anticipo
Benvenuto. ![]()
Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - Megatopic - Arduino Forum
- qui le pinout delle varie schede by xxxPighi: Pinout Diagram - Megatopic - Arduino Forum
- qui una serie di link utili: Link utili elettronica - Megatopic - Arduino Forum
Nessuno sa aiutarmi??
Non conosco il modulo, ma magari se posti il programma (... mi raccomando, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone # ... terzultimo della seconda fila) gli si può dare un'occhiata e capire se è possibile fare quello che chiedi ![]()
Guglielmo
Questo è il semplicissimo programma che ho utlizzato per ricevere un sms.
Non riesco a compilare il programma.Ho provato oltre che scrivere sim900.remoteNumber(remote,20); ho provato con SMS.remoteNumber(remote,20);.Ma non compila,qualche aiuto?
// Example 55.4
#include "SIM900.h"
#include <gsm.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);
char incoming_char=0;
char remote[20];
void setup()
{
Serial.begin(19200); // for serial monitor
SIM900.begin(19200); // for GSM shield
SIM900power(); // turn on shield
delay(20000); // give time to log on to network.
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(100);
}
void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}
void loop()
{
// Now we simply display any text that the GSM shield sends out on the serial monitor
if(SIM900.available() >0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
sim900.remoteNumber(remote,20);
Serial.print(remote);
}
}
Quale errore ti segnala l'IDE? Riportalo magari riusciamo a capire cosa significa.
nid69ita:
Quale errore ti segnala l'IDE? Riportalo magari riusciamo a capire cosa significa.
L'errore che mi da è questo(se la funzione è sim900.remoteNumer(number,20): sim900 was not decleared in this scope
L'errore che mi da è questo(se la funzione è sms.remoteNumer(number,20): sms was not decleared in this scope
Certo che usare il nome di una lib ...
#include SIM900.h
anche come nome di una SoftwareSerial ...
SoftwareSerial SIM900(7, 8);
... non è una grande idea, quindi, per prima cosa, comincia a cambiare nome a quella SoftwareSerial e dagli un nome più consono, esempio "serialGSM900".
poi, dove hai preso la lib SIM900 (includi SIM900.h) ? E dove hai preso la lib gsm (includi gsm.h) ?
Senza i link è difficile avere tutto sottomano per vedere cosa c'è ... e comunque, non vedo istanziata nessuna delle due ... ![]()
Guglielmo