Arduino + PHP + PYTHON - Español -

Hola...

Mi Primer foro :slight_smile:

Bueno les traigo un código que llevo unos días desarrollando.
se trata de poder prender un led en el arduino con python y php.
Yo uso un servidor xampp o lampp en linux con php 5
El proyecto lo hice con Arduino Nano v3
Y Python 2.7

cd /la/ubicación/del/archivo/
chmod 777 tmp.txt

Ojo El Archivo tmp.txt no se incluye y tiene que tener permisos de lectura y escritura completos
en linux
Todos los archivos Aquí

El código en Arduino Ide

#define LED 13
int mssg = 0; //variable para guardar el mensaje
 
void setup()
{
   pinMode(LED, OUTPUT); //establecemos 13 como salida
   Serial.begin(9600); //iniciando Serial
}
 
void loop()
{
   if (Serial.available() > 0)
   {
      mssg = Serial.read(); //leemos el serial
 
      if(mssg == 'e')
      {
         digitalWrite(13, HIGH); //si entra una 'e' encendemos
      }
      else if(mssg == 'a')
      {
         digitalWrite(13, LOW); //si entra una 'a' apagamos
      }
   }
}

El php es este

<?php
$val = "0";
$archive = "tmp.txt";
$manager = fopen($archive, "w");
if(isset($_POST["on"])){
 $val = "1";
 $write = fwrite($manager,$val);
 fclose($manager);

}
if(isset($_POST["of"])){
 $val = "0";
 $write = fwrite($manager,$val);
 fclose($manager);
 
}

?>
<html>
<head>
</head>
<body>
<div>
<form name="loginform" id="loginform" action="" method="POST">
        <p class="submit">
        <input type="submit" name="on" class="button" value="" style="height:300px; width:300px; background-color:green; float:left;"/>
    </p>
 <p class="submit">
        <input type="submit" name="of" class="button" value="" style="height:300px; width:300px; background-color:red; float:right;"/>
    </p>
</form>
</div>

</body>
</html>

Es simple solo dos botones y el método POST en php

Y el código Python

#!/usr/bin/python2.7
import serial
import time
while True:
    ser = serial.Serial('/dev/ttyUSB0', 9600)
    file = open("/opt/lampp/htdocs/tmp.txt")
    vel = file.read()
    file.close()
    if vel == "1":
        ser.write("e")
        time.sleep(1)
    elif vel == "0":
        ser.write("a")
        time.sleep(1)

Estaré interesado en echarle un ojo a tu post, pero ¿Esto no iría en la sección de proyectos?

En php no necesitas poner el isset() en el $_POST. Te basta con if($_POST['nombre de la variable']). Es más, incluso puedes hacer if($_POST) y después revisar cada variable. En resumen y sin entrar en detalles que este foro es de C. Puedes obviar el isset para revisar si existe esa variable en el caso del POST. No es una superglobal, pero casi.

Hay que ir a currar. Después lo miro con calma.

Gracias (si no hay dudas de software no sé si te moverán el hilo).