- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 5 von 5

Thema: Wie GPIO aus dem Internet ansteuern (öffentlicher Webserver)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.10.2016
    Beiträge
    45

    Wie GPIO aus dem Internet ansteuern (öffentlicher Webserver)

    Anzeige

    Powerstation Test
    Hallo zusammen,
    derzeit kann ich die GPIO's des ESP8266 über mein lokales Wlan ansteuern. Das ist eine feine Sache.
    Jetzt möchte ich dies über das Internet realisieren. Vorhanden ist Webspace auf dem ein PHP-Server läuft. PHP-Grundkenntnisse sind vorhanden.
    Würde gerne die Funktionalität der Alexa grob nachbilden und im Haushalt Geräte schalten.

    Kann mir da jemand über ein paar Stichpunkte die Vorgehensweise andeuten? Geht das überhaupt da die IP-Adresse meines Routers sich ja öfters ändert, wobei die Alexa ja die selben Voraussetzungen hat.
    Bin auf Eure Antworten gespannt. Vielleicht haben auch mehrere von Euch Teilinformationen die dann ein Ganzes ergeben?

    Vielen Dank

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    okay ... du mischst hier 3 sachen ... ESP aus dem Internet erreichbar machen ... wozu den PHP server? ... was hat Alexa damit zu tun?

    der ESP kann ja selber als quasi webserver funktionieren, den aber public ins netz zu legen (port forwarding und dyndns ... oder alternativen, dyndns ist nicht mehr kostenlos glaube ... als stichworte) ist mutig, da du nicht unbedingt vorhersagen kannst was du dir damit für ein einfallstor in dein lokales netz eröffnest

    einen externen PHP als befehls-server zu nehmen wäre jetzt nicht unbedingt eine schlechte idee ... dein ESP baut von sich aus eine verbindung mit deinem PHP server auf ("websockets", "sever sent events" oder vergleichbar) und du kannst dich auf dem PHP einloggen, befehle geben und die befehle werden dann über die Verbindung von deinem ESP zum PHP an den ESP weiterlgeleitet
    Bonus: du umgehst die dynamische IP, denn dein ESP verbindet sich aktiv mit dem kontroll-server

    Alexa macht das auch so ... eine verbindung zu amazon, sprache aufnehmen, zu Amazon senden, auswerten lassen und antwort empfangen und ausgeben
    Geändert von Ceos (16.03.2018 um 07:33 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    HaWe
    Gast
    Zitat Zitat von stepbystep Beitrag anzeigen
    Hallo zusammen,
    derzeit kann ich die GPIO's des ESP8266 über mein lokales Wlan ansteuern. Das ist eine feine Sache.
    Jetzt möchte ich dies über das Internet realisieren. Vorhanden ist Webspace auf dem ein PHP-Server läuft. PHP-Grundkenntnisse sind vorhanden.
    Würde gerne die Funktionalität der Alexa grob nachbilden und im Haushalt Geräte schalten.

    Kann mir da jemand über ein paar Stichpunkte die Vorgehensweise andeuten? Geht das überhaupt da die IP-Adresse meines Routers sich ja öfters ändert, wobei die Alexa ja die selben Voraussetzungen hat.
    Bin auf Eure Antworten gespannt. Vielleicht haben auch mehrere von Euch Teilinformationen die dann ein Ganzes ergeben?

    Vielen Dank
    über no-IP https://my.noip.com erhältst du kostenlose dynamische IPs, und nach meiner Beobachtung funktioniert die Verbindung zum esp8266, auch wenn die öffentliche IP seitens des Providers zeitweise zwischendurch wechselt, vorrausgesetzt, der ESP ist dauerhaft in Betrieb - ansonsten musst du bei no-IP in deinem pers. Account die öffentliche IP manuell updaten.
    no-IP bietet auch Tools, um die dyn-IP noch etwas einfacher updaten zu können.

    Für Zugriffe von außen musst du einen Port in deinem Internetrouter (meist Port 80) auf deinen esp weiterleiten, man kann den meist per drop-down-Menü erkennen, sobald er mit dem Router lokal verbunden ist.
    Diesen Port gibst du dann auch bei der Einichtung deiner url bei no-IP an.

    die Verbindung des ESP über das WLAN zum web (ohne php-Server, ggf. zusätzlich zu ESP8266WebServer) wird über die Lib
    #include <ESP8266WiFi.h>
    eingebunden, per

    #define http_port 80
    WiFiServer wifiserver(http_port);

    wifiserver.begin();

    Lit.: https://tttapa.github.io/ESP8266/Cha...%20Server.html


    Zu Sicherheitsfragen hat sich ja Ceos bereits geäußert.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    14.10.2016
    Beiträge
    45
    Hallo,
    vielen Dank für die Antworten. Respekt vor diesen Netzwerkkenntnissen!

    Den mutigen ESP-Webserver der GPIO's schaltet habe ich bereits. Interessieren würden mich jetzt Details zu:
    Zitat Zitat von Ceos Beitrag anzeigen

    einen externen PHP als befehls-server zu nehmen wäre jetzt nicht unbedingt eine schlechte idee ... dein ESP baut von sich aus eine verbindung mit deinem PHP server auf ("websockets", "sever sent events" oder vergleichbar) und du kannst dich auf dem PHP einloggen, befehle geben und die befehle werden dann über die Verbindung von deinem ESP zum PHP an den ESP weiterlgeleitet
    Bonus: du umgehst die dynamische IP, denn dein ESP verbindet sich aktiv mit dem kontroll-server
    Wie würde der PHP Code aussehen und was muss dann auf dem ESP laufen?

    Danke

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    in PHP bin ich leider selber nicht so firm, aber man kann wohl netzwerk sockets aufmachen .... dein ESP baut jetzt eine simple socketverbindung mit dem server über diesen websocket auf und warte auf nachrichten. (alternativ kjannst du auch eine webseite machen die befehle in irgend einem leicht scanbaren format darstellt mit deinem PHP code)

    auf einer der webseiten ist dann ein knopf der z.B. das licht einschalten soll, dieser knopf sendet ein POST an den webserver, der dann eine PHP aufruft, welche dann üebr eben deisen offenen socket zu deinem ESP einen befehl sendet (oder er fügt auf der befehlswebseite einfach einen befehl hinzu und dein ESP führt den befehl dann aus und liefert ggf. auch eine erfolgs- oder fehlermeldung zurück)

    dieses vorgehen ist aber recht kompliziert zu coden aber sehr viel sicherer


    EDIT: ---------------
    ich selber experimentiere gerade mit etwas spannenderem, ich habe vor auf einem raspi mit python einen "bottle"-server laufen zu lassen, welcher PHP ähnliche templates verwendet um sowas zu machen

    der server selbst ist grundsätzlich abgesichert aber je nachdem wie restriktiv (oder eben nicht) man seine templates baut kann man die sicherheitn erhöhen ... (oder eben vernichten)

    die HTML wird vor dem senden geparst, darin befindlicher python code ausgeführt, welcher die fehlkende teile im HTML code ergänzen udn dann an den browser gesenet ... vorteil daran, amn kann auf der seite z.B. buttons anlegen die eine POST anfrage machen udn im python code den request abfangen ohne eine PHP/template seite dafür schreiben zu müssen.
    Geändert von Ceos (18.03.2018 um 14:50 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. GPIO unter Phyton richtig ansteuern
    Von Helios86 im Forum Open Source Software Projekte
    Antworten: 1
    Letzter Beitrag: 09.11.2018, 07:20
  2. [ERLEDIGT] Pi2B Mini-OS GPIO ansteuern
    Von ARetobor im Forum Open Source Software Projekte
    Antworten: 0
    Letzter Beitrag: 15.10.2015, 15:20
  3. [ERLEDIGT] GPIO über Webserver schalten
    Von Rumo im Forum Raspberry Pi
    Antworten: 2
    Letzter Beitrag: 16.11.2013, 19:27
  4. [ERLEDIGT] Raspberry Pi GPIO
    Von Kampi im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 04.11.2012, 23:45
  5. Servo über GPIO mit PWM an RN-Control ansteuern (Frequenz ?)
    Von Chattychan im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 23.07.2007, 11:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen