Gsm+Uno

Hallo Forum,
ich bin am Experimentieren mit einem GSM Modul(Adafruit Fona) und einem Uno.
Soll eine Nummer anrufen und nach 10 Sekunden schellen wieder auflegen.
Das klappt wunderbar.

Jetzt die Steigerung: Es soll eine Nummer von der SIM Karte angerufen werden.
Also ich nehme eine X Beliebige SIM Karte, lösche alle Vorinstallierte Nummern(ADAC,Auskunft,...),
speichere eine Nummer ein und diese soll angerufen werden.

Wie funktioniert das???
Welches AT Befehl muss ich da eingen?(Nummer 1-10;oder Name)

Schönes Wochenende

Du findest den entsprechenden AT-Befehl in deiner Dokumentation zum Modul.

AT+CPBR // Read Current Phonebook Entries

AT+CPBF // Find Phonebook Entries

Mit einem der beiden sollte es funktionieren, die Index der jeweiligen Befehlen musst dir in der Doku rauslesen.
Aber warum soll denn die Nummer von der SIM kommen? Kannst sie doch genauso gut im Sketch stehen haben. Interessanter wäre es die Gesprächsliste oder die Liste der nicht angenommenen Anrufen zu lesen und zurück zu rufen :wink:

Scherheinz:
Mit einem der beiden sollte es funktionieren, die Index der jeweiligen Befehlen musst dir in der Doku rauslesen.
Aber warum soll denn die Nummer von der SIM kommen? Kannst sie doch genauso gut im Sketch stehen haben. Interessanter wäre es die Gesprächsliste oder die Liste der nicht angenommenen Anrufen zu lesen und zurück zu rufen :wink:

Das macht schon Sinn.
Damit ist der Sketch universeller.
Ich kann den bei x-verschiedenen Usern einsetzen und jeder User kann seine gewünschte Nummer aus der Sim auslesen lassen.

Optimaler sehe ich hier aber den Einsatz der SD-Karte mit einer Nummer drauf.

Meinste wirklich? Eine SD Slot dran zubauen mit ner 500mb Karte drin um eine Zahl zu speichern? Naja Geschmackssache, Hauptsache es funktioniert :slight_smile:
Als Steigerung könnte man noch wenn die Nummer sich zeitweise ändern soll eine SMS mit der neuen Nummer schicken und diese auslesen.

Scherheinz:
Meinste wirklich? Eine SD Slot dran zubauen mit ner 500mb Karte drin um eine Zahl zu speichern? Naja Geschmackssache, Hauptsache es funktioniert :slight_smile:

Ja, dachte ich so. :wink:

Dann spielt es keine Rolle, welche Nummern auf der SIM gespeichert sind. Und der Aufwand hält sich in Grenzen.
Ja, man muss nur abschätzen, ob der Aufwand gerechtfertigt ist.

Auch das neuere Zusenden einer neuen Nummer per SMS wäre so möglich. Muss im Sketch natürlich so vorgesehen sein.

Danke für die Tips.
So wie es HotSystems sagt ist es richtig.
Universel einsetzbar.
Im Sketch soll nur stehen ruf die erste Nummer von der SIM Karte an.
Dann kann sich jeder die eigene Nummer einspeichern.
Karte in das Modul und wenn was passiert wird man angerufen.
Danke werde das morgen gleich mal ausprobieren.

So sieht der Sketch jetzt aus.
Wenn ein Eingang auf High geht, dreht sich ein Servo um 70 Grad und fährt danach in die Ausgangssituation zurück. Im Anschluss soll eine Benachrichtigung gemacht werden(Anruf nach 10 Sekunden auflegen).
Wie würdet ihr den Sketch umstellen , daß der erste aus der SIM angerufen wird?
Pin 10 schaltet die Versorgungsspannung für den Servo ein.

char phone_no[]="+49170123456";
int taster=7;
int tasterstatus=0;

#include <Servo.h>
Servo servoblau;

void setup()
{
pinMode(taster, INPUT);
pinMode(10,OUTPUT);
}

void loop() {
servoblau.attach(8);
tasterstatus=digitalRead(taster);
if (tasterstatus == HIGH)
{
digitalWrite(10,HIGH);
servoblau.write(90);
delay(100);
servoblau.write(160);
delay(3000);
servoblau.write(90);
delay(1000);
Serial.begin(115200);
delay(15000);
Serial.println("AT");
Serial.print("ATD");
Serial.print(phone_no);
Serial.println(";");
delay(12000);
Serial.println("ATH");  
delay(2000);
digitalWrite(10,LOW);
}
else
{

}  // put your main code here, to run repeatedly:

}

Gruß

Bevor du das tust solltest deine Delay aus dem Sketch schaffen. Sonst wird es irgendwann Probleme geben, vorallem wenn die Kommunikation mit deinem GSM Modul mal in die andere Richtung laufen soll.
Schau dir das Beispiel "Blink without delay" in der IDE mal an. Zur Erlöärung würde ich dir das hier empfehlen:

Endlicher automat

Zu deinem anderen Problem:
Finde erstmal die richtige Benutzung des AT Comands raus und teste das in einem extra Sketch. Wenn das funktioniert musst du nur noch die beiden Sketche zusammen werfen.