|
asdfafawfawf
Anmeldungsdatum: Mai 27, 2012
Beiträge: 22
|

30. Dezember 2012 15:56
Hallo, ich hoffe ich bin hier im richtigen Forum, da es um ein Raspberry Pi geht, auf dem ich Raspbian installier habe und somit streng gesehen nicht Ubuntu, sondern Debian. Ich hoffe ihr seht das nicht so eng. Es geht um folgendes: ich will mit einem Raspberry Pi - vielleicht habt ihr davon gehört - und dessen GPIO-Pins ein Relais steuern, um eine Steckdose programmgesteuert ein- und auszuschalten, an der eine Kaffeemaschine oder ähnliche Elektroverbraucher angeschlossen sind. Das ganze soll per Anruf, SMS oder E-Mail das Kommando zum Einschalten der Kaffeemaschine entgegennehmen können. Dazu soll auf dem Raspberry Pi ein Dienst laufen, den man dann auch per | /etc/init.d/kaffeeserver start
/etc/init.d/kaffeeserver stop
/etc/init.d/kaffeeserver restart
|
ein- und ausschalten kann. Wie würdet ihr so etwas programmieren? Wo würdet ihr da vielleicht eventuelle Konfig-Dateien hinlegen? Würdet ihr es so machen wie oben beschrieben oder einfach in ein Init-Script einen Programaufruf legen? Ich bin da noch am Überlegen wie es wohl am sinnvollsten ist. Danke für euere Vorschläge Bearbeitet von tomtomtom: Absichtlich falsch angegeben Version aus Versionauswahl entfernt.
|
|
user unknown
Anmeldungsdatum: Aug. 10, 2005
Beiträge: 13796
Wohnort: Berlin
|

30. Dezember 2012 16:50
Das Gerät hat kein GSM-Modul oder? Wie kann man ihm dann eine SMS schicken, oder das Gerät anrufen?
|
|
asdfafawfawf
(Themenstarter)
Anmeldungsdatum: Mai 27, 2012
Beiträge: 22
|

30. Dezember 2012 17:30
Das ist ja die Frage. Ich denke E-Mail ist für das erste das eifachste. SMS und Anruf könnte ich dadurch lösen, dass ich ein Handy nimm, dies mit einem Audio-Kabel an das Raspberry anschließe und (mit OpenAL z. B.) prüfe, ob ein Geräusch gerade vom Mirkofon kommt, was dann das Handy ist, also ob das Handy gerade klingelt, dadurch dass ich die Audiosignale des Handys in das Raspberry Pi leite und dadurch feststelle, ob es klingelt. Oder ich überlege mir den Kauf eines zusätzlichen Moduls.
|
|
senden9
Anmeldungsdatum: Feb. 8, 2010
Beiträge: 461
|

30. Dezember 2012 18:04
Da könnte man was schönes mit Asterisk + einen VOIP Account basteln. Ein einfaches Menü. Ansage: "Drücke 1 um die Maschine starten, drücke 2 um ..." An den GPIOs der Raspberry Pi bekommst du eine Spannung von 3.3 Volt und einen maximalen Strom von wenigen mA. Raspberry Pi – Driving a Relay using GPIO
|
|
user unknown
Anmeldungsdatum: Aug. 10, 2005
Beiträge: 13796
Wohnort: Berlin
|

30. Dezember 2012 22:19
asdfafawfawf schrieb: Das ist ja die Frage. Ich denke E-Mail ist für das erste das eifachste.
Hängt von der Infrastruktur ab. "Kaffeemaschine, Steckdose" klingt nach einer Infrastruktur, in der man vielleicht auch einen Router hat - dann wäre Email naheliegend. Dann ist die Frage, womit man am liebsten steuern möchte - SMS, Email, ...
|
|
asdfafawfawf
(Themenstarter)
Anmeldungsdatum: Mai 27, 2012
Beiträge: 22
|

31. Dezember 2012 11:09
Fürs erste werde ich einmal E-Mail verwenden, das hört sich am leichtesten an. Man braucht also quasi einen Dienst, der in regelmäßigen Abständen E-Mails abruft, prüft ob sie von einer zugelassenen E-Mail-Adresse kommen und dann die Kaffeemaschine eine Zeit lang einschaltet, oder? Die Stichworte Asterisk und VOIP Account werde ich googeln, die Frage ist dann eben ob es VOIP Accounts kostenlos gibt und ob Asterisk auf dem Raspberry Pi läuft. Doch wie könnte ich dem Gerät eine SMS schreiben?
|
|
diesch
Supporter
Anmeldungsdatum: Feb. 18, 2009
Beiträge: 4137
Wohnort: Freiburg
|

31. Dezember 2012 11:58
Ich würde erst einmal ein Kommandozeilen-Programm schreiben, das Befehle (im einfachsten Fall z.B. AN, AUS) von stdin liest und die Kaffeemaschine entsprechend schaltet. Das kannst du dann über inetd per TCP erreichbar machen, so dass du deine Kaffeemaschine per netcat o.ä. steuern kannst. Du kannst auch Mails mit fetchmail abholen und an z.B. procmail weitergeben, das dann das Steuerprogramm aufruft. Oder das Steuerprogramm von z.B. Asterisk, xringd, ... aufrufen lassen.
|
|
track
Anmeldungsdatum: Juni 26, 2008
Beiträge: 4736
Wohnort: Wolfen (S-A)
|

31. Dezember 2012 12:06
Sind solche höheren Protokolle denn hier überhaupt so sinnvoll ? Das Ding hängt doch ganz normal am Netzwerk, nicht ? - dann könnte man dem doch sowas ähnliches wie en WOL-Paket schicken, und das schaltet die Büchse dann direkt. Ist das hinsichtlich des Overheads nicht eine günstigere Variante ? track
|
|
senden9
Anmeldungsdatum: Feb. 8, 2010
Beiträge: 461
|

31. Dezember 2012 16:45
Dann müsste der Server aber aktiv via Internet erreichbar sein (Portforwarding, DynDNS, ...). Eine Mail kann ich an einen GMail-Account senden und der Server kann sie einfach abrufen ohne das er aktiv von außen erreichbar ist. Ich würde sagen zuerst sollten die Core-Funktionen in einem Programm zusammengesammelt werden. Diese Programm kannst du dann in externen Skripten verwenden (Asterisk, Fetchmail, ...). Einen gratis VOIP Zugang gibt es z.B. bei sipgate.
|
|
track
Anmeldungsdatum: Juni 26, 2008
Beiträge: 4736
Wohnort: Wolfen (S-A)
|

31. Dezember 2012 16:54
asdfafawfawf schrieb: Doch wie könnte ich dem Gerät eine SMS schreiben?
Dafür müsstest Du irgendwie den Medienübergang vom GSM ins Internet schaffen. Du bräuchtest
eine Telefonnummer, die die SMS annehmen und weiterleiten kann, und auf diesem Gerät einen Forwarder, der das dann an Deine Kaffeemühle weiterschickt.
(-> wahrscheinlich irgend sowas) Wenn Du diesen Weg nicht willst, müsstest Du ein Handy in Deine Kaffemühle einbauen. track
|
|
asdfafawfawf
(Themenstarter)
Anmeldungsdatum: Mai 27, 2012
Beiträge: 22
|

1. Januar 2013 02:30
Ich rechne damit, dass ein Programm programmiere, was ich dann mit | /usr/bin/kaffee 0
/usr/bin/kaffee 1
|
ein- und ausschalten kann. Als nächstes soll es dann einen Dienst unter /etc/init.d/kaffeeserver geben, der dann die Protokollanfragen entgegen nimmt. Um die GPIO-Pins und somit das Relay und somit die Kaffeemaschine zu schalten dürfte man aber Root-Rechte benötigen, das werde ich prüfen. Warum ich ein höheres Protokoll nehmen muss? Am angenehmsten währe ja eine Weboberfläche, doch sie sollte mit jedem möglichem Handy ein- und ausschaltbar sein, auch mit älteren und einfachen Geräten. E-Mail, SMS und Anruf kann ich einer Schleife prüfen. Bei einem höheren Protokoll möchte ich auch Authentifizierung einbauen: Bei E-Mail und SMS kann ich den Absender prüfen - anhand der Absenderadresse oder eines Zertifikates - und ein Keyword in die E-Mail oder die SMS legen. Unter Umständen auch einmal einen Parameter z. B. wie lange die Kaffeemaschine eingeschalten sein soll und somit wie viel Kaffee gekocht werden muss - Shell Command Line Injection muss natürlich abgefangen werden. Bei Anruf kann ich die Adresse des Absenders prüfen und vielleicht auch eine Tastenkombination eingeben lassen, die mich authentifiziert. Auch hier liese sich die Menge des Kaffees eingeben. Außerdem wird das Rapsberry per USB-WLAN-Stick an das Internet angeschlossen, Wake on Lan haut also nicht hin. Vielen Dank aber für euere Vorschläge, ich werde mir das alles einmal anschauen.
|
|
mkdir
Anmeldungsdatum: Sept. 24, 2012
Beiträge: 23
|

2. Januar 2013 19:02
Am einfachsten wäre sicherlich eine Implementation über Sockets.
Man könnte ja sonst auch noch ein Webinterface per Python oder PHP realisieren, das bei Bedarf einen Socket losschickt.
|
|
Held-der-Arbeit
Anmeldungsdatum: Jan. 9, 2006
Beiträge: 310
|

2. Januar 2013 19:17
Sofern das Mobil-Telefon einen Browser besitzt, wovon ich heutzutage ausgehe, kannst Du ja auch kleinen Web-Server aufsetzten (z.B. lightttpd) und dann per CGI die GPIOs ansteuern. PS: Endlich mal ein wenig E-Technik / Elektronik in diesem Forum. Ich will mehr davon.
|
|
asdfafawfawf
(Themenstarter)
Anmeldungsdatum: Mai 27, 2012
Beiträge: 22
|

5. Januar 2013 14:55
zunächst steht ja einmal das Programm zum Ein- und ausschalten der GPIO-Pins an. Ich verwende http://www.amazon.de/reVolt-revolt-Automatische-USB-gesteuerte-Steckdosenleiste/dp/B005X4IW3A/ref=sr_1_1?ie=UTF8&qid=1357393766&sr=8-1, die aus dem Spannungs- und Masseport der USB-Schnittstelle schaltet. Ich muss also jetzt das USB-Kabel auftrennen und per GPIO nun die Spannung so erzeugen, dass ich das mechanische Relais ansprechen kann. Da ist jetzt die Frage, wie ich das am besten anstelle, denn die GPIO-Pins sind DIREKT auf der CPU terminiert. Ein falscher Griff und 40 Euro sind zerschossen. Außerdem soll das Raspberry pi es ja aushalten, wenn die Steckdosenleiste eine Zeit lang angeschlossen und eine Zeit lang durchgeschalten ist, ohne dass es nennenswert überlastet ist. Wisst ihr da zufällig, wie man das machen kann? Währe schön von euch.
|
|
Held-der-Arbeit
Anmeldungsdatum: Jan. 9, 2006
Beiträge: 310
|

5. Januar 2013 15:09
Versuch es mal mit einem Optokoppler, dann hast Du eine sichere Trennung zwischen Steuer- und Laststromkreis und die GPIOs sind geschützt.
|