php http curl arduino

php - Enviar un HTTP POST a Arduino con cURL



(1)

Estoy tratando de enviar un HTTP POST a mi Arduino con un blindaje Ethernet de mi servidor con cURL , pero no funciona. Si envío valores POST a través de un formulario HTML o mediante el terminal cURL de Mac OS X , el Arduino recibe los datos, por lo que supongo que el código Arduino es correcto.

Esta es mi función CURL:

function curler($what,$arduinoip){ $url = "http://".$arduinoip; extract($what); $fields = array( ''blue'' => urlencode($blue) ); foreach($fields as $key=>$value){$fields_string .= $key.''=''.$value.''&'';} $fields_strings = rtrim($fields_string, ''&''); // hasta aca todo bien $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_strings); //execute post $result = curl_exec($ch); $curl_errno = curl_errno($ch); $curl_error = curl_error($ch); curl_close($ch); if ($curl_errno > 0) { echo "cURL Error ($curl_errno): $curl_error/n"; } else { echo "Data received: $result/n"; } }

Recibo dos respuestas:

cURL Error (28): ¡se ha agotado el tiempo de espera de connect ()!

y

Error cURL (7): no se pudo conectar al host

Si CURLOPT_CONNECTTIMEOUT no está declarado, no devuelve nada.

¿Qué pasa con mi código?


No agregue ''http: //'' antes de su IP host:

$url = $arduinoip;

Intenta aumentar tu límite de tiempo:

//200+ maybe? curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 250);