Anfänger braucht Hilfe für GSM Modul

Hallo.

Ich bin der Aaron, bin im Thema Arduino noch ganz neu. Habe mir einen Arduino Uno gekauft und experimentiere gerne ein wenig damit rum.

Ich habe folgende Frage:

Ich habe eine Wasseraufbereitung im Keller, die aus Leitungswasser Reinstwasser macht. Das Reinstwasser muss mit einem Kanister aufgefangen werden, es dauert je nach Wasserdruck 3-6 Stunden, bis dieser voll ist.

Nicht selten ist mir schon ein Kanister übergelaufen.

Jetzt kam mir folgende Idee:

Ich installiere einen Wassermelder, der einen Alarm ausgibt.

An den Wassermelder bringe ich anstatt einer LED ein Relais an, welches dann zieht, sobald Alarm anliegt.

Das Relais verbindet dann an meinem Arduino Uno 2 Kontakte der Schnittstelle, dann weiß der Arduino, So, jetzt muss ich an eine vorher definierte Telefonnummer eine SMS mit der Meldung: Füllstand erreicht schicken.

Vielleicht würde es sogar gehen, dass ich einen Füllstandsmelder etwa bei 3/4 des Kanisters montiere, dann bekomme ich eine SMS: Kanister fast voll, bei Maximum dann die SMS: Kanister ist voll!

Würde dies mit einfachen Hausmitteln realisierbar sein?

Den Arduino Uno (Original, kein China ) habe ich bereits bei Conrad gekauft. Wassermelder habe ich zwar auch schon da, das bringt aber nichts, wenn ich unterwegs bin :slight_smile:

An folgendes GSM Modul habe ich gedacht:
http://www.ebay.de/itm/SIM900-GPRS-GSM-Board-Quad-Band-Module-antenna-Kit-fur-Arduino-Raspberry-Pi-DIY-/111881284759?hash=item1a0ca4ec97:g:a7UAAOSwHnFVukAw

Das ist günstig und dürfte meine Zwecke erfüllen, richtig?

Ist damit meine Idee bzw. mein Vorhaben realisierbar? Oder bedarf es hier noch weiterer Hardware bzw. Expertenwissen?

Wäre cool, wenn mir jemand helfen könnte :slight_smile:

Liebe Grüße
Aaron

Wassermelder habe ich zwar auch schon da, das bringt aber nichts, wenn ich unterwegs bin

Kannst ihn ja erstmal mit dem Arduino zusammenbringen, bevor du den Arduino simsen lässt.

Vermutlich brauchst du kein Relais, aber das hängt an deinen Wassermeldern ...


Für ein SIM900 GSM shield solltest du reichlich Tutorials finden.

Alternativ:

Statt Arduino + GSM Shield ein Magnetventil? (Wenn Kanister voll, Strom aus = zu)

Spannender ist natürlich, ob du es rechtzeitig nach Hause schaffst, wenn die SMS kommt.

Hi Michael. Danke für deine schnelle Antwort.

Das mit den Magnetventil habe ich mir auch schon überlegt. Das kostet aber mehr als die Arduino Lösung, wenn diese lange nicht mehr verwendet werden kalken diese auch gerne zu. Und es ist cooler, wenn ich dann sms geschrieben bekomme :slight_smile:

Der Wassermelder selbst hat einen piepser integriert, im Alarmfall werden glaub ich 5v geschaltet um die piezzosirene zu versorgen.

Da hätte ich dann ein Relais parallel dazu geschaltet welches dann 2 Kontakte am Arduino UNO Brückt.

Ich weiß leider nicht so recht, wie ich mit dem Code anfangen soll.

Meinst du mit diesem GSM Modul kann ich was anfangen? Also ausreichend für mein kleines Projekt?

Im Alarmfall werden glaub ich 5v geschaltet um die piezzosirene zu versorgen.

Da hätte ich dann ein Relais parallel dazu geschaltet welches dann 2 Kontakte am Arduino UNO Brückt.

Der Uno kriegt was mit, indem einer seiner Pins 0 ... 13 mit GND oder 5V verbunden wird.

Schau dir die Basic-Tutorials an und bau sie nach.

Falls dein Wassermelder ein Relais parallel zu seinem Piepser betätigen kann, geht das natürlich
(5V Relais brauchen aber üblicherweise ca. 100mA, keine Ahnung ob der Piepser dann noch piepst)

Nur zur Potential-Trennung ist ein Optokoppler übrigens besser geeignet.
Irgend einer ist ok, wenn du die Polarität deines Signals beachtest.

+ ----- 1k --- 1         4 ------- PIN (INPUT_PULLUP)
                 LTV817
- ------------ 2         3 ------- GND

Statt 1k sollte auch 2k2 oder 4k7 gehen ...
und/oder jeder andere Standard-Opto anstelle des Standard 817

Mit dem Uno und dem GSM-Modul kannst du dein Vorhaben umsetzen, allerdings ist das für einen Anfänger schon recht anspruchsvoll.
Was du zuvor machen solltest, ist die Grundlagen üben, die mit der IDE geliefert werden.
Dann unbedingt mit einfachen Dingen anfangen und üben.

Zum einen leitet das DI Wasser so gut wie keinen Strom, zum anderen würde ich die Wasserqualität nicht durch Metallionen gefährden. Darum würde ich den Wasserstand keinesfalls ohmisch ermitteln, sondern entweder kapazitiv, oder optisch. Bei kapazitiv gibt es eine gemeine Falle! Wenn man mit Trinkwasser kalibriert, kann es ein, das der Sensor nicht mit DI Wasser auslöst :smiling_imp:
Ein Schwimmerschalter wäre ebenfalls geeignet. Oder calorimetrisch ginge auch. Einen Thermistor in einem niederohmigen Spannungsteiler betreiben, wenn er an der Luft ist, erwärmt sich der Thermistor durch den ihn durchfließenden Strom. Ist er im Wasser, dann wird er gekühlt. Dadurch ändert sich die an ihm abfallende Spannung, welche sich mit einem Analogeingang messen läßt. Das Ganze wasserfest vergossen... :wink:

HotSystems:
Mit dem Uno und dem GSM-Modul kannst du dein Vorhaben umsetzen, allerdings ist das für einen Anfänger schon recht anspruchsvoll.
Was du zuvor machen solltest, ist die Grundlagen üben, die mit der IDE geliefert werden.
Dann unbedingt mit einfachen Dingen anfangen und üben.

Das sehe ich genau so. Das GSM-Shield bietet ein gewisses Kostenrisiko. Es ist möglich durch Fehlprogrammierung in kurzer Zeit 100te SMS abzusetzen oder andere Kostenintensive Funktionen auszulösen.

Ich würde auch ein Magnetventil oder andere Abschaltmöglichkeit einplanen. Das GSM-Shield schließt das ja nicht aus. Mich erinnert das sonst an den Witz:
Schimpft die Mutter klein Fritzchen aus: "Hab ich dir nicht gesagt, du sollst aufpassen, wenn die Milch überkocht?" Greint der: "Hab ich ja, Mama. Es war genau 5 nach zwölf."

Also zum Wassermelder: er funktioniert mit einem Schwimmer. Er ist ja schon als stand allone gerät in betrieb.

Das mit der Sms Lösung wäre Luxus gewesen, falls ich es vergesse und unterwegs bin. Das kam auch schon öfter vor.

Magnetventil kommt auch deshalb nicht in frage, da es installations technisch aufwändiger ist und meine Frau auch öfter die Wasser Aufbereitungsanlage abklemmen muss und den Hahn anderweitig nutzt.

Ich hätte es halt einfach gerne über sms gehabt und habe gehofft, dass das relativ einfach zu lösen ist mit dem Gsm shield.

Nur fehlt mir bisschen der Grundansatz dafür.

Aaronseibert:
Ich hätte es halt einfach gerne über sms gehabt und habe gehofft, dass das relativ einfach zu lösen ist mit dem Gsm shield.

Nur fehlt mir bisschen der Grundansatz dafür.

Für einen Einsteiger ist das wie schon geschrieben, sicher nicht einfach.
Du solltest mit den Grundlagen anfangen und wenn das klappt, dann mit dem GSM-Modul starten.

Es gibt genügend Tutorials darüber und uns gibt es auch noch, wir helfen dann.
Aber einfache Schaltungen solltest du schon selbst erledigen können.

Okay dann ordere ich mir diesen mal und betreibe learning by doing!

Danke trotzdem.

Aaronseibert:
Magnetventil kommt auch deshalb nicht in frage, da es installations technisch aufwändiger ist und meine Frau auch öfter die Wasser Aufbereitungsanlage abklemmen muss und den Hahn anderweitig nutzt.

Verstehe ich nicht. Es gibt doch Ventile die sich auf einen Wasserhahn aufschrauben lassen oder in eine Zuleitung einschleifen lassen, beispielsweise beim Gartenbedarf. Man könnte einen billigen Bewässerungscomputer hacken oder gleich als Zeitschaltuhr nutzen. Evtl. lässt sich in Waschmaschinen oder Spülmaschinen taugliches finden.

Aaronseibert:
Ich hätte es halt einfach gerne über sms gehabt und habe gehofft, dass das relativ einfach zu lösen ist mit dem Gsm shield.

Ein Magnetventil würde ich ohne Forum hinbekommen, wenn ich dies möchte!

Also mein Projekt nimmt Form an…

Ich habe ein interessantes Projekt mit einer Alarmanlage gesehen. Das ist Hier:
http://www.electroschematics.com/10760/arduino-gsm-home-security-alarm-system/

Den original Code hierfür ist dieser hier:

/*
* Arduino Home Security GSM Alarm
* An Arduino + SIM900A Project
* T.K.Hareendran
* Tested at TechNode PROTOLABZ
* 21 August 2014
* http:// www.electroschematics.com
*/
//Connect the Tx pin of the GSM modem to D3
//Connect the Rx pin of the GSM modem to D4
//SMS Trigger Key/Input connected to D7 (Active LOW)
//CALL Trigger Key connected to D8 (Active LOW)
//END Key Connected to D9 (Active LOW)
#include <NewSoftSerial.h>
NewSoftSerial mySerial(3,4); // RX and TX pins to communicate with GSM module
#define msg_key 7
#define call_key 8
#define end_key 9
String number ="0000000000"; // Add the 10-Digit Mobile Number to which message / call is to be //made,by replacing the 0's
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(msg_key,INPUT);
pinMode(call_key,INPUT);
pinMode(end_key,INPUT);
digitalWrite(msg_key,HIGH);
digitalWrite(call_key,HIGH);
digitalWrite(end_key,HIGH);
}
void loop()
{
//Sends an sms everytime msg_key is pressed
//if (digitalRead(msg_key)==LOW) // Check if the sms key is being pressed
{
mySerial.println("AT+CMGF=1"); // Set the Mode as Text Mode
delay(150);
mySerial.println("AT+CMGS=\"+00"+number+"\""); // Specify the Destination number in international //format by             replacing the 0's
delay(150);
mySerial.print("Warning! Intruder Alert!"); // Enter the message 
delay(150);
mySerial.write((byte)0x1A); // End of message character 0x1A : Equivalent to Ctrl+z
delay(50);
mySerial.println();
}
//Makes a call when call_key is pressed
else if (digitalRead(call_key)==LOW) // Check if the call key is being pressed
{
mySerial.println("ATD+91"+number+";"); //Specify the number to call
while(digitalRead(call_key)==LOW);
delay(50);
}
//Hang the call
else if (digitalRead(end_key)==LOW) // Check if the hang up key is being pressed
{
mySerial.println("ATH");
while(digitalRead(end_key)==LOW);
delay(50);
}
}

Da ich die Call Funktion nicht brauche habe ich ihn hier angepasst:

/*
* Arduino Wasser Alarm
*/
//Connect the Tx pin of the GSM modem to D3
//Connect the Rx pin of the GSM modem to D4
//SMS Trigger Key/Input connected to D7 (Active LOW)
//CALL Trigger Key connected to D8 (Active LOW)
//END Key Connected to D9 (Active LOW)
#include <NewSoftSerial.h>
NewSoftSerial mySerial(3,4); // RX and TX pins to communicate with GSM module
#define msg_key 7
#define call_key 8
#define end_key 9
String number ="0000000000"; // Add the 10-Digit Mobile Number to which message / call is to be //made,by replacing the 0's
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(msg_key,INPUT);
pinMode(call_key,INPUT);
pinMode(end_key,INPUT);
digitalWrite(msg_key,HIGH);
digitalWrite(call_key,HIGH);
digitalWrite(end_key,HIGH);
}
void loop()
{
//Sends an sms everytime msg_key is pressed if (digitalRead(msg_key)==LOW) // Check if the sms key is //being pressed
{
mySerial.println("AT+CMGF=1"); // Set the Mode as Text Mode
delay(150);
mySerial.println("AT+CMGS=\"+00"+number+"\""); // Specify the Destination number in international //format by replacing the 0's
delay(150);
mySerial.print("ACHTUNG WASSER LAEUFT UEBER!"); // Enter the message 
delay(150);
mySerial.write((byte)0x1A); // End of message character 0x1A : Equivalent to Ctrl+z
delay(50);
mySerial.println();
}

Wenn nun Pin 7 auf Masse gebracht wird, wird doch diese eine SMS ausgelöst, richtig?

Welcher Arduino ist das denn un diesem Projekt? Ist das der Nano oder der Micro? Kann ich generell einen Nano oder Micro nehmen, passen dann die Pin Belegungen noch?

Ich bin noch nicht so ganz schlau daraus geworden, das der “end key” zu tun hat. Der ist doch nur zum auflegen der Telefonverbindung, oder?

Dann ich diesen dann auch einfach weg lassen?

Würde folgende Hardware passen, wenn ich mir diese schnell bestelle?
http://www.ebay.de/itm/SIM900-GPRS-GSM-Board-Quad-Band-Module-antenna-Kit-fur-Arduino-Raspberry-Pi-DIY-/111881284759?hash=item1a0ca4ec97:g:a7UAAOSwHnFVukAw

Und als Controller:

Passt das an Hardware? Vor allem hat der eBay GSM Shield 5V anstatt 12V wie der aus dem Tutorial.

Damit könnte ich ja mit dem abgeänderten Code einfach loslegen, oder? :slight_smile:

Danke schon mal

Ich kenne das von dir verlinkte Modul nicht, es wurde hier aber schon mehrfach eingesetzt und funktioniert.
Der Sketch von dir sollte auch funktionieren, ich habe auf die Schnelle keinen gravierenden Fehler finden können, außer dass du die if-Anweisung entfernt hast. Damit sendet das Modul dauernd die SMS, das kann teuer werden.

Damit das mit der Taste an Pin D7 wieder funktioniert, muss die if-Anweisung wieder rein.
Den End-Key brauchst du tatsächlich für deine Funktion nicht.

Somit passt Hardware und Sketch zusammen.

Bzgl dem Magnetventil: auf dem Schrott liegen zu Hauf Waschmaschinen oder Geschirrspülmaschinen rum. Da kann man sich so einen Magnetschalter kostenlos abbauen, wie ich es für meine GartenBäbewässerung getan habe. Die kannst du recht einfach über ein Relais schalten.

Super, vielen Dank für deine Hilfe.

Ist das generell (auch in Hinsicht der pin's und pinbelegung) egal, ob ich mir den Arduino Micro, Mini oder Nano kaufe? Oder doch den Uno? Dann würde ich das ins Gehäuse bauen und gut ist :slight_smile:

Danke für den Hinweis mit der If Funktion, hab ich gar nicht gemerkt :slight_smile:

Aaronseibert:
Super, vielen Dank für deine Hilfe.

Ist das generell (auch in Hinsicht der pin's und pinbelegung) egal, ob ich mir den Arduino Micro, Mini oder Nano kaufe? Oder doch den Uno? Dann würde ich das ins Gehäuse bauen und gut ist :slight_smile:

Danke für den Hinweis mit der If Funktion, hab ich gar nicht gemerkt :slight_smile:

Den Micro kenne ich nicht, da kann ich nichts zu sagen. Aber Uno, ProMini und Nano haben identische Pin-Bezeichnungen.

Der Micro ist ein kleiner Leonardo mit 32u4 statt 328-Prozessor. Er hat ein etwas anderes Pin-Mapping und andere kleine Besonderheiten. Deshalb würde ich ihn nicht für ein Einstiegsprojekt nutzen. Der ProMini hat kein USB, du brauchst noch einen Programmieradapter (FTDI, CP2102).

Theseus:
Der ProMini hat kein USB, du brauchst noch einen Programmieradapter (FTDI, CP2102).

Das stimmt, hatte ich übersehen. Man kann auch einen UNOasISP zum Flashen verwenden.

Dankeschön, Bein suchen habe ich dann später das mit dem USB Anschluss bemerkt. Ich werde mir heute das gsm Modul und einen Nano bestellen, dann läuft das hoffentlich :slight_smile: