I am using the Mac PHP serial class and i can talk to the Arduino USB board but it seams to only work when i have the Arduino software running and using the Arduino Serial port monitor. If i don't have the Arduino serial port monitor running i can't talk to the Arduino board. Is there a way to default Arduino to open to the serial monitor or a work around to get the PHP to work with out the Arduino software running? Basically looking for a simple work around?
What's your code,
TO the best of my knowledge, PHP Can't directly talk to the Arduino, it has to be through a backend interface of sorts, PHP talks to IT, and IT talks to the Arduino.
I'm not sure exactly how you;re doing this from within the environment as I don't think the IDE works as a backend, but I may be wrong.
im using the PHP serial class that is listed here on the arduino forms.
I don't know how to solve the original problem. I am using the arduino serial monitor as well while
my php script runs... guess that will have to do for now.
But a new question...
How do you use fread to read data into a php app?
I guess that you have to run a serial proxy, like the one used for having Adobe Flash to talk with the Arduino.
http://www.arduino.cc/playground/Interfacing/SerialNet
I don't know how to solve the original problem. I am using the arduino serial monitor as well while
my php script runs... guess that will have to do for now.But a new question...
How do you use fread to read data into a php app?
I am trying to do the same.
In the Serial Monitor, re results returs ok, but with PHP I think I am writing the FREAD() function wrong.
Here are arduino and php code. Sorry, I did not translate the comments to english, but I think you could understand.
Arduino Code:
/*
- Ola Mundo - Hello World
- Explicação do programa:
- Se chegar o valo 1, escreve "Ola Mundo" e acende o LED
- Se chegar outro valor, escreve "Nao veio o valor correto ainda" e apaga o LED
*/
//declara variáveis
int entrada = 0;
int led = 13; //led no pino 13
void setup()
{
Serial.begin(9600); // Serial library em 9600 bps
pinMode(led, OUTPUT); //configura o LED no pino 13
}
void loop() // run over and over again
{
if (Serial.available() > 0)
{
// lê byte entrando
entrada = Serial.read();
// Se o valor for = 1 escreve Ola Mundo e acende o LED
if (entrada == '1')
{
Serial.print("Ola Mundo: ");
Serial.println(entrada);
digitalWrite(led, HIGH); // liga LED
}
else //escreve outra coisa
{
Serial.print("Nao veio o valor correto ainda: ");
Serial.println(entrada);
digitalWrite(led, LOW); // desliga LED
}
}
} // fim fo loop
How it works with arduino:
- Put a LED in the 13 PIN (digital with builtin resistor).
- Open Serial Monitor (arduino app)
- send 1, it turn the LED on and return "Ola Mundo";
- If you send other caracter (2, 3, 4, 5....), it wil return the other sentence and turn of the LED.
PHP code:
<? `mode com11: BAUD=9600 PARITY=N data=8 stop=1 xon=off`; if ($port = fopen("COM1", "w+")) { $valor = $_GET["caracter"]; echo "abriu a porta serial "; if (fwrite($port, $valor)) { echo "enviou $valor "; //lendo o retorno **if ($recebe = fread($port))** { echo " Recebeu:".$recebe; } } else { echo "não enviou $caracter "; } fclose($port); } else { echo "a porta seral NÃO abriu! "; } ?>My problem is in the BLUE part of PHP code:
if ($recebe = fread($port))
100% its wrong, but how is the right mode?