Hallo,
ich möchte gerne eine Oberfläche erstellen, wo ich Daten (Temperatur,
Nachrichten, Daten aus dem Internet) auf einem Bildschirm
(Computerbildschirm) darstellen möchte. Diesen möchte ich dann im Flur
aufhängen. Da ich keinen Richtigen Computer mit dahinstellen möchte,
habe ich mir gedacht, dass ich das ganze mit einem Raspberry Pi mache.
Allerdings weiss ich nicht, wie ich den RaspberryPi Programmieren kann.
Die Oberfläche wollte ich mit QT und C++ erstellen. Kann ich auf meinem
Computer und Qt eine Gui erstellen und diese dann auf dem RaspberryPi
flashen? Oder muss ich direkt auf dem RaspberryPi Programmieren? Habe
niergends eine Beschreibung gefunden, wie ich da vorgehen muss.
Karsten
Karsten schrieb:> ich möchte gerne eine Oberfläche erstellen, wo ich Daten (Temperatur,> Nachrichten, Daten aus dem Internet) auf einem Bildschirm> (Computerbildschirm) darstellen möchte. Diesen möchte ich dann im Flur> aufhängen. Da ich keinen Richtigen Computer mit dahinstellen möchte,> habe ich mir gedacht, dass ich das ganze mit einem Raspberry Pi mache.> Allerdings weiss ich nicht, wie ich den RaspberryPi Programmieren kann.> Die Oberfläche wollte ich mit QT und C++ erstellen. Kann ich auf meinem> Computer und Qt eine Gui erstellen und diese dann auf dem RaspberryPi> flashen? Oder muss ich direkt auf dem RaspberryPi Programmieren? Habe> niergends eine Beschreibung gefunden, wie ich da vorgehen muss.
Du kannst auf Deinem lokalen Rechner mit C++ und Qt eine GUI schreiben.
Damit die dann auf dem RasPi läuft, wirst Du sie allerdings auch auf dem
RasPi übersetzen müssen, denn der hat eine ARM-CPU und Dein lokaler
Rechner vermutlich nicht.
Flashen mußt Du dabei allerdings nichts, nur den Quellcode der Anwendung
von Deinem lokalen Rechner auf den RasPi übertragen und sie dann dort
noch einmal auf dem RasPi übersetzen. Der RasPi hat nämlich ein
vollständiges Linux-Betriebssystem mit allem, was Du zum Übersetzen
Deiner Qt-Anwendung brauchst: C++-Compiler mit Build-Werkzeugen (Paket
"build-essential"), Qt selbst sowie die Qt-Werkzeuge wie qmake & Co.
Am Rande bemerkt: meine persönliche Erfahrung ist, daß solche Werkzeuge
zur Datenerfassung und -Visualisierung niemals fertig sind, meist keine
hohen Anforderungen an Performanz und Latenz haben, und es deswegen oft
besser ist, so etwas mit einer Skriptsprache wie Python, Perl, oder Ruby
zu entwickeln. Zudem kommt man später häufig auf die Idee, daß es doch
wunderbar wäre, sich die Daten auch auf dem Tablet oder dem Smartphone
anschauen zu können.
Deswegen greife ich in solchen Fällen meistens zu einem anderen Weg und
schreibe eine schicke Webanwendung, zum Beispiel mit Python und Flask.
Die wird dann auf dem RasPi von einem Webbrowser im Kiosk-Modus
angezeigt, kann aber auch von anderen Geräten im Netzwerk abgerufen und
angezeigt werden, sofern diese einen Webbrowser benutzen. Mit
JS-Bibliotheken wie jqWidgets, Flot oder jQplot kann man sehr
ansprechende Webanwendungen zur Datenvisualisierung entwickeln.
Qt geht auch hervorragend in Kombination mit Python, dann spart man sich
zumindest das erneute Kompilieren auf dem Pi.
Andererseits kann man natürlich durchaus gleich auf dem Pi entwickeln,
dann wohl am bequemsten remote per VNC.
MaWin schrieb:> Qt geht auch hervorragend in Kombination mit Python, dann spart man sich> zumindest das erneute Kompilieren auf dem Pi.>> Andererseits kann man natürlich durchaus gleich auf dem Pi entwickeln,> dann wohl am bequemsten remote per VNC.
Wozu denn VNC? Für Windows-User gibt es Moba XTerm und unter UNIXoiden
existiert "ssh -X", beides ohne Einrichtungsaufwand auf dem RasPi. ;-)
Sheeva P. schrieb:> Deswegen greife ich in solchen Fällen meistens zu einem anderen Weg und> schreibe eine schicke Webanwendung, zum Beispiel mit Python und Flask.
Hast du dazu einige Screenshots? Würde mich interessieren, was damit so
zu realisieren ist wie du es sagt.
Kleinere Programme schreibe ich direkt auf dem Raspi. Der Rechner ist
schnell genug dafür. Es ist schneller als manche 'Workstations' auf
denen ich Anfang des Jahrtausends beruflich entwickeln mußte. Einzig der
Flash-Speicher auf SSD bremst etwas.
Größere PRogramm habe ich auf einem X86 PC mit normalem Linux
entwickelt. Läuft dort alles wird am Am Ende einmal aus dem Raspi
übersetzt.
Sheeva P. schrieb:> Deswegen greife ich in solchen Fällen meistens zu einem anderen Weg und> schreibe eine schicke Webanwendung, zum Beispiel mit Python und Flask.> Die wird dann auf dem RasPi von einem Webbrowser im Kiosk-Modus> angezeigt, kann aber auch von anderen Geräten im Netzwerk abgerufen und> angezeigt werden, sofern diese einen Webbrowser benutzen. Mit> JS-Bibliotheken wie jqWidgets, Flot oder jQplot kann man sehr> ansprechende Webanwendungen zur Datenvisualisierung entwickeln.
Stichwort qwebengine oder qtwebkit.
Alles kein Problem.
Wobei ich zugeben muss nur mit qtwebkit bisher gearbeitet zu haben (Dank
Apple deprecated).
Es gibt viele Möglichkeiten. Ich habe es mit C++ und Gtk mal gemacht.
Eine Anwendung, die fullscreen direkt nach dem Booten startet, man macht
quasi den raspi an und das war's. Die Anwendung läuft dann. Die inputs
holt man sich dann von wo man will. Für webzugriff wäre der raspi 3
empfehlenswert, da wlan vorhanden. Alle Einstellungen natürlich vorher
definieren, testen, usw. Man kann dann später den raspi als webserver
benutzen und es als webseite zur Verfügung stellen oder dann noch
schnittstelllen hinzufügen, wenn man z.b. von extern zugreifen will. Ich
würde in dem fall einfach mal netbeans auf dem raspi installieren und
mit java eine gui erstellen (swing oder so). Geht recht schnell. Ich
habe mal an einen Tag mit null Ahnung von swing, eine gui erstellt, die
2D Objekte dynamisch bewegen konnte. Dann sind ein paar Text-Infos ein
Kinderspiel.
Jean player schrieb:> Stichwort qwebengine oder qtwebkit.> Alles kein Problem.
BTDT, und es gibt Probleme: denn QWebKit hat Memory Leaks, QWebEngine
gibt es IIRC noch nicht unter Debian.