Datenaustausch zwischen Webserver und Raspberry Pi?
Ich arbeite gerade an einem Schulprojekt, bei dem ich zwei Raspberry Pis habe. Der eine dient als Webserver und der andere hat eine Pi Kamera. Ruft man die Webseite auf, hat man die Möglichkeit auf einen Knopf zu drücken, wonach ein Foto mit dem zweiten Pi gemacht wird. Meine Frage lautet wie man genau dieses Foto auf den Webserver bekommt und sich das dann anzeigen lassen kann?
Noch ein paar Infos:
- Für den Webserver verwende ich Node.js
- Um ein Foto zu machen wird ein einfacher Shellbefehl ausgeführt
- Die Raspberry Pis befinden sich nicht im selben Netzwerk
Ich hatte schon ideen, wie z.b. eine ssh Verbindung aufbauen und den Befehl vom Webserver ausführen oder in einer Datenbank eine Variable auf true setzen und wenn diese Variable vom zweiten Pi ausgelesen wird, wird das Foto geschossen (Ich versuche jedoch polling zu vermeiden).
Wie würdet ihr soetwas umsetzen? Wie bekomme ich das Bild auf den Webserver?
2 Antworten
Am einfachsten sollte eine Socket-Verbindung sein. Auf dem PI für die Kamera lässt du einfach einen entsprechenden Server laufen, der Verbindungen vom Webserver akzeptiert, ein Foto schießt und über den Socket das Foto an den Webserver schickt.
Siehe dazu die Dokumentation: https://nodejs.org/api/net.html
Ich kenne mich mit Node.js nicht wirklich aus, aber Dateien sollten sich generell als String einlesen lassen, den du dann senden und wieder in eine Datei speichern kannst.
Danke, hat mir weitergeholfen. Das ist genau das was ich gesucht habe ;)
Guten Abend,
ich würde es so machen: ich würde Webmin und Virtualmin auf beiden Pis installieren. Wenn das geschehen ist würde ich die beiden Pis per Virtualmin verbinden und es so Programmieren das wenn ein Befehl an pi 1 also „mache ein Foto„ würde ich danach das Foto per Virtualmin auf den anderen Pi schicken und das Bild auf den Webserver in eine Galerie hinzufügen. Ob du das so machst das die sich automatisch wieder löscht ist deine Sache.
Ich habe die Socket Verbindung aufgebaut und kann jetzt schon das Foto machen, jedoch möchte ich es wieder zurück an den Pi schicken. Über den Befehl socket.write() ist es ja möglich an den Client einen String zu schicken. Wie schaut es mit Fotos aus? Was für möglichkeiten gibt es um Datein über Sockets zu schicken?