Jump to content

TinkerForge und RaspberryPi mit PHP


Recommended Posts

Hallo,

 

ich habe gestern den brickd auf meinem Raspberry Pi installiert und nach der Anleitung auch ohne Probleme oder Fehler. Eine Abfrage der Version lief auch super.

Dann habe ich die PHP-Beispiele ausprobieren wollen, aber außer einer unendlichen Ladezeit habe ich leider keine Fehler in der Ausgabe (Reporting ist aktiviert im Skript) und auch keinen Eintrag im ErrorLog des Apache.

 

In einem anderen Beitrag hier habe ich gelesen, dass es an den Rechten gelegen haben könnte. Der Apache läuft nicht als root, sondern als ein user und für die bisherigen PHP-Projekte war das kein Problem.

 

Da ich mit Linux nicht so fit bin, habe ich mal testweise die /usr/bin/brickd mit 0777 berechtigt, was aber kein Ergebnis brachte.

 

Wo könnte der Fehler liegen? Wo muss ich welche Rechte vergeben?

 

Mal ganz am Anfang...wie könnte ich per shell sehen, das mein angesteckter ServoBrick (LED leuchtet konstant blau) erkannt wird und nicht Teil des Problems ist?

Link to comment
Share on other sites

Ja...ich habe dort Apache-Php-Mysql die übliche Umgebung auf der auch ein paar Skripte laufen. Zudem funktioniert auch die Fehlerausgabe, denn anfangs hatte ich vergessen den Pfad für require_once zu ändern und da kam gleich der entsprechende Fehler. den Pfad ergänzt und dann kommt NICHTS...der Browser lädt auch ziemlich unendlich ohne Fehler oder Resultat.

Link to comment
Share on other sites

Mal ganz am Anfang...wie könnte ich per shell sehen, das mein angesteckter ServoBrick (LED leuchtet konstant blau) erkannt wird und nicht Teil des Problems ist?

Du könntest erstmal mit dem Brick Viewer gucken ob die Bricks/Bricklets erkannt werden. Danach würde ich dann erstmal eines der Minimal-PHP-Beispiele testen, um zu gucken ob das mit PHP prinzipiell funktioniert.

 

Wenn das geht bleibt ja nur noch Apache als Fehlerquelle.

Link to comment
Share on other sites

Soweit ich verstanden habe, braucht es für einen Viewer auch eine Desktopoberfläche...ich betreibe aber den Raspberry als echten Server und das ohne Oberfläche...mir bleibt also nur die shell.

 

Ich habe ja nur das Beispiel: ExampleEnumerate.php getestet. Und das läuft unendlich ohne Rückmeldung.

Link to comment
Share on other sites

Hallo mchott.

 

Soweit ich verstanden habe, braucht es für einen Viewer auch eine Desktopoberfläche

Du sitzt doch nicht mit Keyboard und ASCII Monitor vor dem Raspberry.  ;D

 

Installiere auf DEINEM Arbeitsplatzrechner den Brickviewer und verbinde dich (via Netzwerk) auf den Raspberry.

 

Der Loetkolben

Link to comment
Share on other sites

Danke für den Tipp...ist schon genial wie das alles funktioniert. Was man dann ganz deutlich sieht...ist, dass man nix sieht.

 

Daraus folgere ich, dass die Anmeldung per USB ein Problem ist...mmmmhhhh

 

Per lsusb kann ich sagen das mein Servo-Brick als "GrauTec" erkannt wird.

Nachdem ich bei der Installation mit dem libudev Probleme hatte habe ich aus einem anderen Forum die per libudev-dev installiert (problemlos).

 

...weiter komme ich aber nicht...

Link to comment
Share on other sites

Der Brickdaemon funktioniert...ich bekomme vom Viewer keinen Fehler. Schalte ich den Deamon ab, dann wird mir das gleich quittiert. Daher kann es nur noch der USB-Anschluss sein. Die Bricks habe ich jetzt auch mal direkt an einen PC angeschlossen und dann gehen sie.

 

 

Link to comment
Share on other sites

Ah, dann solltest du deinen Brick noch flashen/updaten.

 

Am einfachsten an deinen Arbeitsplatzrechner anschließen, beide Taster gleichzeitig drücken und im Brick-Viewer flashen*

 

* Das war gerade die Kurzversion, es gibt auch eine echte Anleitung dazu hier in der Doku.

Link to comment
Share on other sites

Super...mit der Anleitung war alles gesagt...

 

Wenn ich mich aber mit dem Stapel bestehend aus zwei Bausteinen jetzt verbinde, dann sehe ich immer nur den, an dem das USB-Kabel hängt. Um mit dem brickv auch die Bricklets zu updaten, musste ich noch den brickd installieren.

 

Aus PHP hat sich die Situation nicht geändert....alles super bis zur zum

$ipcon->dispatchCallbacks(-1);

Dann lädt und lädt und lädt der Browser ohne Funktion. Normal würde ich ja sagen ist das gar nicht so verkehrt, denn er wartet ja auf eine Rückmeldung. Aber er zeigt halt auch nichts an. (nicht so und auch nicht wenn ich das Bricklet betätige).

Link to comment
Share on other sites

Das "$ipcon->dispatchCallbacks(-1);" ist im wesentlichen eine Endlosschleife. Die ganzen kleinen Minibeispiele sind dafür da um direkt über PHP aufgerufen zu werden, das Programm kann dann mit "strg+c" beendet werden.

 

Wenn du über Apache ein Skript ausführen möchtest muss das "$ipcon->dispatchCallbacks(-1);" weg, da ist es ja so das ein PHP Script sozusagen immer einer Webanfrage entspricht. Da darf dann ans ende keine Endlosschleife.

Link to comment
Share on other sites

http://www.tinkerforge.com/de/doc/Software/IPConnection_PHP.html#ipcon-php

 

Das ist mein erstes Beispiel...was aber nicht funktioniert. Die Endlosschleife ist raus und statt dessen eine 5 als Wert, damit gibt er wie erwartet nach 5s die Daten aus.

 

Über den Brickv oder PHP bekomme ich NUR den ersten Brick mit seinen Bricklets im Stapel (der an dem das USB-Kabel hängt). Muss man da noch was einstellen? Oder braucht man für einen Stapel immer einen MasterBrick?

Link to comment
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...