Lampe - LED via Internet ansteuern

OP #3708205
Hallo,
ich wende mich an Euch, in der Hoffnung, dass jemand mir weiter helfen 
kann, bzw. dass ich es in der richtiger Kategorie poste.
Habe viel nach recherchiert, jedoch nicht das gefunden, was ich gerne 
haben möchte.

Ich möchte gerne mit einem Smartfon  (eigener (Android) App), egal was, 
- sagen wir eine LED, .... Lampe anschalten.
Gefunden habe ich;

1) ALLNET ALL4075
Ist mir aber "zu leicht" - basiert auf ne xml Datei. Man implementiert 
die *.xml Datei auf ne Homepage und es wird alles nötiges (Steuerung) 
"generiert".
...
42) Entwickler- Board´s ohne Betriebsystem .... dafür bin ich sorry! zu 
blöd.

Was ich suche ist ´ne Hardware, welche ich mit Internet (an meinen 
Router) verbinde (? feste IP) und mit einem Protokoll (Code) aus meiner 
App es steuern kann.
Stelle mir das in etwas so vor:
- mit (ip) x.x.x.x.y Verbinden
- 12345 (Adresse) eines Relais1 (LED1) für an senden -> Relais1 (LED1) 
-> AN
- 12346 (Adresse) des Relais1 (LED1) für aus senden -> Relais1 (LED1) -> 
AUS

Für jeden Tipp - werde mich sehr freuen.
Danke &

LG
Georg
Gast #3708280
Würd den RaspberryPi nehmen und dann ne kleine Webapp in Python 
schreiben die den gpio ansteuert. Wenn man doch mal was anderes machen 
will kann man dem nem wlan-stick geben und hat ihn mobil im netz.
Als Betriebssystem Linux Raspbian.
für 10 euro noch lautsprecher ran (bei mir stromversorgt über aktivem 
usb-hub den man noch braucht wenn man festplatten etc. an den pi 
anschließen will) und man hat nebenbei mit den Lautsprechern noch 
webradio oder kann Sprachausgabe-Meldungen mit espeak machen:


echo "I sound like a female" | espeak -v female3

echo "The time is `date +"%H %M"`"| espeak -v female3

echo "Old Mc Donald had a Farm IAH IAH OH." | espeak -v english -s 140
#3708317
Ich arbeite gerade an sowas und benutze einen Raspberry Pi mit Python3 
und Tornado um einen Websocket-Server zu schreiben der die Kommandos 
entgegennimmt. Minimalbeispiel:
1
#!/usr/bin/env python3
2

3
import tornado.web
4
import tornado.websocket
5
import tornado.ioloop
6

7
class WebSocketHandler(tornado.websocket.WebSocketHandler):
8
    # the client connected
9
    def open(self):
10
        print("New client connected")
11
        self.write_message("You are connected")
12

13
    # the client sent the message
14
    def on_message(self, message):
15
        print("Got a message: >>>"+message+"<<<, parsing it..")
16
        self.write_message(RequestHandler(message))
17

18
    # client disconnected
19
    def on_close(self):
20
        print("Client disconnected")
21

22

23
def RequestHandler(requestlist):
24
    requestlist = requestlist.splitlines()      # String von Kommandos (jedes Kommando eine Zeile) aufteilen
25
    returnlist = ""                             # Liste für abgearbeitete Kommandos (wird zurück zum Client geschickt)
26
    for request in requestlist:
27
        request =  request.strip()              # Unnötige Whitespaces entfernen
28
        requestsplit = request.split(':')       # "command:value" auftrennen
29
        requestsplit.append("dummy")            # Falls keine value mitgegeben wurde wird "dummy" als value benutzt (um Fehler bei der Ausführung zu vemeiden)
30
        command = requestsplit[0]
31
        value = requestsplit[1]
32
        if command == "set.led1":
33
            if value == "on":
34
                # Hier LED1 einschalten
35
                returnlist += "\n set.led1:ok"
36
            if value == "off":
37
                # Hier LED1 ausschalten
38
                returnlist += "\n set.led1:ok"
39
        
40
    return returnlist
41

42

43
# start a new WebSocket Application
44
# use "/" as the root, and the
45
# WebSocketHandler as our handler
46
application = tornado.web.Application([
47
    (r"/", WebSocketHandler),
48
])
49

50
# start the tornado server on port 8888
51
if __name__ == "__main__":
52
    application.listen(8888)
53
    tornado.ioloop.IOLoop.instance().start()
Hier auch noch der Code der im Moment auf meinem Roboter läuft: 
https://github.com/schuhumi/autocut/blob/master/Software/Main%20Module/Commandserver/CommandServer/main.py

Um Befehle an den Server zu schicken benutze ich Javascript, das auch 
auf dem Roboter gehostet wird. Zur Orientierung: 
https://github.com/schuhumi/autocut/blob/master/Software/Main%20Module/Webserver/js/websocket.js 
(function set_ws_status(status) gehört da nicht rein sehe ich grade...)
Die LED würdest du damit so anschalten:
1
WebSocket_Open();
2
WebSocket_Send('set.led1:on')
3
WebSocket_Close();
OP #3709286
Hallo,
VIELEN! dank für Eure antworten.
Vorher wusste ich nicht wonach ich explizit suchen soll!
Jetzt "Toogle" ich zwischen Lantronics XPort und RaspberryPi.
Beide  sind "HOCH" interessant.
Im besonderen danke an @Simon S für Deine ausführliche (fast Tutorial) 
Antwort.
Embedded Systeme sind leider für mich schon OUT! - (bin 52-ig und habe 
die "PC- Evolution" so zusagen verschlafen") Bei der "Oberfläche 
Programmierung" - geht es einiger masse bei mir. Als "Krönung" meiner 
""Hobby Welt" - möchte gerne das Projekt durchziehen:
Mit Handy (App schreiben) eine LED / Lampe (Hardware) via Internet 
(steuern).
Es ist mir bewusst!, - dass so was schon Fertig auf dem Markt zu finden 
ist, - viele von euch es in ein paar Stunden - Tage - es kreieren 
könnten .... ist für mich ne letzte Voraussetzung.
blablabla ... OK!
Habe mich durch Eure Vorschläge (Lantronics XPort, RaspberryPi) etwas 
durchgeklickt.
Egal an was ich mich entscheide; - ich bedanke mich herzlich für die 
Tipps.
Irgendwie, sagt mir aber mein "Orakel Paul", dass ich hier 
(diesbezüglich) noch was fragen würde - hihihi
Leute - DANKE!

LG
Georg

Ps.
An Moderator: - sorry & danke für die Verschiebung in die richtige 
Kategorie.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.