Da wäre es zur Standortbestimmung sinnvoll, zu wissen, wie Du es angeschlossen hast und auch Deinen Sketch würden wir gern sehen. Setze diesen bitte in Codetags (<>-Button oben links im Forumseditor).
Für die Mobilisten der Link.
Gruß Tommy
Jo, gerne:
Ich habe jedes mal GND mit GND verbunden und VCC + POWER (GA6) mit 5V verbunden, sowie den SIM Pin deaktiviert, wenn es möglich ist, dann würde ich diesen später allerdings wieder einstellen.
- Versuch:
RX (des Moduls) -> TX des Arduinos
TX (des Moduls) -> RX des Arduinos.
Dort denke ich aber, geht es nur mit dem Arduino shield.
Code:
/*
SMS sender
This sketch, for the Arduino GSM shield,sends an SMS message
you enter in the serial monitor. Connect your Arduino with the
GSM shield and SIM card, open the serial monitor, and wait for
the "READY" message to appear in the monitor. Next, type a
message to send and press "return". Make sure the serial
monitor is set to send a newline when you press return.
Circuit:
* GSM shield
* SIM card that can send SMS
created 25 Feb 2012
by Tom Igoe
This example is in the public domain.
http://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS
*/
// Include the GSM library
#include <GSM.h>
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;
void setup() {
// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("SMS Messages Sender");
// connection state
boolean notConnected = true;
// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
notConnected = false;
} else {
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
}
void loop() {
Serial.print("Enter a mobile number: ");
char remoteNum[20]; // telephone number to send sms
readSerial(remoteNum);
Serial.println(remoteNum);
// sms text
Serial.print("Now, enter SMS content: ");
char txtMsg[200];
readSerial(txtMsg);
Serial.println("SENDING");
Serial.println();
Serial.println("Message:");
Serial.println(txtMsg);
// send the message
sms.beginSMS(remoteNum);
sms.print(txtMsg);
sms.endSMS();
Serial.println("\nCOMPLETE!\n");
}
/*
Read input serial
*/
int readSerial(char result[]) {
int i = 0;
while (1) {
while (Serial.available() > 0) {
char inChar = Serial.read();
if (inChar == '\n') {
result[i] = '\0';
Serial.flush();
return 0;
}
if (inChar != '\r') {
result[i] = inChar;
i++;
}
}
}
}
Versuch 2:
TX (des Moduls) -> Pin4 des Arduinos
RX (des Moduls) -> Pin2 des Arduinos
Code:
// SoftwareSerial lib allows to use digital pins for serial connection
#include <SoftwareSerial.h>
// Tx of A6 linked to pin 4
const int pinRxNano = 4;
// Rx of A6 linked to pin 2
const int pinTxNano = 2;
//Enter here the phone number
const String phoneNumber= "+491 MEINE TELEFONNUMMER 2";
const String messageInit = "A6 ready";
//Create serial connection on the pin
SoftwareSerial A6GSM(pinRxNano, pinTxNano);
//Function waiting for "OK", used for various purposes
void Response(){
int a = 0;
Serial.println();
while(1){
if(A6GSM.available()){
String dataFromA6 =A6GSM.readString();
dataFromA6.trim();
Serial.println(dataFromA6);
a++;
if(dataFromA6.indexOf("OK")>0){break;}
}
if(a>500){a=0;break;}
delay(200);
}
}
//Function used to send "AT" to A6 until it answers with "OK"
void startAT(){
int nbAT = 0;
while(1){
if (nbAT==0){A6GSM.println("AT");Serial.print(".");}
if(A6GSM.available()){
String dataFromA6 =A6GSM.readString();
dataFromA6.trim();
Serial.println(dataFromA6);
if(dataFromA6.indexOf("OK")>0){break;}
}
delay(200);
nbAT++;
if(nbAT++>10){nbAT=0;}
}
}
//Function used to send a sms
void envoieSMS(String numeroEnvoi, String messageEnvoi) {
delay(200);
Serial.println("Selection format message SMS");
A6GSM.println("AT+CMGF=1");
Response();
delay(200);
Serial.println("Envoi message SMS");
A6GSM.print("AT+CMGS=\"");
A6GSM.print(numeroEnvoi);
A6GSM.println("\"");
delay(200);
A6GSM.print(messageEnvoi);
delay(200);
A6GSM.println (char(26));
Response();
}
void setup() {
//GSM serial connection
A6GSM.begin(9600);
//Usual serial connection to display on console
Serial.begin(9600);
delay(200);
Serial.println("Init");
//AT
startAT();
envoieSMS(phoneNumber,messageInit);
}
void loop() {
}
Ich hatte noch einen ziemlich ähnlichen Code, wie den obigen ausprobiert, doch der ging auch nicht und ich finde diesen momentan nicht mehr.
Ich hoffe, dass das erst einmal ausreicht, bzw wüsste ich nicht, was ich noch schreiben soll.
VG, Finn.