Forum: Mikrocontroller und Digitale Elektronik Web Browser als Anzeige für Mikrokontroller ?


von Walter B. (klabautermann)


Lesenswert?

Hi,

Immer fehlen mir bei diversen Projekten Anzeigemöglichkeiten.
Oft zu teuer, zu klein, oder aufwändig anzusteuern.

Idee: Jeder hat schöne und große Anzeigen, PC, Laptop, Tablet, Smartfone 
u.s.w.

Vorhaben:
Mc UART >> Kabel oder Bluetooth >> PC-Server >> Web-Browser
                                     v
                                   Wi-Fi >> Handy, Tablet >> Web Browser

oder direkt zum Handy:
Mc UART >> Bluetooth >> Server App >> Handy, Tablet >> Web Browser
                            v
                          Wi-Fi >> PC >> Web-Browser

Meine Fragen:
1. Gibt es so etwas schon ?
2. Kann man hier Mitstreiter finden ?
3. Auf welcher Plattform sollte man so ein Projekt veröffentlichen ?

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

Hallo klabautermann,

so umständlich und kompliziert gibt es das wahrscheinlich noch nicht.
Aber es gibt

[Mc Ethernet Webserver] <<-->> Web

und das ist sogar hier auf der Plattform zu finden :)

Gib mal in der Suche "Ulrich Radig Webserver" ein.

Schönen Montag euch allen

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Hallo!

Auch das reicht:

http://www.ebay.de/itm/ENC28J60-Ethernet-LAN-Netzwerk-Modul-Arduino-RJ45-SPI-mit-Befestigungsbohrungen-/121158045138

hab ich gerade an einem PIC18F zu Laufen gebracht. Dazu braucht es nur 
einen 3,3 V Spannungsregler und 4 Drähte.

Die Software ist aus dem Thread:

Beitrag "ENC28J60 (Mikro-)Web-Server die Nächste"

war etwas fummelig zu portieren, aber geht ;).

vg

Jürgen

von Kuckst (Gast)


Lesenswert?


von Walter B. (klabautermann)


Lesenswert?

Vielleicht ein wenig kompliziert dargestellt,
aber das einzige was man braucht ist ein Mini-Webserver, COM-Port <> 
Ethernet (schon fast fertig).
Auch die Verbindung zum Handy klappt.(Getestet mit Opera Classic)

Die Idee ist, auch für kleine µC's mit wenig Speicher eine schöne 
Anzeige zu realisieren.

Alle Dateien(HTML, CSS, Javascript, Bilder u.s.w.) verbleiben auf dem 
PC, Handy oder sonstwo.

Vorteil: Trennung von Steuerung und Visualisierung.
Die Kommunikation mit dem MC beschränkt sich auf Nutzdaten.

Bei größeren µC's oder µC's mit Speicherkarte können die Dateien auch 
auf dem µC gespeichert werden, was aber bei jeder Anzeigenänderung eine 
Neuprogrammierung erfordert, was zum sehr lästig werden kann.

Ich möchte keine Kabel RJ45 oder COM, Wi-Module zu teuer
Habe 5 Bluetooth Module HC-05 für je 2,8€ ersteigert.

von Matt B. (mattb)


Lesenswert?

Hallo,

für solche Sachen verwende ich in der Regel einen Raspberry Pi. Er 
besitzt bereits einen UART (3,3V-Pegel) und eine Netzwerkkarte. Mit 
einer Datenbank im Hintergrund lassen sich Messdaten gut archivieren und 
für Diagramme oder sonstiges aufbereiten.

Einmal habe ich über einen Raspberry Pi gleich drei Visualisierungen 
laufen lassen. Dafür habe ich neben dem onboard UART noch 2 
USB-UART-Adapter verwendet.

von Walter B. (klabautermann)


Lesenswert?

Raspberry Pi ?
Ist kein kleiner µC wie z.B. PIC18F452.

Wie komme ich ohne PC oder Ähnliches Kabellos auf ein Handy.

Vorheriger Artikelauszug:
Ich möchte keine Kabel RJ45 oder COM, Wi-Module zu teuer
Habe 5 Bluetooth Module HC-05 für je 2,8€ ersteigert.

von Matt B. (mattb)


Lesenswert?

Klar, der ist etwas größer als ein PIC, aber man hat eben auch mehr 
Möglichkeiten.

Mit einem Bluetooth- und einem WLAN-Stick könnte der Raspberry als eine 
Art "Access Point" verwendet werden...

Kommunikation mit den µC: Bluetooth
Kommunikation mit dem Handy/Rechner: WLAN

von Walter B. (klabautermann)


Lesenswert?

Raspberry Pi, nur um ein paar Ein/Ausgänge zu steuern ?

Hat man Geld, kauft man Raspberry Pi für ca. 50€ ?
Hat man kein's kauf man PIC für 1,5€.

von Matt B. (mattb)


Lesenswert?

Kommt eben auch darauf an, was man genau machen will. Sollen keine 
komplexen Webseiten zur Visualisierung verwendet werden gebe ich euch 
vollkommen recht, dass ein Raspberry Pi übertrieben wäre!

von Walter B. (klabautermann)


Lesenswert?

Da die Dateien wie bereits beschrieben auf dem PC oder Handy verbleiben,
und nur Daten ausgetauscht werden, kann die Webseite megakomplex werden.
Es ist auch möglich so etwas einzubinden: http://www.flotcharts.org/

Ich glaube der Thread ist mächtig vom Thema abgekommen.

von wieOskar (Gast)


Lesenswert?

Walter B. schrieb:
> Meine Fragen:
> 1. Gibt es so etwas schon ?
Ich würde sagen ja. Für die meisten Leute ist es vermutlich zu 
kompliziert sowas umzusetzen. Du musst dich einfach für einen Weg 
entscheiden und es dann durchziehen.
Ein weg den ich interessant finde wäre z.B.

MC(RTOS)--(UART/Bluetooth MQTT)-- UART/Bluetooth-MQTT Converter -- 
MQTT-Server-- WebSphere/Apache--Web Browser

Man kann MQTT auch durch Modbus oder Hexabus ersetzen, für die UART 
Kommunikation.

Das wäre für mich ein interessanter ansatz. Was ich bei gelegenheit auch 
umsetzen werde.
Den Vorteil den ich in MQTT sehe ist das man den MC für die 
Weiterverarbeitung abstrahieren kann. Das heist das der MC z.B. mit ID 
und Wert ohne änderung am MC der Wert in verschiedenen vorgerfertigte 
Anzeige möglichkeiten dargestellt werden kann. So kann man schön 
Sensornetzwerke bauen.

Was es dazu nicht gibt ist die Anleitung wie man es von vorne bis hinten 
am Stück umsetzt. aber da spielt auch der persönliche Geschmack eine 
Rolle.

Wenn du direkt mit dem Smartphone kommunizierst denke ich das der weg 
über einen Web-Server nicht zielführend ist. Da wäre eine Gernerische 
App die Templates zur Anzeige nachlädt der bessere weg.

> 2. Kann man hier Mitstreiter finden ?
Nur wenn du einen konkreten Plan hast der auch andere überzeugt.

> 3. Auf welcher Plattform sollte man so ein Projekt veröffentlichen ?
sourceforge/github

von Walter B. (klabautermann)


Lesenswert?

Hallo, wieOskar

Endlich einer der verstanden hat was ich meine.

Vor MQTT schrecke ich noch etwas zurück,
weil noch nicht richtg gar gekocht und der Overhead bei den 
Übertragungen nicht unerheblich ist (kleine Kontroller).

Deswegen beschränkt sich die Kommunikation mit dem µc auf Wertepaare 
z.B.
µC zum Browser
Name;Wert;Attribute
Name;Wert
Name;Wert
Kommando;Anweisung

Wobei "Name" der id im HTML entspricht z.B. <div id=Name>.
Attribute und Kommando vom Javscript ausgewertet werden; und styles 
gesetzt werden.

Das Ganze auch vom Browser Richtung µC.
Ist aber erst ansatzweise Programmiert.

Ich versuche mal ein funktionierendes Beispiel zusammenzustellen,
kann aber noch zwei bis drei Tage dauern.

Habe Wampserver installiert,
und das Ganze über den Apache laufen zu lassen ist nur eine 
Konfigurationsfrage.

von Axel S. (a-za-z0-9)


Lesenswert?

Walter B. schrieb:
> Vorhaben:
> Mc UART >> Kabel oder Bluetooth >> PC-Server >> Web-Browser
>                                      v
>                                    Wi-Fi >> Handy, Tablet >> Web Browser
> Meine Fragen:
> 1. Gibt es so etwas schon ?

Mit Sicherheit. Allerdings ist ein PC für den Webserver etwas fett. Für 
diese Stelle wurde der Raspberry empfohlen (kann auch ein Beagleboard 
oder sonst ein kleines System sein).

Der Knackpunkt ist die Verbindung zwischen dem µC und diesem zentralen 
Hub. Da wird die Auswahl durchaus auch durch den µC bestimmt. Mit 
hinreichend fetten Teilen geht direkt Ethernet oder WLAN. Schlanker 
wären Funkmodule a'la RFM12 oder BT. Wenn man den Verkabelungsaufwand 
nicht scheut, kommt ein "Hausbus" in Frage, der dann auch gleich das 
Problem der Stromversorgung mit löst. Was man dann für ein Protokoll 
fährt, ist wieder eine Frage der persönlichen Vorlieben und 
µC-Fähigkeiten. Von CAN über EIB bis hin zu I²C finden sich Befürworter.

Siehe: http://de.wikipedia.org/wiki/Feldbus#Verbreitete_Feldbusse

> 2. Kann man hier Mitstreiter finden ?

Klar. Einfach mit dem passenden Suchbegriff suchen. Das eigentlich zu 
lösende Problem ist immer die Verbindung µC -> Hub. Dann einen Daemon 
für den Hub zu schreiben, der die Daten entgegennimmt und speichert; und 
die Webschnittstelle um diese Daten anzuzeigen - das ist dann reine 
PC-Programmierung und wenn überhaupt, dann ein Thema für das Forum 
http://www.mikrocontroller.net/forum/codesammlung


XL

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Walter B. schrieb:
> Ich glaube der Thread ist mächtig vom Thema abgekommen

Ich glaube du hast einfach keine Ahnung vom Thema... So "einfach" wie du 
dir das vorstellst ist es nämlich nicht. Das du davon nichts hören 
willst ändert an der Tatsache nix.

Deine BT-Module werden idr. nur RS232 können gegenüber der BT Schicht, 
der normale Brwoser hat aber für Seriell (wenngleich auch denkbar) kein 
Protokoll.

Was er hat ist z.B. TCP/IP, dafür benötigst du aber etwas mehr 
Hardware/Software als für ein simples BT Modul.

von A. W. (uracolix)


Lesenswert?

Ich hatte juengst mit einem Carambola als Gateway experimentiert, auf 
dem
OpenWRT laeuft - Vorteil WLAN + 2 ETH onboard. Der Nachteil beim 
Carambola gegenueber einem RaspBerry Pi ist der geringere Speicher, man 
hat damit u.a. nicht ohne weiteres Python verfuegbar.

Als Funkschnittstelle zum GW kann man 802.15.4 Module einsetzen (evtl. 
die Dresden Elektronik Module, da ist neben dem Funk gleich noch die 
AVR-MCU dabei), die sind zur Uebertragung von einigen Sensordaten 
vollkommen ausreichend. Fuer das Raspberry-Pi hat DE auch ein kleines 
Aufsteckmodul
mit ATmega256RFR2 (RaspBee).

MQTT ist insofern interessant, wenn man seine Daten zum einem Webserver 
im Netz streamen will. Das MCU-Funknetz kann die Daten auf den 
oeffentlichen MQTT/Webserver schaffen, d.h. man muss sein Heimnetz 
nicht per DynDNS nach aussen oeffnen und der Upstream wird auch nicht 
uebermaessig belastet. Bei Mosquitto gibt es auch einen Testserver auf 
den man ein paar Message-Queues anlegen kann (wenn die Daten nicht 
brisant sind) - und diese per MQTT-Client auf dem Handy 
lesen/darstellen, wenn man sie sehen moechte. Wenn das Rendering 
(Graphen, Mittelwerte, Stdev) nicht auf dem Handy passieren soll, dann 
sollte man einen Server nutzen, den man selbst administrieren kann 
(wurde mit einem Amazon-Cloud-Server praktiziert).

Hier noch ein paar Links (die MQTT Experimente muss ich mal bei 
Gelegenheit dokumentieren).

http://uracoli.nongnu.org/clt2011/index.html
http://uracoli.nongnu.org/clt2013/index.html
http://uracoli.nongnu.org/epj00-802154_nicht_nur_fuer_profis/index.html
http://uracoli.nongnu.org/carambola.html

Sorry, wenn der Beitrag jetzt nach DE-Kaffeefahrt aussieht, bin aber 
nicht am Umsatz beteiligt, finde die Kombinationen nur recht gut und 
relativ einfach nutzbar.

von Stefan (Gast)


Lesenswert?

Es gibt für alle gängigen Betriebsysteme so kleine Hilfsprogramme, die 
einen IP-Socket mit einem seriellen Port verbinden.

Siehe : 
http://blog.philippklaus.de/2011/08/make-rs232-serial-devices-accessible-via-ethernet/

Du könntest dem µC seriell (oder per Bluetooth) mit dem PC verbinden, 
dann dort diese Bridge starten, welche einen lokalen IP-Port bereit 
stellt. Auf den kannst Du Dich per Web-Browser verbinden.

Dann musst Du nur noch einen Webserver auf dem Mikrocontroller 
implementieren. Da er nur einen (seriellen) Port hat, hat man keinen 
Stress mit Multi-Threading.

von Walter B. (klabautermann)


Angehängte Dateien:

Lesenswert?

Hier mal erste Schritte wie es werden soll.

ZIP in gewünschtes Verzeichnis entpacken.
BridgeUartHttp.exe Starten
IP des Rechners oder "localhost" auswählen.
Server starten.
"URL im Browser öffnen" oder "URL kopieren" und in die Adresszeile des 
Browsers einfügen.

Getest mit XP(32Bit) und Ultimate(64Bit)  Firefox 19
Samsung Galaxy i9001 Opera Classic.
Browser Mindestanforderungen: HTML 5, CSS3, Javascript 1.5

Damit nicht jeder einen Versuchsaufbau machen muss,
simuliert der Server den Mikrocontroller.
Die Einstellungen des COM-Ports werden ignoriert.

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.