Hallo ich will mit meinem Sim 800l eine Verbindung aufzubauen. Allerdings bekomme ich mit diesem Script hier keine wirklich ordentliche Rückgabe im Seriellen Monitor und wollte jetzt fragen ob ihr eine Idee habt wie ich das verbessere?
Code:
#include <SoftwareSerial.h>
#define SIM800_TX 8
#define SIM800_RX 9
SoftwareSerial serialSIM800(SIM800_TX, SIM800_RX);
String data1 = "123";
String data2 = "test";
int startgsm = 1;
void setup() {
//Start der seriellen Kommunikation
Serial.begin(9600);
while (!Serial);
serialSIM800.begin(9600);
delay(1000);
Serial.println("Bereit");
}
void loop() {
//Ausgabe von SIM800 lesen und ausgeben
if (serialSIM800.available()) {
Serial.write(serialSIM800.read());
}
//Eingaben vom Terminal an den SIM800 senden
if (Serial.available()) {
serialSIM800.write(Serial.read());
}
if (startgsm == 1) {
Serial.println("Gsm Modul wurde gestartet");
gsm();
startgsm = 2;
}
}
void gsm() {
serialSIM800.println("AT");
tell();
gsm2();
}
void gsm2() {
serialSIM800.println("AT+SAPBR=3,1,Contype,GPRS");
tell();
gsm3();
}
void gsm3() {
serialSIM800.println("AT+SAPBR=3,1,APN,web.vodafone.de");
tell();
gsm4();
}
void gsm4() {
serialSIM800.print("AT+SAPBR=3,1,USER,vodafone");
tell();
gsm5();
}
void gsm5() {
serialSIM800.println("AT+SAPBR=3,1,PWD,vodafone");
tell();
}
void tell() {
//Ausgabe von SIM800 lesen und ausgeben
if (serialSIM800.available()) {
Serial.write(serialSIM800.read());
}
}
Antwort im Seriellen Monitor:
Bereit
Gsm Modul wurde gestartet
ATAT+SAPBR=3,1,Contype,GPRSAT=3,1,APN,web.vodafone.deAT+SAPBR=3,1,USER,vodafoneAT+SAPBR=3,1,PWD,vodafone
OK
ERROR
+CPIN: READY
Call Ready
SMS Ready