INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Serielle Verbindung mit PHP
11.05.2014, 14:55
Beitrag #1
Serielle Verbindung mit PHP
Hallo zusammen,
solangsam bin ich am verzweifeln, weil es einfach nicht klappen will, wie ich das möchte.
Ich habe einen Webserver auf meinem Raspberry installiert. Der Raspberry ist über USB mit meinem Arduino verbunden. Auf diesem Webserver läuft ein PHP-Skript, das eine serielle Verbindung zu meinem Arduino herstellt. Am Arduino selber, steckt nur eine LED, die einfach nur eingeschaltet werden soll.
Hier das PHP-Skript:
PHP-Code:
<?php

//Funktion zum Einstellen der seriellen Schnittstelle

    
function rs232init($com,$bautrate)
    {
    `
mode $com: BAUD=$bautrate PARITY=N data=8 stop=1 xon=off`;
    }

//Funktion zum Senden


    
function senden($comport,$zeichen)
    {

         
$fp fopen ($comport"w+");
         if (!
$fp)
          {
             echo 
"Port zum Schreiben nicht geöffnet!";
          }
        else {
                
fputs ($fp$zeichen);
                 
fclose ($fp);
                }
    }

$port "/dev/ttyACM0";
rs232init($port,9600); 
senden($port,'1'); // 
Mittlerweile funktioniert das auch, aber das merkwürdige ist, dass die LED nur ganz kurz dreimal hintereinander aufleuchtet. Das sieht genau so aus, als wenn man einen neuen Sketch hochlädt. Da blinkt die auch immer.
Wenn ich dann mal parallel dazu den Serial Monitor öffne, also während dem Betrieb, funktioniert alles einwandfrei. Die LED verhält sich genau so, wie unten programmiert. Weiß hier vlt jemand weiter? Ich weiß nämlich keinen Rat mehr.

Vielen Dank für eure Hilfe.

Hier noch der Arduino-Sketch:
PHP-Code:
void setup() {
  
pinMode(ledPinOUTPUT);
  
Serial.begin(9600);
}

void loop() {
  if(
Serial.available()) {
    
   
int num Serial.read();
   
//Serial.write(num);
   
digitalWrite(ledPinHIGH);
   
delay(2000);
   
digitalWrite(ledPinLOW);
  }
  
delay(1000);

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2014, 15:19
Beitrag #2
RE: Serielle Verbindung mit PHP
Hallo dyne,

folgende Sachen solltest du genauer erklären:
Zitat: Der Raspberry ist über USB mit meinem Arduino verbunden.
Auf welche Ports/Pins des Arduino gehts denn? Nicht zufällig 0/1.Da laufen der USB-Port und der SerialMonitor des Arduino auf! Daher läuft es wahrscheinlich wenn du den Monitor aktivierst. Wenn ja, nimm lieber die nächsten verfügbaren Pins. Wenn du einen Uno benutzt musst du dafür die NewSoftSerial-Library benutzen.
Alles Notwendige siehe hier: http://arduino.cc/de/Reference/SoftwareSerial

Welchen ledPin benutzt du?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2014, 16:03
Beitrag #3
RE: Serielle Verbindung mit PHP
(11.05.2014 15:19)rkuehle schrieb:  Hallo dyne,

folgende Sachen solltest du genauer erklären:
Zitat: Der Raspberry ist über USB mit meinem Arduino verbunden.
Auf welche Ports/Pins des Arduino gehts denn? Nicht zufällig 0/1.Da laufen der USB-Port und der SerialMonitor des Arduino auf! Daher läuft es wahrscheinlich wenn du den Monitor aktivierst. Wenn ja, nimm lieber die nächsten verfügbaren Pins. Wenn du einen Uno benutzt musst du dafür die NewSoftSerial-Library benutzen.
Alles Notwendige siehe hier: http://arduino.cc/de/Reference/SoftwareSerial

Welchen ledPin benutzt du?

Grüße Ricardo
Hallo Ricardo,
der Arduino funktioniert nur bei Port 0. Ich habe das mal getestet, indem ich mit einer Schleife alle Ports durchgegangen bin. Die LED ist an PIN 13 und GND angeschlossen. Deinen Link werde ich mir gleich mal genauer betrachten. Aber schonmal danke für deinen Hinweis.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2014, 16:50
Beitrag #4
RE: Serielle Verbindung mit PHP
Hallo dyne,

Zitat:der Arduino funktioniert nur bei Port 0.
Da aber über Port 0/1 die Kommunikation zum Serialmonitor (und zum Raufladen der Sketche) geht, musst du halt die Verbindung zum RasPi über andere Ports umsetzen. Dafür die Library!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2014, 17:57
Beitrag #5
RE: Serielle Verbindung mit PHP
Also ich habe mir diese Bibliothek angeschaut und anhand des Beispiels angepasst. Jetzt stellen sich mir drei Fragen:
1. Was bedeuten in dem Beispiel Pin 10 und 11? Sind das meine "neuen" Pins für die serielle Kommunikation?

2. Ich will den Arduino weiterhin über USB-Kabel betreiben, bedarf es jetzt einem hardwaremäßigen Umbau?

3. Auf Pin 10 und 11 eingestellt ist weiterhin nur /dev/ttyACM0 beschreibbar. Was mache ich falsch. Oder wie kann ich dieser mySerial Bibliothek mitteilen, dass es nicht Port 0 sein soll.

Hier der neue Sketch:
PHP-Code:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10,11);

const 
int ledPin 13;

void setup() {
  
pinMode(ledPinOUTPUT);
 
mySerial.begin(9600);
}

void loop() {
  if(
mySerial.available()) {

   
int num mySerial.read();
   
//mySerial.write(num);
   
digitalWrite(ledPinHIGH);
   
delay(2000);
   
digitalWrite(ledPinLOW);
}
  
delay(1000);

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2014, 07:49
Beitrag #6
RE: Serielle Verbindung mit PHP
Moin dyne,

zu deinen Fragen:
10/11 sind die Pins zur Kommunikation mit dem RasPi. Um den anschließen zu können brauchst du noch einen USB / Serial Converter wie zB. hier beschrieben: http://arduino.cc/en/Main/USBSerial
Die Pins 0/1 bleiben wie gehabt die Standardports für die Kommunikation des SerialMonitor bzw. zur Arduino IDE.
Wie man mehrere (virtuelle) SerialPorts deklariert und nutzt, einem zum Monitor, den anderen zu einem extra Device kann man hier sehen:
http://arduino.cc/en/Tutorial/TwoPortReceive

Hope it helps!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2014, 08:22
Beitrag #7
RE: Serielle Verbindung mit PHP
(11.05.2014 16:50)rkuehle schrieb:  Hallo dyne,

Da aber über Port 0/1 die Kommunikation zum Serialmonitor (und zum Raufladen der Sketche) geht, musst du halt die Verbindung zum RasPi über andere Ports umsetzen. Dafür die Library!

Grüße Ricardo

Ich nutze den Arduino aber aucch an der USB ( = COM) Schnittstelle um mit einer selbstgeschriebenen PC-Software zu kommunizieren. Das müsste doch dann auch mit dem Rasperry gehen, wenn der die USB Verbindung richtig erkennt.
Wenn man sich per COM auf den Arduino verbindet, kann man in den Verbindungseinstellungen vom COM auch mitgeben, dass der Arduino keinen Reset machen soll.
Leider sehe ich unter dem Link, dass dies leider mit dem Rasperry nicht geht:
http://playground.arduino.cc/Main/Disabl...Connection unter Punkt "Software settings to disable the DTR pin on the host"

Gruß, Alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2014, 15:05
Beitrag #8
RE: Serielle Verbindung mit PHP
Aha jetzt hab ich es verstanden. Ich erstelle also eine neue serielle Verbindung aber an den Pins 10/11. Mithilfe des USB to Serial Adapters kann ich weiterhin den Arduino mit USB zum RasPi betreiben, aber lasse dann mein TX und RX Signal nicht auf Pin 1 und 0 gehen sondern eben 10 und 11. Und so kann ich das Spielchen weiterführen wenn ich beispielsweise noch einen weiteren Arduino dazu schalten will.
Ist doch richtig oder?

Vielen Dank für die Hilfe Smile Habe mir den Adapter bestellt und werde das dann gleich ausprobieren Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Question Keine Verbindung via USB nach flashen des Programms chaoscrack 5 203 23.08.2016 14:58
Letzter Beitrag: hotsystems
  Serielle Schnittstelle - Daten empfangen Datatom 8 772 22.05.2016 18:10
Letzter Beitrag: avoid
  Arduino Mega 2560 - RS232-Verbindung zum PC Datatom 4 598 17.03.2016 20:52
Letzter Beitrag: Stephan_56
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 517 08.03.2016 12:13
Letzter Beitrag: Binatone
Sad Arduino Shield Verbindung bricht ab (PHP Skript,Mysql Datenbank) julius858 12 3.292 19.02.2016 11:26
Letzter Beitrag: IBES1410
  Serielle Ausgabe, Reset ? Mathias 1 594 12.11.2015 18:12
Letzter Beitrag: hotsystems
  Serielle Kommunikation arduino147147 1 665 15.10.2015 08:22
Letzter Beitrag: Binatone
  extrem langsame UART Verbindung (Mega-Mega, Serial1) HaWe 20 1.624 05.09.2015 16:28
Letzter Beitrag: fraju
  Serielle Kommunikation zw. zwei Arduino UNOs Marduino_UNO 2 1.105 20.08.2015 07:13
Letzter Beitrag: Marduino_UNO
  Serielle Schnittstelle tourbiker 7 1.621 20.04.2015 15:26
Letzter Beitrag: tourbiker

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste