Arduion Php Kommunikation über Raspberry B+ Webserver

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,
    ich habe eine Verständnisfrage.
    Über folgenden Scriptteil sende ich einen Wert an den Arduino:

    Code
    $fp = fopen('/dev/ttyACM0','r+'); 
    fwrite($fp,$wert); //write string to serial
    fclose($fp);

    Über folgenden Scriptteil lese ich den angekommenen Wert (String) aus:

    Code
    void loop() 
    {
        if (Serial.available() > 0) 
      {
        String cmd = Serial.readString();
    ........usw

    Wenn also irgendwas ankommt, dann pack's in cmd und mache...

    Wie kann ich denn nun einen Wert zurück an php geben?

    Viele Grüße ... KK

    Wenn ich es richtig verstehe,
    sollte ich für's Lesen von Daten in php (Daten die der Arduino sendet)
    folgende Variante nutzen?

    Für's schreiben aber nicht?

    Viele Grüße - KK

    Einmal editiert, zuletzt von KeithKeith (11. Dezember 2014 um 15:53)

  • Arduion Php Kommunikation über Raspberry B+ Webserver? Schau mal ob du hier fündig wirst!

  • Ich kenne die Klasse die du nutzt nicht jedoch steht im Leseteil auch wie man schreibt.

    Code
    $serial->sendMessage("\r\nOK\r\n");

    Im Bezug auf dein fopen konstrukt:

    Code
    $serial->sendMessage($wert);

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Die Frage war aber: wie er vom Arduino zurück schreibt - vom PHP zum Arduino hat er ja bereits... Also PHP --> Arduino hat er bereits. Er fragt nun nach Arduino --> PHP.

    ..Das geht mit Serial.print(); ohne Zeilenumbruch, oder mit Serial.println(); mit Zeilenumbruch.


    Klick mal auf meine Signatur, den ersten Link, Seite 9, Beitrag #126.. Erklärung dazu auf dem 2.Link des Beitrags.
    (der Sketch aufm Arduino ist auf der selben Seite 9 in Beitrag#134)

    Du wirst nämlich ein gewaltiges Problem kriegen: Das PHP Script, welches du übern Browser aufrufst, muss darauf warten bis eine Antwort vom Arduino zurück kommt. Das wird auf dauer kein Spass machen.

    Auch wirst du (das sagte ich dir aber auch schon mal) früher oder später Probleme kriegen wenn du nur mit einem einzigen Zeichen arbeitest, zumindest wird das irgendwann ziemlich unübersichtlich wenn irgendwann "x" für Vorwärtsfahren steht :D

  • Ich hatte dir zu Serial.readStringUntil('\n'); geraten, das liest die Eingabe bis ans Ende, bis ein Zeilenumbruchzeichen " \n " empfangen wird. Damit wird quasi das Ende einer Übertragung terminiert und sichergestellt das keine Bruchstücke verarbeitet werden

  • Link2: Da geht es um Streaming der Webcam ?

    ich habe jetzt um ....Until('\n'); erweitert.
    Ich verstehe leider wirklich nicht genau was Du meinst.
    Gehe ich nun den richtigen Weg, oder sollte ich das ganz anders machen?

    Viele Grüße ... Martin

    Einmal editiert, zuletzt von KeithKeith (12. Dezember 2014 um 10:06)

  • Naja ich weiß nicht wie genau dein Weg aussieht. Ich kann dir nur sagen was ich bei meinem Projekt an Erfahrungen gesammelt und recherchiert habe, und mir vieles ziemlich schnell auf den Zeiger ging, weswegen ich es nun halt anders mache :D

    Stell halt mal dein Projekt vollständig vor, beschriebe wie du was machst aber auch wieso du das so machst

    Dann kann man dir auch besser/einfacher sagen ob dieser Weg gut oder eher nicht so gut is.

  • :danke_ATDE:
    Also eigentlich möchte ich "nur" mehrere relais per Internet ein- und ausschalten und dann kontrollieren ob es auch funktioniert hat.
    Ich habe ein Wochenendhaus und möchte elektrische Heizkörper per Internet steuern.
    Wenn ich dann noch die Raumtemperatur messen könnte, wäre das super.

    Dazu habe ich jetzt einen Raspberry Pi B+, einen Arduino Uno, ein Relaisshild
    Auf Dem Raspberry läuft Debian und das gesamte "Vernetzen" ist erledigt.
    Ich kann mit meinen Code bereits die Relais schalten

    Nun hätte ich gerne vom Arduino eine Antwort, ob das Schalten erfolgreich war, oder nicht.

    Viele Grüße ... KK

  • index.html
    Javascript um ein Neuladen der Seite zu verhinden.
    "klick" wird an verarbeiten.php versendet

    verarbeiten.php

    Arduino:

    Das ganze ist ein bisschen träge.
    Läuft auf einem Raspberry Pi B+ funbktioniert aber soweit.
    Ich könnte jetzt ein paar Tipps gebrauchen:
    1) Is das der richtige Weg
    2) Wie kann ich Werte aus/vom Arduino zurück ans phpscript verabeiten.php, oder ein anderes Script geben (Anschalten ausgeführt)
    3) kann ich den aktuellen zustand eines Relais abfragen?
    :danke_ATDE:

    Viele Grüße ... KK

    Einmal editiert, zuletzt von KeithKeith (12. Dezember 2014 um 13:53)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!