Hallo,
hier ist eigentlich eine ganz dumme/einfache Frage, aber ich finde im Internet nichts über diese eine Befehlszeile, die ich benötige.
Ich würde gerne diesen SMS Sketch von einem TC35-Modul auf automatischen Versand umprogrammieren.
Im vorhandenen Sketch schreibt man den Text und MUSS ihn mit einem "." beenden, nach betätigen der ENTER-Taste wird die SMS versendet.
Ich benötige meiner Meinung nach nur den Befehl für das betätigen der ENTER-Taste.
Bsp.
if (Bedingung erfüllt){
void SendTextMessage() {
digitalWrite(13, HIGH);
Serial.println("Sende SMS...");
gsmSerial.println("AT+CMGF=1");
delay(500);
gsmSerial.print("AT+CMGS=\"+4917693179662\"\r");
delay(500);
gsmSerial.print("hier wuerde die automatische Meldung stehen.");
delay(500);
gsmSerial.println((char)26); // ASCII Ctrl-Z
//HIER MUESSTE GLAUBE ICH DIE PASSENDE CODEZEILE FUER DEN AUTOMATISCHEN VERSAND HIN
delay(500);
Serial.println("SMS gesendet.");
digitalWrite(13, LOW);
}
}
Der Komplette Sketch
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
SoftwareSerial gsmSerial(rxPin, txPin);
char recu[150]; // Array for message
String message = "";
int i;
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(9600);
while(!Serial) {}
//--- turn on TC35 ---
// wire pin 8 Arduino to IGT pin on TC35
// ground pin for 100 ms - this is the same as pressing the button on the TC35 to start it up
pinMode(8, INPUT);
digitalWrite(8, LOW);
pinMode(8, OUTPUT);
delay(100);
pinMode(8, INPUT);
gsmSerial.begin(9600);
delay(5000);
Serial.println("Ready");
}
void loop() {
i = 0;
while (Serial.available() > 0) {
recu[i] = Serial.read();
if ((recu[i] != 46) && (recu[i] != 13) && (recu[i] != 10))
{
message += char(recu[i]);
}
i++;
// 46 is ASCII code for "."
if (recu[i - 1] == 46) {
SendTextMessage();
ShowSerialData();
delay(1000);
message = "";
i = 0;
}
}
}
void SendTextMessage() {
digitalWrite(13, HIGH);
Serial.println("Sende SMS...");
gsmSerial.println("AT+CMGF=1");
delay(500);
gsmSerial.print("AT+CMGS=\"+4917693179662\"\r");
delay(500);
gsmSerial.print(message);
delay(500);
gsmSerial.println((char)26); // ASCII Ctrl-Z
delay(500);
Serial.println("SMS gesendet.");
digitalWrite(13, LOW);
}
void ShowSerialData() {
while(gsmSerial.available() > 0) {
Serial.write(gsmSerial.read());
}
}