Frage von Wupbanz, 45

Welche Programmiersprache eignet sich gut für ein größeres Projekt auf dem Raspberry Pi?

Hallo,

mit welcher Programmiersprache realisiere ich am Besten ein Großprojekt auf meinem Rapsberry? Mir ist klar, dass es viele Varianten gibt, deshalb meine konkreten Ziele:

  • Auswertung von Sensoren z.B. Raumtemperatursensoren und damit verbunden dann die Zimmertemperaturregelung
  • Erreichbarkeit über das Internet für Fernzugriff auf Daten: Sensordaten, Steuerung (z.B. habe ich mir eine Bewässerungsanalge gebaut, deren Pumpe ich nicht nur per Cronjob, sondern von extern auch direkt ansteuern möchte (derzeit läuft das alles auf dem Pi über ein PHP basierendes Webinterface)
  • vielleicht eine Übertragung von Kameradaten bei anfrage (Livestream z.B.)
  • eventuell das Sammeln von Daten auf verschiedenen Pi Zero (z.B. einen dann im Garten, einen in einem anderen Zimmer etc. die zusammen ein Gesamtsystem ergeben
  • ich habe auch diese Hauscode Funksteckdosen, die man selbst codieren kann, da würde ichauch gerne ein paar Geräte ansteuern

Ich möchte das gerne als eine Software dann haben, also, dass es überschaubar bleibt. Derzeit habe ich alles mit PHP und einem Webserver realisiert, aber die Variante ist nicht besonders "individuell" bzw. komfortabel. Für mich würde es reichen, aber eventuell sind meine Eltern udn andere auch an einem solchen System interessiert, sodass eine einfache Installation und auswertung besser wäre. Z.B. kombinierbar: als Smartphone app/von mir aus auch als Webseite,aber auch als PC- Anwendung... Am Ende hätte ich am liebsten ein Produkt, wo der User möglichst wenig selber einstellen muss, nach der Installation: doppelklick und dann ist er im Menü, also nicht irgendwo noch ne IP Adresse eintragen etc.

Ich habe grundlegende Programmiererfahrung in Java, PHP und C++, aber wenn es in Richtung Netzwerkanwendung etc. geht, dann ist es bei Java und C++ bei mir nicht weit her. Gerne investiere ich auch Zeit um mir das nötige Wissen anzueignen. Allerdings würde ich deshalb gerne wissen, in welcher Programmiersprache das am sinnvollsten ist.

Vielen Dank für eure Ideen

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Orsovai, 16

Entweder Python, weil vieles auf dem Pi ursprünglich für Python entwickelt wurde oder C++, weil es eine sehr umfangreiche Sprache ist und es mittlerweile gute Bibliotheken für den GPIO des Pis gibt.

Expertenantwort
von TeeTier, Community-Experte für programmieren, 10

Die Antwort steckt doch schon in deiner Frage! Wenn du einen RasPI benutzen willst, dann natürlich Python. Dafür wurden die Dinger ja schließlich entwickelt. :)

Im Übrigen ist all das von dir genannte kein "Großprojekt", zumal du zu fast allen Punkten schon fertige Lösungen nehmen kannst. :)

Die die genannten Aufgaben fast alle trivial sind, reicht in den meisten Fällen wohl auch einfach nur ein kurzes Shell-Skript. Ob du das dann über PHP, Python, oder irgendetwas anderes aufrufst, ist ja eigentlich egal.

Assembler halte ich für völlig ungeeignet: Bringt keinerlei Vorteile mit sich.

Ich habe mir auch einen Dongle für Funksteckdosen an meinen RasPI angeschlossen und dafür ein Programm in reinem C geschrieben, wobei C++ natürlich auch geht. Das hat inklusive Reversing der Windows-Software und des Protokolls über USB ca. eine Stunde gedauert.

Naja, viel Spaß! Auf jeden Fall würde ich mich erst mal nach fertigen Lösungen umschauen. :)

PS: Du solltest nicht versuchen, alles mit einer einzigen Sprache erschlagen zu wollen. Das ist doch unnötig! Nimm die Werkzeuge, die dir zur Verfügung stehen, und setze diese optimal ein!

Antwort
von Odorwyn, 22

Meines erachtens nach sind für solche sachen C++ und Assembler bestens geeignet.

Im hinblick auf Fernsteuerung/Streaming bitte unbedingt die Sicherheit beachten. Vernünftige Verschlüsselung und Protokolle benutzten.

Leider geht das derzeit im Internet der Dinge gnadenlos unter.
Gerade bei Sachen wie z.B. Kameras.

Klingt nach einem wirklich spannenden Projekt!

Ich wünsch dir viel Spaß und viel Erfolg!

Kommentar von Wupbanz ,

Vielen Dank, mit C++  und Assembler hatte ich ein wenig zu tun. Für die Netzwerksachen werde ich mir wirklich einiges Anlernen müssen, da wie Du gesagt hast Sicherheit da sehr wichtig ist. Ich dachte bei dem Projekt auch weiter an eine eigene Cloud und eine Art Peer2Peer System für Kommunikation, wenn man schonmal einen Server hat, warum nicht auch darüber private Nachrichten verschicken und wenn beide solch ein System installiert haben, dann könnte man vielleicht das Server-Client Modell umgehen? 

Aber bis dahin steht viel Arbeit, ein langer Weg und viel interessantes zu lernen an.

Antwort
von enofish, 15

Also ich würde solch ein Projekt mit GO realisieren. Damit ist auf jeden Fall alles genannte realisierbar und für das meiste gibt es auch Bibliotheken und Frameworks zur Hilfe. Jedoch ist das Projekt auch mit so gut wie jeder anderen Sprache realisierbar von daher sind solche Fragen immer sehr schwer zu beantworten. 

Aber auch auf hinblick darauf, dass alles via Webinterface erreichbar sein soll bietet sich GO an (net/http package https://golang.org/pkg/net/http/)

Antwort
von Omnivore10, 4

Kurze Antwort: C++

Keine passende Antwort gefunden?

Fragen Sie die Community