Hallo MicroBahner, danke für dein Schreiben. Also das Problem ist etwas Komplex. Vorab möchte ich erwähnen, dass ich schon seit Jahren kleinere Projekte für mich privat mit verschiedenen Arduino's realisiere. Da ich das System Arduino für mich eher als Werkzeug nutze war mein bisheriges vorgehen immer so, dass ich einen Arduino und die entsprechende Sensoren, Shields, Motoren usw. kaufte, die entsprechende Bibliotheken installierte und dann die beiliegenden Beispiel-Sketche für meine Anwendung anpasste. Meine Informatikkenntnis basiert darauf dass ich für mich beruflich gelegentlich EXCEL-Tabellen mit VBA programmiere. Na ja, wenn man etwas eben nur gelegentlich macht ist auch die Kenntnis entsprechend.
Jetzt hab ich mich an ein etwas komplexeres Projekt gewagt. Da unser Haus mit Gas beheizt wird möchte ich ein Arduino mit entsprechendem Gas-Sensor im Heizraum verbauen der mir im Fall dass Gas austritt eine SMS auf mein Handy sendet. Für das Projekt hab ich einen Arduino-MKR-GSM-1400 gekauft, mit entsprechendem Sensor, Antenne, Akku und Gehäuse. Der MKR-GSM-1400 ist schon richtig teuer. Nun hab ich das Board und die entsprechende Bibliotheken installiert und wollte das beiliegende Beispiel: MKRGSM/SendSMS nutzen, das läuft auch alles ganz gut an, alles wird erkannt und GSM wird auch initialisiert und der Text "Enter a mobile number:" angezeigt, nur beim eingebeb der Ziel-Mobil-Telefonnummer wird diese nicht übernommer, hier gibt es das Eingabeproblem. Ich hab dir mal den Beispiel-Sketch: SendSMS angefügt.
/*
SMS sender
This sketch, for the MKR GSM 1400 board,sends an SMS message
you enter in the serial monitor. Connect your Arduino with the
GSM shield and SIM card, open the serial monitor, and wait for
the "READY" message to appear in the monitor. Next, type a
message to send and press "return". Make sure the serial
monitor is set to send a newline when you press return.
Circuit:
* MKR GSM 1400 board
* Antenna
* SIM card that can send SMS
created 25 Feb 2012
by Tom Igoe
*/
// Include the GSM library
#include <MKRGSM.h>
#include "arduino_secrets.h"
// Please enter your sensitive data in the Secret tab or arduino_secrets.h
// PIN Number
const char PINNUMBER[] = SECRET_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
bool connected = false;
// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while (!connected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
connected = true;
} else {
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
}
void loop() {
// enter mobile number
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");
}
int readSerial(char result[]) { // Read input serial
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++;
}
}
}
}
Ich hab nun versucht das Problem zu lokalisieren und vermute dieses im Unterprogramm "int readSerial(char result[])", wie du siest ist der Code für einen Laien schon nicht ganz einfach, das Hauptproblem ist wohl "return 0".
Dann hab ich versucht die Funktion des Unterprogramm in ein eigenständiges kleines Sketch zu schreiben mit dem ich mich an Dich/Euch wandte, da ich es einfach nicht zum laufen bekomme.
Das Sketch soll wenn ich es ausführe und den Seriellen Monitor öffne die Aufforderung zur eingabe einer Zeichenfolde anzeigen. Nun die Zeichenfolge eintragen und mit Send oder Return übernommen, darauf hin sollte die eingegebene Zeichenfolge unterhalb der Eingabeaufforderung dargestellt und der entsprechenden Variabel zugeordnet sein.
Da der MKR-GSM-1400 nicht billig war und ich diesen gerne nutzen möchte bin ich für jede Hilfe hierzu sehr sehr dankbar.