Pages: [1]   Go Down
Author Topic: Problema con lettura seriale da PHP  (Read 562 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti.
Ho un problema di lettura dei valori mandati da Arduino sulla seriale.
I dati li vorrei leggere da Raspberry a cui ho collegato Arduino con l'usb, da PHP.

Su arduino ho creato il semplice codice:
Code:
int cont = 0;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}
void loop() {
  Serial.print("Prova = " );                       
  Serial.println(cont++);   
  delay(500);                     
}

Su RaspBerry ho creato una pagine PHP che sfruttando la PHP serial class va a leggere i dati sulla seriale:
Code:
<?php
include "php_serial.class.php";

// Let's start the class
$serial = new phpSerial;

// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("/dev/ttyACM0");

// Then we need to open it
$serial->deviceOpen();

// Or to read from
$read $serial->readPort();

// If you want to change the configuration, the device must be closed
$serial->deviceClose();

echo 
$read

// etc...
?>


Il problema è che quando visualizzo la pagina PHP, invece di vedere un singolo valore tipo
Prova = 1
il risultato "accumula" tutte le righe non precedentemente lette. Ogni volta che faccio un refresh mi ritrovo tutto quello che non avevo letto la volta precedente:

Refresh 1:
Prova = 3119 Prova = 3120 Prova = 3121 Prova = 3122 Prova = 3123 Prova = 3124 Prova = 3125 Prova = 3126 Prova = 3127 Prova = 3128 Prova = 3129 Prova = 3130 Prova = 3131 Prova = 3132

Refresh 2:
Prova = 3133 Prova = 3134 Prova = 3135 Prova = 3136 Prova = 3137 Prova = 3138 Prova = 3139 Prova = 3140 Prova = 3141 Prova = 3142 Prova = 3143 Prova = 3144 Prova = 3145 Prova = 3146 Prova = 3147 Prova = 3148 Prova = 3149 Prova = 3150 Prova = 3151 Prova = 3152 Prova = 3153 Prova = 3154 Prova = 3155 Prova = 3156 Prova = 3157 Prova = 3158 Prova = 3159 Prova = 3160 Prova = 3161 Prova = 3162 Prova = 3163 Prova = 3164 Prova = 3165 Prova = 3166 Prova = 3167 Prova = 3168

Refresh 3:
Prova = 3169 Prova = 3170 Prova = 3171 Prova = 3172 Prova = 3173 Prova = 3174 Prova = 3175 Prova = 3176 Prova = 3177 Prova = 3178 Prova = 3179 Prova = 3180 Prova = 3181 Prova = 3182

Refresh 4:
Prova = 3183

Refresh 5:
Prova = 3184 Prova = 3185

Refresh 6:
Prova = 3186 Prova =

Refresh 7:
3187 Prova = 3188

e così via.

Qualcuno può aiutarmi?

Grazie
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non conosco il php purtroppo anche se sto iniziando a guardarlo ma fai conto che su arduino hai la serial.flush() che svuota il buffer della seriale, potresti metterne uno poco prima del readport()
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per l'aiuto.
Purtroppo non funziona.
Ho provato a mettere un
Code:
$serial->flush();

prima della read ma il risultato è sempre lo stesso.
Spero di avere altre soluzioni, non so più come saltarci fuori  smiley-cry
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Provo a girare la richiesta in questa maniera:
qualcuno di voi è riuscito a visualizzare su una pagina web il valore rilevato da un'entrata analogica di Arduino?
Tipo: metto una sonda di temperatura su un'entrata analogica e faccio vedere il valore su una pagina web
Logged

Pages: [1]   Go Up
Jump to: