Hallo zusammen.
Ich habe als ambitionierter Handwerker den Gefallen am spitzenmässigen Arduino gefunden. Wirklich ein tolles Gerät mit enormen Potential.
Bevor ich euch mein Problem schildere, möchte ich euch grob über mein Projekt orientieren. Ich darf für unsere Gemeinde eine Wasserniveau Anlage in unserer Waldhütte verbauen. Preislich gesehen ist der Arduino mit dem GSM Shield 2 eine wirklich gute Option, Programmierkenntnisse vorausgesetzt. Ich habe mittlerweile.. ja ich kann sagen ein Buch gelesen, damit ich den Arduino nach meinen Bedürfnissen programmieren kann. Ich denke, für meine Anwendungen reicht dieser Wissensstand. Über das Projekt an sich werde ich euch eventuell separat im Detail informieren...
Zu meinem Problem:
Für das Projekt ist ein GSM Modul notwendig, damit eine Änderung des Wasserstand per SMS versendet werden kann. Da ich bei etwas was mit Funktechnik funktioniert nicht erwartet habe, dass es von Beginn auf läuft, habe ich mir kein "Generika" wie das SIM900 zugelegt, sondern brav ein Original Arduino-Teil namens GSM SHIELD 2. Eine SIM Karte habe ich ebenfalls besorgt und entsperrt. Anschliessend habe ich anhand des Youtube Tutorials (Arduino GSM Shield - Intro part 1 - YouTube) und der Arduino Homepage versucht, das Ding in Betrieb zu nehmen.
- SIM Karte entsperrt und eingelegt.
- Die Antenne aufgeschraubt (Ich komme noch dazu..)
- Vor dem aufspielen des neuen Sketches habe ich den UNO mit einem "leeren" Programm bespielt.
- Shield auf den UNO aufgesetzt.
- Den UNO eingesteckt und das Beispiel SendSMS aufgespielt.
- Folglich erscheint auf dem Seriellen Monitor "SMS Messages Sender". Mehr aber nicht...
Mir ist aufgefallen, dass beim GSM Modul die grüne LED (on) permanent leuchtet und die LED's STA und NET nach dem Einschalten für lediglich ca. 5 Sekunden blinken und anschliessend für immer löschen. Sieht für mich nach einem Abbruch der Netzsuche aus. Auch der GSM Scanner funktioniert nicht.
Noch zur Antenne: Ich habe das GSM Modul mit der externen Antenne genommen, da ich vermutlich eine Aussenantenne mangels Empfang installieren muss. Ich habe eigentlich damit gerechnet, dass Arduino zumindest eine kurze Antenne mitliefert, aber das war nicht der Fall. Also habe ich mir auf die schnelle eine entsprechende GSM Antenne besorgt. Siehe Link unten. Aber die sollte doch funktionieren oder?
Ich habe wie erwähnt nicht erwartet, dass es gleich funktioniert, aber ich kann mir irgendwie nicht mehr weiterhelfen. Ich wäre um eure Mithilfe dankbar
Antenne: https://www.brack.ch/delock-lte-antenne-zum-kleben-378993
GSM Modul: https://www.distrelec.ch/de/arduino-gsm-shield-a000106-arduino-a000106/p/30078155
Mein aufgespielte Sketch:
#include <GSM.h>
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;
void setup() {
// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("SMS Messages Sender");
// connection state
boolean notConnected = true;
// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
notConnected = false;
} else {
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
}
void loop() {
Serial.print("Enter a mobile number: ");
char remoteNum[20]; // telephone number to send sms
readSerial(remoteNum);
Serial.println(remoteNum);
// sms text
Serial.print("Now, enter SMS content: ");
char txtMsg[200];
readSerial(txtMsg);
Serial.println("SENDING");
Serial.println();
Serial.println("Message:");
Serial.println(txtMsg);
// send the message
sms.beginSMS(remoteNum);
sms.print(txtMsg);
sms.endSMS();
Serial.println("\nCOMPLETE!\n");
}
/*
Read input serial
*/
int readSerial(char result[]) {
int i = 0;
while (1) {
while (Serial.available() > 0) {
char inChar = Serial.read();
if (inChar == '\n') {
result[i] = '\0';
Serial.flush();
return 0;
}
if (inChar != '\r') {
result[i] = inChar;
i++;
}
}
}
}