Raspberry Pi – Apps entwickeln
In einem Artikel über das RaspBMC Mediencenter habe ich bereits gezeigt, dass man mit Hilfe eines Raspberry Pis den Fernseher über eine App (iPhone oder Android) steuern kann. Dieses Konzept funktioniert im Fall des XBMC Mediencenter bereits sehr gut, ich verwende es selber sehr oft. Leider ist dies derzeit die einzige gut funktionierende Lösung beim Raspberry Pi, Möglichkeiten für andere Einsatzbereiche von Apps zur Steuerung gibt es quasi unendlich viele.
Apps entwickeln rund um den Raspberry Pi
Ich bin etwas enttäuscht, dass es in diesem Bereich nicht mehr Projekte zu finden sind. Einsatzgebiete würde es ja genug geben. Überall wo der Raspberry Pi zum Einsatz kommt könnte man dessen Konfiguration und Steuerung auslagern auf das Smartphone. Anwendungsgebiete wären zum Beispiel:
- ein Webserver, welcher über das Handy verwaltet wird
- ein Ressourcenmonitor am Handy um den Zustand des Pis im Auge zu behalten
- ein Steuerungsprogramm für den Bit Torrent Raspberry Pi
- Steuerung eines Spielzeugautos, welches vom Raspberry Pi kontrolliert wird
- ein Monitorprogramm, welches eine Übersicht über das bitcoin Mining anzeigt
- …
Die Möglichkeiten sind unbegrenzt!
Partner in der Entwicklung
Vielen Programmierern sind Smartphone Apps und deren Entwicklung noch ein großes Rätsel. Die Entwicklung von mobilen Programmen ist jedoch keineswegs kompliziert. Sollte doch professionelle Hilfe benötigt werden, dann gibt es viele kompetente Partner, welche sich über neue Projekte freuen. Youlogic beispielsweise bietet in diesem Bereich Dienstleistungen an. Aus eigener Erfahrung weiß ich, dass lokale Partner besser sind als oft billigere Angebote aus dem Ausland. Es kommt nicht selten vor, dass ohne direkten Kontakt Projekte oft im Sand verlaufen.
Eigene Entwicklung
Hat man kein Budget, aber eine Menge Zeit, dann kann man auch selbst die Entwicklung einer passenden App realisieren. Im raspi store findet man dazu ein sehr nettes und freies Projekt. Dort wird bereits eine kleine funktionierende Applikation unter dem Namen NetIO angeboten. Diese zeigt auf einfache weise wie man am besten anfangen kann. Das Projekt besteht aus einem Server Programm, welches am Raspberry Pi ausgeführt werden muss. Dieses wurde mit Python programmiert, man wird sich als Programmierer dort sehr leicht zurecht finden. Der Hersteller bietet im Rahmen des Projekts auch einen Web basierten UI Designer. Über diesen kann man sich ohne Programmierkenntnisse sein App User Interface zusammen klicken. Über die im App Store befindliche App kann man nun dieses nutzen und experimentieren.
Für Entwicklungszwecke ist das ideal, will man aber an einem Punkt dann professioneller werden wendet man sich an einen Dienstleister oder muss selber eine App entwickeln!
Habt ihr noch weitere Ideen für Apps rund um den Raspberry Pi? Oder anders gefragt: was würdet ihr gerne mit der Smartphone am Pi steuern wollen?
Für mich wäre eine Steuerung eines Hubschraubers beziehungsweise einer Drohne optimal.
Hi, ich bin durch den Pi ans programmieren gekommen, bin natürlich noch „in der Ausbildung“ 🙂 Grund hierfür ist natürlich die Hardware an dem Pi bequem über eine Webseite zu steuern. Aktuell übe ich mit Django und den Models dynamische Webseiten zu erstellen mit denen man auch etwas anfangen kann 🙂 nun stellt sich mit die Frage, wie weit kommt man mit Web-Apps, und wo müssen native apps für Smartphone her? Ich wollte auf Sicht eine Gegensprechanlage mit schliesssystem und webcam installieren, dafür sind auch push-Benachrichtigung und Video/Audio streaming in Echtzeit nötig. Was meint ihr?
interessantes Projekt für einen Anfänger! Für so einen Anwendungsfall wäre eine native App sicher am besten. Das ist jedenfalls etwas, das man auch in einem App Store verkaufen kann! Aber du kannst das auch als Web-App laufen lassen, ein Beispiel wie man einen Stream der Webcam in einem Browser darstellen kann habe ich ja bereits gezeigt (Pi als Alarmanlage). Da hast du schon mal eine gute Basis. Als native iOS oder Android App würde das dann noch um einiges professioneller wirken, jedoch ist wie bereits erwähnt die Einarbeitungszeit und der große Aufwand für viele Programmierer eine Barriere…
Hallo Werner, mit irgend etwas muss man ja anfangen 🙂 Wenn ich eine native App entwickelt wollte müsste ich mich in objective-C oder mit kivy einlernen. Außerdem habe ich gar nicht vor eine App zu verkaufen. Momentan reicht mir Django und Python zum programmieren lernen. Mit HTML5 Techniken wie websockets und localstorage könnte man ja schon recht weit an einer App kommen, was u.a. natürlich noch fehlt sind Push-Benachrichtigungen (könnte man über boxcar extern realisieren) und diverse Einstellungen wie „Bildschirm soll nicht in Stand-By gehen“.
Aktuell habe ich ein größeres Projekt angefangen, was ich evtl. sogar geschäftlich nutzen kann, hierbei geht es um ein Lager-Leitsystem (hole Palette aus Stellplatz 4711 und bringe es auf Übergabeplatz 5. Von da holt der nächste Stapler die Palette ab und bring sie zum nächsten Stellplatz, etc.), hier ist wegen WLAN-Empfang bzw. Störungen localstorage und für die automatische Auftragsansicht websockes interessant.
Momentan feile ich aber noch an den logiken.
Ich möchte mir eine App programmieren. Allerdings fehlt mir der Einstieg. Gibt es ein Tutorial, was mit zeigt, wie ich befehle ans Raspberry senden kann? Am liebsten native, also ohne Server App auf dem Raspberry. Der Rest sollte Fleiß sein, das ist kein Problem.
Das hängt ganz davon ab was du machen willst. Du kannst am Raspberry Pi zB eine MySQL Datenbank laufen lassen und eine Smartphone App programmieren und Daten dort speichern. Du kannst auch einen FTP Zugang anlegen und somit Bilder, Dokumente usw. abspeichern. Du kannst zB mit C++ oder Python ein Programm schreiben, dass die Verbindungen der Netzwerkschnittstelle verwenden kann und somit mit einer Smartphone App kommuniziert (wobei das extrem viel Aufwand bedeutet). Was auch immer, du darfst nicht nach Raspberry Pi suchen, sondern nach Informationen wie man normale Programme schreibt. Im Prinzip kannst du alle Programme auch für den Raspberry Pi kompilieren. Java zB ist Plattform unabhängig, d.h. ein Javaprogramm das lokal am PC läuft würde auch am Pi funktionieren.
Nun gut, fangen wir bei den Basics an. Wenn man die IP kennt kann man mittels ssh Befehle ans Raspberry schicken (dann brauch man keine komihierte Kommunikationsapp schreiben) oder gibt es einen einfacheren Weg? Ich möchte ungern 2 Apps (Server und Client) entwickeln. Es soll lediglich eine App fürs iPhone geschrieben werden.
ja, aber SSH ist durch das Login selbst schon recht komplex. Besser wäre du machst so etwas mit Sockets die auf bestimmte Ports hören. Zu dem Thema bin ich ab der falsche Ansprechpartner, da ich so lowlevel noch selten etwas programmiert habe. Vielleicht hilft dir zum Einstieg sowas: http://www.linuxhowtos.org/C_C++/socket.htm