Forum: Mikrocontroller und Digitale Elektronik ESP8266 Webserver Button mit Arduino Uno


von Lukas S. (baumeisterbob)


Lesenswert?

Hallo,

ich habe bereits etwas länger im Internet gesucht, allerdings nichts 
gefunden was bei mir funtkioniert hat. Deshalb frag ich jetzt hier.

Also mein Ziel ist es über den Browser auf den ESP bzw. den Arduino 
zuzugreifen und ein 8 Channel Relai ein und auszuschalten. Der ESP soll 
sich mit meinem Router verbinden sodass ich im Prinzip von jeden Gerät 
was in meinem Wlan ist darauf zugreifen kann. Kann mir jemand ein paar 
Tipps geben? Oder hat jemand von euch schonmal soetwas gemacht? Wäre ich 
super :)

Wenn noch etwas unklar ist einfach fragen.

Danke

von Wolfgang K. (donkracho)


Lesenswert?

Ja, ich habe letzes Jahr mal einen SmartTimer zur Steuerung einer 
Gartenbewässerung mit einem UNO und ESP8266-01 (AT-Firmware) realisiert.

Du musst den ESP als Server starten und im Main-Loop auf HTTP-Requests 
auf Port 80 warten und entsprechend mit ganzen HTML-Webseiten antworten.

Wegen dem für solche Zwecke recht begrenzten Speicher des Uno muss man 
schnell tricksen aber für einfache Projekte reicht es.

Was mir die Sache erheblich vermiest hat war, dass der ESP vor dem 
Senden exakt wissen will wie groß der Buffer ist und die Buffergröße auf 
1460 Bytes begrenzt ist. Selbst relativ einfach gestrickte Webseiten 
werden mit Header und allen drum und dran schnell größer und man muss 
sie dann in Etappen mit langen Gedenkpausen dazwischen schicken, was man 
im Browser dann auch deutlich als Hakeln sieht.

Den ESP überhaupt langzeitstabil zu bekommen ist die größte 
Herausforderung. Man forscht länger an irgendwelchen Zickigkeiten, 
komischen Effekten und Watchdogs und Firmware-Versionen für den ESP 
herum als sich der eigentlichen Aufgabe zu widmen. Nach wie vor hängt 
sich der ESP bei mir immer noch gerne weg, wenn die 24V~ Ventile 
geschaltet werden. Das liegt aber scheinbar nicht an der 
Spannungsversorgung sondern an irgendwelchen Feldern. Evtl. 
funktionieren die neueren abgeschirmten Varianten des ESP und die 
NodeMCU Firmware besser. Ich hatte aber noch keine Zeit das genauer zu 
ergründen, ansonsten hätte ich das Projekt schon mal veröffentlicht. Der 
Uno ist zu 90% voll, da ist also auch nicht mehr viel Luft nach oben.

Für kleine Projekte mit einfachen Websites kleiner 1460 Bytes OK, 
größeres würde ich damit nicht noch einmal machen.

Eine super Ausgangsbasis für ein Projekt mit ESP8266-01 mit AT-Firmware 
ist:
https://arduino-hannover.de/2014/12/11/wifi-kochbuch-mit-esp8266/

Das war auch meine Basis, ich habe nur noch erheblich Gehirnschmalz 
investiert um stabil Seiten größer 1460 Bytes senden zu können.

von Harry L. (mysth)


Lesenswert?


von Wolfgang K. (donkracho)


Lesenswert?

Das kommt auf die Anforderungen an:

MQTT ist der deutlich bessere Ansatz um von einer Zentrale aus mit 
Sensoren und Schaltern zu kommunizieren. Vor allen ist es 
ereignisgesteuert und bietet Sicherheiten gegen zeitweiligen Ausfall 
einzelner Komponenten. Also viel besser für eine 
Automatisierungsaufgabe.

Der requestgesteuerte HTTP-Server kann dagegen gleich mit einer grafisch 
aufbereiteten Webseite direkt mit einem Endgerät kommunizieren. Für 
Handy oder Tablet ist ist keine eigene Software notwendig und man 
implementiert die Sache exakt einmal als HTML unabhängig von einer 
Plattforn bzw. Betriebssystem.

Bei einer kompletten Hausautomatisierung würde ich beide Wege geben. 
Einzelne Sensoren und Schalter mit MQTT und als Zentrales 
Verbindungsstück zu den Endgeräten z. B. einen Raspberry Pi als 
MQTT-Broker und WebServer.

von Harry L. (mysth)


Lesenswert?

Du vermischt da etwas!
HTML und MQTT sind nicht unmittelbar vergleichbar, und HTML war nie für 
Steuerungsaufgaben gedacht.
Bei nahezu allen mir bekannten Einsatzszenarien von MQTT wird HTML beim 
Frontennd benutzt.

Für Smartphone&Co gibts haufenweise MQTT-Clients, und einen eigenen 
Broker braucht man auch nicht zwingend.
Sowas gibts public im Netz.

von Stefan F. (Gast)


Lesenswert?

Hab ich schon fix und fertig:

http://stefanfrings.de/wlan_io/index.html

Mit dem Browser kannst du eine lokale statische HTML Datei mit 
Javascript öffnen, die dann die Kommunikation mit dem WLAN Modul macht. 
Oder du fügst noch einen minimalen Webserver hinzu, der nur diese eine 
Seite ausliefert. Das sollte sehr einfach machbar sein.

Oder du nimmst die verkabelte Variante 
(http://stefanfrings.de/net_io/index.html), die hat schon einen 
Webserver.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.