Neuling mit großen Plänen...

Hallo Freunde,

...so beginne ich die meisten meiner Posts - denn durch den Hang zum Basteln und Tüfteln sind wir alle untrennbar verbunden...

Trotz Sohn - drei Monate alt und verbraucht sämtliche Ressourcen - will ich meine ersten Gehversuche mit einem Arduino machen.

Durch meinen akademischen Grad als Maschinenbauingenieur bin ich etwas vorgeschädigt, allerdings habe ich so gut wie keine Programmierkenntnisse.

Super Voraussetzungen also für das was jetzt folgt:

Beim Versuch ein GSM Modul von Conrad in Betrieb zu nehmen wurde es von der Software an COM3 erkannt und es kam die Meldung "Modul startet...".

Das wars auch schon. Also, kaputt das Teil.

Ich hab Conrad kontaktiert und das Modul eingeschickt aber als Antwort erwarte ich: "Kauf neu!"

Also habe ich währenddessen recherchiert, dass es verschiedene Arduinos und diverse Shields gibt.

Weiter habe ich überlegt und recherchiert, dass man auch alte Handys als GSM Modem benutzen kann.

Klasse - wie im Kino!

Kurzerhand bestellte ich einen sainsmart Mega2560 R3 mit starter Kit und 2004 LCD Display.

Dazu noch ein SonyEricsson K700i mit Datenkabel. Das K700i soll eines der wenigen sein, die echte RX/TX Anschlüsse besitzen.

Die Gesamtkosten liegen bisher bei etwa 50€. Dafür kriegt man kein fertiges GSM Modul - schon gar nicht mit so vielen Möglichkeiten.

Jetzt warte ich auf die Post...

Also was soll es werden?

Als Mindestanforderung will ich eine vordefinierte SMS bekommen, wenn am Arduino ein Ereignis eintritt. Wenn z.B. der Heizkessel einen Alarmkontakt betätigt oder wenn eine Temperatur unter- oder überschritten wird.

Auf Befehl hin - nämlich durch SMS meinerseits - soll der Arduino mir eine Status-SMS schicken mit den aktuellen Werten der interessanten Ein- und Ausgänge.

Ebenfalls auf Befehl hin, sollen Ausgänge geschaltet werden können.

Wenns gut läuft will ich versuchen ein Menue zu bauen, in dem man die Befehle, Grenzwerte, etc. selber eingeben kann.

Ich glaube, dass ich die Mindestanforderung durch Recherche und durch Copy&Paste von Codefragmenten in weiten Teilen selber lösen kann.

Ich weiß jedoch, dass ich zusätzlich eine Menge Denkanstöße und Beispiele brauchen werde weil mir jegliche Programmiererfahrung fehlt.

Oft sind die Lösungen so einfach - man muss nur drauf kommen...

Genau dazu erhoffe ich mir die Hilfe des Forums.

Hier tummeln sich die Programmierer, die daheim nicht deutsch sondern C++ sprechen, kurz die Jungs, die von uns Maschinenbauern als "Bitschubser" bezeichnet werden - was natürlich sehr liebevoll gemeint ist.

Die ersten paar Dutzend Fragen hätte ich auch schon...

...aber nicht direkt im ersten Post, der wird sonst zu lang.

So, vierzehntausend Zeichen voll...

Auf gutes Gelingen!

EDIT: Oft werde ich kurz "Schmiddi" genannt. Den vollen Namen kann eh keiner ausschreiben...

In der Arduino Software gibt es eine GSM Library. Schau dir die Beispiele dazu an, vor allem "ReceiveSMS" und "SendSMS". Das wäre schon mal ein Anfang. Wobei letzteres durch die Serial Eingabe schon komplizierter ist als es sein müsste. Man kann Telefon-Nummer und den Text auch einfach fest vorgeben.

Mach erst mal das Senden von SMS. Das ist einfacher. Das Empfangen und darauf dann was Senden baut darauf auf.

Hallo Schmiddi!

Ich versteh die Frage nicht...

aber trotzdem ein Tipp: divide et impera!

Willkommen im Forum.

Hast du kein Internet dort rumliegen? Ist billiger und einfacher.

Stimmt, billiger ist es, aber einfacher und vor allem zuverlaessiger sicher nicht. Ueber einen SMS-Dienst kann eine Nachricht schon mal laenger unterwegs sein. Fuer Alarmmeldungen nicht brauchbar.

Hab selbst erlebt daß eine SMS über 1 Stunde brauchte um anzukommen. Grüße Uwe

uwefed:
Hab selbst erlebt daß eine SMS über 1 Stunde brauchte um anzukommen.

Hi,

das kann ich toppen: Hab’ gerade eine SMS bekommen, die am 23.12. losgeschickt wurde (EPlus).

Gruß,
Ralf

@Serenifly: Das Senden ist auch erstmal das wichtigste. Wenn der Pelletskessel in Störung geht muss ich das wissen denn er kommt da von allein nicht wieder raus.

@Hitsuji: Was soll ich wodurch teilen um dann über wen oder was zu herrschen !?

@ElEspanol: Ich hab dort (Ferienhütte) kein Internet via DSL oder so. Daher kommt nur die Funknetzvariante in Frage.

Dass SMS mal länger brauchen kennt man ja. Verzögerungen im Minutenbereich bis hin zu wenigen Stunden sind hier unkritisch.

Wenn SMS verloren gehen oder erst Tage später ankommen wäre das natürlich nicht so gut.

Zum Testen habe ich eine SIM vom Aldi (EPlus) und eine X-Tra Card (D1).

Ich sollte dann mal testen, wie die Verzögerungen je nach Anbieter ausfallen.

Gerade das EPlus Netz dürfte ziemlich überlastet sein da dort so viele Discounter ihre Finger drin haben.

Teilen und Herrschen ist ein Problemlösungsverfahren in der Informatik: http://de.wikipedia.org/wiki/Teile_und_herrsche_%28Informatik%29

In dem Artikel ist das etwas zu stark auf Algorithmen zugeschnitten, aber man kann das auch eine Ebene höher in der Entwurfsphase anwenden. Damit ist dann gemeint, dass man eine größere Aufgabenstellung in Teil-Probleme zerlegt und erst mal soweit wie möglich getrennt behandelt.

Man kann es sogar praktisch überall anwenden. Dein Vorhaben kommt mir ziemlich umfangreich vor. Vorallem, wenn du noch wenig Vorkenntnisse im Programmieren hast, gibts da wohl noch ziemlich viele Stolpersteinchen. Deshalb dieser Tip, alles in kleinen Häppchen anzugehen und einzeln zu testen. Viel mehr kann ich zu deinem Vorhaben nicht beitragen, da das meiste, womit du es zu tun bekommen wirst, für mich selbst unbekannt ist. Wollte aber auch mal hallo sagen ;)

Hallo Schmiddi!

die Idee mit dem Handy finde ich gut, ABER... ... befürchte ich, dass es hierfür keine Bibliotheken gibt die du verwenden kannst und du somit herausfinden musst, wie das SE Ding angesprochen werden will. Da dies Seitens der Hersteller recht proprietär gelöst wird befürchte ich, dass du hier einiges an Recherche Aufwand mit ungewissem Ausgang hast ;-)

Denkanstoß:

Hast du dir schon mal überlegt, das ganze mit Einem Raspberry PI + USB GSM Datenstick + Webserver am PI zu machen? Die Kosten hierfür würden sich auf ca. 60€ belaufen und du ersparst die das zerpflücken des SE Protokolls.

Die Daten vom Arduino kannst dann direkt via Seriell auf einer Website darstellen... und immer den aktuellen Status abrufen und Steuerbefehle absetzen.

LG

Hallo!

Schaut gut und einfach aus :

https://bitbucket.org/willo/arduino-code-collection/src/a543c9da458d5939aaa39793978d81dca189effa/SMS%20K700i%20PDU/K700I_PDU_SMS_SKETCH/K700I_PDU_SMS_SKETCH.ino?at=master

PDU Converter:http://www.smartposition.nl/resources/sms_pdu.html#PDU_CONVERTER

..sollte doch gehn ?

mfg Martin

@SerialQ: An den PI hatte ich auch gedacht - aber erst nachdem der Mega2560 schon bestellt war. Daher rückt PI erstmal nach hinten.

@Wasjetzt: Hilfreicher Link mit dem Code. Ich versuch mal das zu lesen...

Einen online PDU Converter hatte ich auch schon entdeckt. Ob das K700i auch Textmode kann, weiß ich noch nicht.

Mit den AT-Befehlen sollte es doch möglich sein, den SMS Inhalt, also im wesentlichen Nummer und Text, ans Handy zu senden bzw eingehende SMS auszulesen.

Sobald alle Teile da sind, fange ich mal ganz klein an und stecke ein paar Beinchen ins Breadboard...

Ich hoffe, das wird dieses Wochenende sein.

Wasjetzt:
Hallo!

Schaut gut und einfach aus :

Bitbucket

PDU Converter:http://www.smartposition.nl/resources/sms_pdu.html#PDU_CONVERTER

…sollte doch gehn ?

mfg Martin

da hab ich mich wohl geirrt… schaut wirklich gut aus, damit kann man was anfangen :wink:

Danke fürs teilen…

LG

Ich hab mal angefangen den Code zu lesen und sah, dass der von Will Ockenden ist.

Dessen Homepage und sein Projekt hatte ich auch schon entdeckt:

…bloß den Code nicht.

Aus genau dieser Quelle habe ich auch die Empfehlung des K700i wegen der gut zugänglichen RX/TX Anschlüsse - auch wenn das bei ihm etwas gruselig aussieht…

Ich hab da noch eine Seite entdeckt, die sehr schön die AT-Befehle darstellt:

http://www.nobbi.com/atgsm.html

Auch sehr hilfreich:

https://sites.google.com/site/marthalprojects/home/arduino/arduino-sends-SMS

Soooohoho.

Der freiberufliche DHL Mitarbeiter hat mir einige schöne Päckchen vorbeigebracht.

Von Sainsmart einen Mega 2560 R3, LCD 2004 und ein Starter Kit mit allem möglichen Kleinkram.

Dann ein K700i für 1,50€ aus der Bucht und ein Datenkabel dazu.

Von Reichelt noch ein paar Optos, Widerstände, Streifenrasterplatine und ein etwas größeres Sterckbrett.

Vom Datenkabel hab ich dann mal den USB Stecker abgeschnitten und selbigen geöffnet. Darin werkelt ein PL2303HX USB to Serial Bridge controller. Den kann man vielleicht nochmal brauchen...

Sodann durchgebimmelt, wie die Adern am K700i Stecker ankommen.

Ergebnis:

Pin2 rot Pin3 grün Pin4 weiß =RX Pin5 blau =TX Pin10 Schwarz =GND

Da Pin2 nicht benötigt wird, habe ich untersucht, ob der Stecker sich öffnen lässt. Und in der Tat lässt sich dieses Exemplar sogar außerordentlich gut öffnen. Vier Rastnasen halten das Teil zusammen, die man mit einem 1mm Schlitzschraubendreher aushebeln kann.

Ich habe dann die rote Ader von Pin2 auf Pin11 umgelötet. Dadurch steht neben GND auch VCC zur Spannungsversorgung zur Verfügung.

Da auf dem mitgelieferten Originalnetzteil eine Ausgangsspannung von 4,9V angegeben ist, habe ich mal nachgemessen.

Im Leerlauf liegen sogar 5,1V an.

Es sollte also kein Problem darstellen, das Handy ganz gewöhnlich mit 5V zu versorgen.

Die nächste Aufgabe wird jetzt darin bestehen, Mega2560 und K700i zu verbinden und einerseits über SoftSerial das Handy anzusprechen und andererseits über den SerialMonitor die Antwort anzusehen.

Vielleicht mache ich das noch heute aber erstmal ab ins Bett.

P.S.: Wie kann man hier Bilder hochladen?

Ich hab vorher noch eine interessante Operation erledig t(vielleicht interessiert das einen):

Der Timekeeper IC in einem Messgerät war tot. Interne Batterie leer. Da das alles vergossen ist, habe ich das IC GEhäuse soweit weg gedremelt dass ich an beide Batteriepole herankam und einen Pol von der Batterie getrennt.

Sodann dünne Adern angelötet und eine externe Knopfzellenhalterung angebaut.

Mit einer frischen CR2032 läuft das jetzt wieder.

Gerät gerettet. ;)

Wer lesen kann…

Ich versuch mal die Attachments unten.

Falls das klappt, seht Ihr die Hauptplatine des Messgerätes mit dem fraglichen Timekeeper Chip unten rechts im Bild.

Den Chip aufgedremelt und dünne Litzen angelötet. Mit einem Knopfzellenhalter bestückt läuft das jetzt wieder.

Mein eigentliches Projekt ist inzwischen auch etwas gewachsen.

Auf einem Stück Spanplatte haben sich neben einem Steckbrett und einem Stück Hutschiene mit Reihenklemmen auch der Mega2560 nebst LCD2004 mit I2C Adapter eingefunden.

Auch das Sony Ericsson K700i fand noch einen Platz.

Auf dem Steckbrett werden ganz links 5V aus 7,5V vom Steckernetzteil gemacht. Das übernimmt ein µA7805 mit zwei winzigen Kondensatoren. Auf größere Elkos habe ich hier verzichtet, weil das Netzteil saubere 7,5V liefert und weil hier nur winzige Verbraucher, wie LCD Display und digitale IOs versorgt werden.

Der Mega2560 wird direkt mit 7,5V versorgt, das Handy hat sein eigenes Originalnetzteil. Alle Massen sind verbunden.

Die Verbindung von Mega2560 TX1 zum RX des K700i habe ich über einen Spannungsteiler mit 1k8 und 3k3 geführt, damit das Handy nur ~3,3V sieht. Der Strom am TX1 Pin liegt damit bei unter 1mA. Die Verbindung TX(Handy) zum RX1(Mega2560) geht einfach durch. Der 3,3V Pegel sollte sicher erkannt werden.

Zwei 8-fach Optokoppler LTV847 sind auch schon gesteckt, allerdings noch ohne Beschaltung. Die Optos werden die Verbindung zur 24V Seite der Beckhoff SPS herstellen.

Bild4.jpg

Bild1.jpg

Bild2.jpg

Bild3.jpg

Ein erster Erfolg:

Das K700i spricht zu mir!

Der Spannungsteiler in der TX Leitung des Mega2560 funktioniert also.

Noch eine Seite mit schönen Programmierbeispielen:

http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/

Betrifft zwar das SIMCOM SIM900 aber einzelne Programmteile lassen sich prima nachvollziehen - und kopieren.