Forum: Mikrocontroller und Digitale Elektronik TC35 Arduino


von Jan J. (satalaner)


Lesenswert?

Hallo ich versuche schon eine ganze weile mein tc35 dazu zu bewegen mir 
bei empfang einer sms einen ausgang am arduino auf high zu setzen.

Ich habe folgendes herausgefunden. Ich habe das ftdi angeschlossen und
kann AT+CMGL="ALL" oder AT+CPMS="SM" senden und bekomme werte zurück im 
seriel monitor. Wenn ich jedoch das ganze über mein arduino uno probiere 
kann es das nicht so schreiben. Es kann nur AT+CMGL=\"ALL\"" und 
"AT+CPMS=\"SM\"" aber damit bekomme ich keine werte zurück.


Hat jemand vielleicht schonmal ein Funktionierendes programm geschrieben 
zum empfang von sms oder eine idee was ich noch tun kann? Wäre sehr 
dankbar!

von Mathias (Gast)


Lesenswert?

Probiers mal mit "AT+CPMS=\"SM\"\r\n"
\r\n ist der Windows Zeilenumbruch, den sendet der Arduino nicht 
unbedingt automatisch.

von Jan J. (satalaner)


Lesenswert?

danke für die schnelle antwort. Leider funktioniert das nicht. ich 
bekomme gar keine rückemldung von dem gsm.

Ich habe über diesen code erfolgreich eine sms empfangen
#include <SoftwareSerial.h>
#define rxPin 9
#define txPin 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
char text[150];
String message="";
int i;

void setup(){

pinMode(10,OUTPUT);
Serial.begin(9600);
while (!Serial){}
mySerial.begin(9600);
digitalWrite(10,0);
delay(1000);
digitalWrite(10,1);
Serial.println("Write your SMS:");
}

void loop(){

i=0;
while( Serial.available()>0 ){
 text[i] = Serial.read();
 message += text[i];
 i++;
 if (text[i-1]==46){
  Serial.println("Send SMS......");
  SendTextMessage();
  ShowSerialData();
  delay(1000);
  Serial.println("\r");
  Serial.println("Success");
  message="";
  i=0;  }}}


void SendTextMessage(){

mySerial.print("AT+CMGF=1\r");
delay(1000);
mySerial.print("AT+CMGS=\"+491543270270\"\r");
delay(1000);
mySerial.println(message);
mySerial.print("\r");
delay(1000);
mySerial.println((char)26);
mySerial.println();  }


void ShowSerialData(){

while(mySerial.available()!=0)
 Serial.write(mySerial.read());}

es muss doch also möglich sein das das arduino daten empfängt

von Dieter S. (Gast)


Lesenswert?

Du solltest dich mal mit der Programmierung des Arduino und der Doku des 
TC35 mehr befassen, als darauf zu hoffen, das dir jemand mal eben ein 
Programm schreibt. Und setze dich mal mit den Beiträgen auseinander, die 
dir vorgeschlagen wurden, bzw. in Google zu finden sind und da gibt es 
reichlich. Ein wenig Eigeninitiative sollte man bei so einem Projekt 
schon haben.

von Mathias (Gast)


Lesenswert?

Hast du schonmal die einfache Variante probiert?
1
void setup(){
2
  Serial.begin(9600);
3
  while (!Serial){}
4
  mySerial.begin(9600);
5
  
6
  mySerial.print("AT+CMGF=1\r\n");
7
  delay(1000);
8
  mySerial.print("AT+CMGS=\"+491543270270\"\r\n");
9
  delay(1000);
10
  mySerial.print("test\r\n");
11
  delay(1000);
12
  mySerial.println((char)26);
13
14
  while(mySerial.available()!=0){
15
    Serial.write(mySerial.read());
16
  }
17
}

Bist du sicher, dass "\r" der gewünschte Zeilenumbruch ist? Linux nutzt 
"\n", Windows "\r\n" (nutzt Apple vielleicht "\r"?)
Was gibts du denn genau ins Terminal ein, wenn du es über den PC 
probierst?
Ansonsten, die Pins sind korrekt verdrahtet? Die Serial Parameter 
stimmen? usw...

von Jan J. (satalaner)


Lesenswert?

Du meinst das terminal in verbindung mit dem Ftdi?

Das sieht so aus und funktioniert super:

AT

OK
AT+CMGL="ALL"

+CMGL: 2,"REC READ","+4915272180410",,"15/10/09,20:56:58+08"
Test
+CMGL: 3,"REC READ","+4915238038886",,"15/10/10,00:35:16+08"
hallo
+CMGL: 4,"REC READ","+4915272180410",,"15/10/10,00:37:50+08"
test - mufa.de/app
+CMGL: 5,"REC READ","+4915272180410",,"15/10/10,00:47:54+08"
test
+CMGL: 6,"REC READ","+4915272180410",,"15/10/10,00:39:56+08"
Tats{chlich
+CMGL: 7,"REC READ","+4915272180410",,"15/10/10,00:51:30+08"
test
+CMGL: 8,"REC READ","+4915272180410",,"15/10/10,00:58:48+08"
test
+CMGL: 9,"REC READ","+4915272180410",,"15/10/10,01:01:21+08"
test

OK
AT+CPMS="SM"

+CPMS: 8,20,8,20,8,20

OK

Ich glaube auch das ich wenn ich es jetzt wieder mit dem Arduino 
verbinde ich einfach einen falschen Befehl sende.
Serial Parameter meinst du die einstellungen des Boards?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.