Forum: PC-Programmierung Welche Programmiersprache für Raspbian (Linux) für Anfänger?


von MOE (Gast)


Lesenswert?

Hallo,

ich möchte gerne an meinem RaspberryPi die Ports über eine 
"MySQL-Datenbank" "Schalten". Also in einer Datenbank stehen für jeden 
GPIO eine Spalte zur verfügung, in der Informationen, "Name", Zustand 
(High, Low) usw. enthalten sind.

Über ein in Visual Basic geschriebenen Client für Windows und einen 
Selbstgeschriebenen Client für Android kann ich schon die Werte der 
"GPIOs" unverzögert in der Datenbank ändern (High oder Low ändern).

Nun muss ich mir noch ein Programm für Raspbian (anderes System leider 
nicht möglich) schreiben, das in kurzen Abständen die Datenbank 
ausließt, und dann die GPIOs danach schaltet.

Mein Problem ist nun, das ich bisher nur mit Visual Basic richtig 
Programmiert habe. Das funktioniert aber nicht ganz unter Linux (Außer 
mit diesem Mono-mist). Daher fehlt mir hier sämtliche Erfahrung.

Was könnt ihr mir empfehlen ? Sollte einfach sein, mit MYSql 
kommunizieren können, unter Linux laufen und "Schnell Reagieren". Auch 
wäre es Schön wenn die Sprache ein bisschen an Visual Basic anlehnt, da 
ich diese Sprache perfekt behersche (Wenns geht).

Ich hoffe ihr könnt mir helfen,

Moe

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


Lesenswert?

Hallo,

also die Anfängersprache auf dem RasPi ist Python. Richtig viele Infos 
findes du unter: http://www.themagpi.com/

Das ist eine richtig gute E-Book-Reihe.

Für deine Aufgabenstellung eignet sich jede Programmiersprache. 
Interfaces für MySQL gibt es für Perl, PHP, ANSI-C. Ich denke sogar mit 
Java kannst du das auf dem RasPi machen. Aber vielleicht nutzt du die 
Gelegenheit deinen Programmierhorizont zu erweitern...

Grüße aus Berlin

von MOE (Gast)


Lesenswert?

Danke,

Das MagPi kenn ich und lese ich auch regelmäßig.

Da ich meinen Programmierhorizont am besten eh erweitern muss, wollte 
ich Fragen bei welcher Sprache dies am Besten Dokumentiert 
ist/Einfachsten ist.

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


Lesenswert?

Na dann würde ich PHP und/oder Java vorschlagen, dann gibt es auch die 
Option solche Aufgaben über AJAX oder ähnliches umzusetzten.

Python ist auch gut, aber eine etwas andere Art.
"Python unterstützt mehrere Programmierparadigmen. So werden 
objektorientierte, aspektorientierte und funktionale Programmierung 
unterstützt."
...
"Python gilt als einfach zu erlernende Sprache, da sie über eine klare 
und übersichtliche Syntax verfügt."

http://de.wikipedia.org/wiki/Python_%28Programmiersprache%29

von Lukas K. (carrotindustries)


Lesenswert?

Rene Schube schrieb:
> Na dann würde ich PHP und/oder Java vorschlagen, dann gibt es auch die
> Option solche Aufgaben über AJAX oder ähnliches umzusetzten.

Geht mit python ebenfalls, sogar schöner und eleganter als in PHP.

von imonbln (Gast)


Lesenswert?

Der PI ist und bleibt ein Embedded System und Mysql ist ein ziemliches 
Brett.
Ich finde das es ziemlicher Overkill ist den state von ein paar GPIOS in 
einer DB zu halten. Sicher wenn deine SD groß genug ist geht, das aber 
als ich mir das letzte mal MYSQL auf embedded angesehen habe (zugegeben 
ist mehrere Jahre her) war das, das graße gegen teil von schnell und 
Performant.

willst du die states nicht lieber selber verwalten ( Struktur in einen 
Array, linked list oder rbtree). So viele sind es ja nicht. Oder besser 
noch den Kernel die verwalten lassen. (siehe 
https://www.kernel.org/doc/Documentation/gpio.txt). unter 
/sys/class/gpio/ versorgt. Dich der Kernel mit so was wie du gefordert 
hast Namen, status etc.

Die Programmiersprache ist dann ziemlich egal, du musst nur ein paar 
File IOs machen können. das geht mit allen. Nimm einfach was dir liegt.

Und wenn es unbedingt eine SQL sein muss, denk mal drüber nach ob nicht 
vielleicht SQLite ausreicht, die ist IMHO für embedded besser geeignet.

von Basti (Gast)


Lesenswert?

Also Auswertung von Mysql kannst du auch alle paar sekunden von einem 
Bash script machen lassen

Wenn dus schnell haben willst, sende die infos an das raspi per tcp in 
plaintext und empfange es mit xinetd. Dann lässt dus von einem script 
auswerten (evtl logfile anlegen etc)

Dann hast du deinen speicher und cpu für andere sachen frei

von never ever (Gast)


Lesenswert?


von Michael S. (msb)


Lesenswert?

Wenn Du die Performance von C++ nicht brauchst und das hört sich nicht 
so an, dann ist ganz klar Python die erste Wahl.

Du wirst es sicherlich nicht bereuen wenn Du Python lernst. Python ist 
einfach und mächtig.

von Danny Rose (Gast)


Lesenswert?

Hallo MOE!

Wäre es eventuell möglich, mir diesen Client, mit dem du die Werte in 
die Datenbank schreibst zu schicken? (buxi95@yahoo.de)

Ich sitze nämlich an einem ähnlichen Projekt und habe Probleme bei 
diesem Schritt.

Danke im Voraus,
Daniel

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.