INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Anruf tätigen
18.03.2020, 22:31 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2020 22:35 von Matze1.)
Beitrag #41
RE: Arduino Anruf tätigen
So ich habe etwas gebastelt. Ich habe ich jetzt hinbekommen das beim anlegen einer Spannung an dem Arduino der Uno Startet und das GSM Modul über Pin9 Startet und sich ins Handynetz einloggtBig Grin
Beim Tasten von Pin 10 wird eine voreingestellte Nummer kurz gewählt und der Ruf beendet.

Wie bekomme ich es jetzt hin das Pin 10 beim Starten das UNO automatisch aller 30 Sekunden kurz setzt wird.
Beim Starten das UNO soll aber erst mal kurz gewartet werden das das GSM Modul Zeit hat sich einzuloggen.

Code:
*/

#include <SoftwareSerial.h>
int pushbuttn=10;
int value,i;
SoftwareSerial mySerial(7, 8);//(Rx TX)  

void setup()
{

Serial.begin(9600);
pinMode( pushbuttn,INPUT);

pinMode(9, OUTPUT);
  digitalWrite(9,LOW);
  delay(2000);
  digitalWrite(9,HIGH);
  delay(3000);

}

void loop()
{
  
  value=digitalRead(pushbuttn);
  Serial.println(value);
  
  while( value==HIGH)
  {
    if(i==0)//i variable to ensure that only one call request will be sent by gsm during pressing and holding the pushbutton;
        {
          Serial.println("Calling through GSM Modem");
          mySerial.begin(9600);//setting baudrate at 9600;
          delay(1000);
          mySerial.println("ATD+49123456789;"); // ATDxxxxxxxxxx; semicolon should be at the last ;AT command that follows UART protocol;
          Serial.println("Called ATD+49123456789");
          delay(1000);
          if (mySerial.available())
          Serial.write(mySerial.read());
          i++;
         }//end of if
         value=digitalRead(pushbuttn);
  }//end of while
   i=0;
}//end of void loop
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2020, 22:43
Beitrag #42
RE: Arduino Anruf tätigen
Die Settings (baudrate mySerial) gehört ins setup.

Ansonsten schaue Dir mal BlinkWithoutDelay und die Nachtwächtererklärun g an.

Welchen Sinn soll es haben, eine Nummer aller 30 Sekunden anzurufen?

Grußm Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2020, 22:48
Beitrag #43
RE: Arduino Anruf tätigen
Setze die Initialisierung und Anmeldung in eine Funktion und schreibe dahinter eine Wartefunktion mit millis(). Diese Funktion rufst du alle 30sek. auf und steuerst das auch über millis().
Wenn du nichts anderes in der Wartezeit machen musst, kannst du auch delay() verwenden, was aber nicht zu empfehlen ist.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.03.2020, 11:29
Beitrag #44
RE: Arduino Anruf tätigen
(18.03.2020 22:31)Matze1 schrieb:  Wie bekomme ich es jetzt hin das Pin 10 beim Starten das UNO automatisch aller 30 Sekunden kurz setzt wird.
Beim Starten das UNO soll aber erst mal kurz gewartet werden das das GSM Modul Zeit hat sich einzuloggen.

Schau mal in https://www.arduinoforum.de/arduino-Thre...ung?page=2 Post #9

Da sieht man wie man mit SimpleTimer unterbrechungsfrei programmiert.

ESP32 Anfänger mit Migrations-Hintergrund (komme von RasPi & Python) Cool
Gruß aus Franken
Dietmar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.03.2020, 18:59
Beitrag #45
RE: Arduino Anruf tätigen
Grüße, der Hintergrund der ganzen Geschichte ist da der Arduino später in einer Alarmanlage als Einwahlgerät laufen soll.
Die Alarmanlage ist von ABI und ist Modular aufgebaut. Man hat die reinen Alarmanlage, kauft dann einen Clout Server dazu (extra Steckplatine ca. 450€) über den Clout Server kann die Alarmanlage über eine APP gesteuert werden und alle Ereignisse werden mir angezeigt. Im Alarmfall bekomme ich aber nur ein Push Nachrichten die ich überhören kann da nur Nachrichtenton. Zu der Alarmanlage gibt es auch ein GSM Modul (auch ca. 650€ extra ) was mich auch anruft und was ich benötige wenn ich die Alarmanlage auf ein Sicherheitsdienst aufschalten lassen will.
Das möchte ich aber nicht!
In der Alarmanlage gibt es freie Relais die ich so Programmieren das die im Alarmfall 12V für eine bestimmte Zeit ausgeben (max. 180Sekunden ) das ist die Zeit was die Außensirene maximal am Stück heulen darf. Bei der nächsten Auslösung wieder 180Sekunden.
In den 180Sekunden soll mein Arduino mich anrufen, das ich zu meinem Handy gehe in die Push Nachricht lese.
Wenn ich von der App aus den Alarm abstelle, schaltet das Relais aus und die Anrufe hören auf.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.03.2020, 22:26
Beitrag #46
RE: Arduino Anruf tätigen
Hallo Matze1,
ich habe mich mit Sim900 Shield GSM Modul noch nie beschäftigt, aber oft mit Siemens tc35 Modems (Modulen … gibt originale und Kopie) - … Ein GSM Modul, um irgendwas zu Senden / Empfangen, muss sich in das Netz einloggen. Wie? – ist aus dem Datenblatt zu entnehmen. Bei dem Siemens tc35 GSM Modem muss man einen Taster (Connect) Drücken, oder dies per Software zu erzeugen.

Das wird korrekt so gemacht; (bei Dir Pin9 – alsoSmile
Code:
// ground pin for 100 ms - this is the same as pressing the button to start it up
pinMode(9, INPUT);
digitalWrite(9, LOW);
pinMode(9, OUTPUT);
delay(200);
pinMode(9, INPUT);

Die Kommunikation ist via AT- Befehle. Jedes AT- senden, ist mit einer Antwort verbunden.
Wenn Du XXX Sendest, bekommst Du als Antwort (Request) YYY.

delay(xxx) – Funktion bei Arduino lässt den Programmablauf für die xxx Zeit aus der kraft.
Der Controller (Arduino) reagiert für die xxx Zeit nicht -> ist tot.
Die Kommunikation zwischen dem GSM Modul “Lebt“ aber.

Ich unterbringe relevante AT- Korrespondenz in Funktionen. Hier ein Beispiel:

Code:
void sendHot_Message() {

  // ------------------     SMS nur einmal senden  ------------------
  if (!send_Flag_hoot) {
    // Serial.println("Sende HOT- SMS");

    gsmSerial.println("AT+CMGF=1");
    delay(500);
    gsmSerial.print("AT+CMGS=\"+4917…….\"\r"); // Deine Tel Nummer
    delay(500);
    gsmSerial.print(message_Hoot);
    delay(500);
    gsmSerial.println((char)26); // ASCII Ctrl-Z
    delay(500);
    send_Flag_hoot = true;
  }
}

Die delay()´s sind alla letztes! Es wird davon ausgegangen, dass alles OK ist!
Damit (delay()´s) wird dem Server die Zeit gegeben, um die Nachricht (Befehl) abzuarbeiten.

Profi werden mit:
Code:
void ShowSerialData() {
  while (gsmSerial.available() > 0) {
    Serial.write(gsmSerial.read());
  }
}

einer Funktion sich die Auswirkung der Befehlen bestätigen lassen.

Nun ein Fazit:
Sim900 Shield GSM Modul wird mit AT Befehlen gesteuert. Die sind für alle Modems (Modulen) gleich.

Zitat:Wie bekomme ich es jetzt hin das Pin 10 beim Starten das UNO automatisch aller 30 Sekunden kurz setzt wird.
Beim Starten das UNO soll aber erst mal kurz gewartet werden das das GSM Modul Zeit hat sich einzuloggen.
Das (die Frage) Verstehe ich nicht.

Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.03.2020, 23:20
Beitrag #47
RE: Arduino Anruf tätigen
Pin9 Startet ja das Sim900, dann brauch es einige Zeit bis es bereit ist (Sin Karte eingeloggt) deswegen warten.
Jetzt Startet das Sim900 automatisch nach starten des UNO! Wenn ich dann Pin10 Taste wird eine Nummer kurz gewählt. Das wählen soll Automatisch in Zeitlichen abständen geschehen in Endlosschleife!

Leider klappt es mit der Endlosschleife nicht....!

Code:
#include <SoftwareSerial.h>
unsigned long Zeit_Eben;  // Variable Speicher für Systemzeit.
int meineEinZeit=1000;
int meineAusZeit=15000;
int pushStatus = LOW;
int pushbuttn=10;
int value,i;
SoftwareSerial mySerial(7, 8);//(Rx TX)  

void setup()
{

Serial.begin(9600);
pinMode( pushbuttn,INPUT);

pinMode(9, OUTPUT);
  digitalWrite(9,LOW);
  delay(2000);
  digitalWrite(9,HIGH);
  delay(3000);

}

void loop()
{
  
  value=digitalRead(pushbuttn);
  Serial.println(value);
  
  while( value==HIGH)
  {
    if(i==0)//i variable to ensure that only one call request will be sent by gsm during pressing and holding the pushbutton;
        {
          Serial.println("Calling through GSM Modem");
          mySerial.begin(9600);//setting baudrate at 9600;
          delay(1000);
          mySerial.println("ATD+1234567890;"); // ATDxxxxxxxxxx; semicolon should be at the last ;AT command that follows UART protocol;
          Serial.println("Called ATD+1234567890");
          delay(1000);
          if (mySerial.available())
          Serial.write(mySerial.read());
          i++;
         }//end of if
         value=digitalRead(pushbuttn);
  }//end of while
   i=0;
}//end of void loop


void loop1() {
  if (pushStatus == LOW) {

    if (Jetzt()-meineAusZeit > Zeit_Eben ) {
      digitalWrite(pushbuttn, HIGH);
      Zeit_Eben = Jetzt();
      pushStatus = HIGH;
    }

  } else {
  
if (Jetzt()-meineEinZeit > Zeit_Eben) {
      digitalWrite(pushbuttn, LOW);
      Zeit_Eben = Jetzt();
      pushStatus = LOW;
  
}
}
}

unsigned long Jetzt()
{
return millis();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.03.2020, 23:29
Beitrag #48
RE: Arduino Anruf tätigen
(19.03.2020 23:20)Matze1 schrieb:  .....
Leider klappt es mit der Endlosschleife nicht....!

Dir wurde doch schon der Vorschlag mit SimpleTimer gemacht.

Ich finde das zwar keine so gute Idee, da man nicht daraus lernt mit millis() umzugehen, aber das ist doch eine einfache (simple) Lösung.

Das solltest du dir einfach mal ansehen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 3.248 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 6.008 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Automatischer Anruf bei anschalten des Arduino DarthX 32 7.470 19.04.2017 01:28
Letzter Beitrag: georg01
  Statusabfrage per Anruf dahans 5 2.122 16.04.2016 13:58
Letzter Beitrag: rkuehle
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 4.956 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 13.289 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste