Hardware > Bricometeo
Sensor de Radiacion Solar en w/m^2
jmviper:
--- Cita de: spyfly en 01 de Noviembre de 2017, 22:47:52 ---¿Seguro?
--- Fin de la cita ---
Seguro. Si guardas los datos máximos serán para fines tuyos propios... en meteoclimatic repito que ni salen ni se guardan en ningún sitio.
spyfly:
ah, pues entonces lo dejo por que llevo 4 horas con el script desde que me dijo Ubik que no era suficiente con el *SUN= y aun me faltaría como 1 horas mas para acabarlo...
Gracias jmviper
spyfly:
<?php
function juntarArchivos($archivo1,$archivo2)
{
//ARHIVO 2 SOLAR
//356.25 W/M2
$txt2 = '';
$contenido2 = file_get_contents($archivo2); // Leemos el archivo
$lineas2 = preg_split('/\r\n|\n|\r/', trim($contenido2)); // Repartimos líneas en una matriz
foreach ($lineas2 as $pos2=>$linea2) // Recorremos matriz de líneas, sacando su posición y texto
{
list($txt2, $temp2a, $temp2b) = split('[. ]', $linea2); // Extraemos valor de la línea. Los deciamales y la unidad no los queremos para nada
}
//ARHIVO 1 METEO
$txt1 = '';
$contenido1 = file_get_contents($archivo1); // Leemos el archivo
$lineas1 = preg_split('/\r\n|\n|\r/', trim($contenido1)); // Repartimos líneas en una matriz
foreach ($lineas1 as $pos1=>$linea1) // Recorremos matriz de líneas, sacando su posición y texto
{
list($parametro1, $valor1) = split('=', $linea1); // Extraemos parámetro y valor de la línea
if ($parametro1 == '*SUN') // Si encontramos la radiacion
{
$txt1 = $valor1; // Guardamos el valor
$posicion1 = $pos1; // Guardamos su posición en la matriz
}
}
//Tenemos el valor real de la radiaccion solar ($txt2) y el no real ($txt1)
//Tenemos el completo de valores de la estacion en la matriz ($lineas1)
//Sabemos en posicion ($posicion1) de la matriz ($lineas1) tenemos que escribir el valor real ($txt2)
//SALIDA ARCHIVO 1 + ARCHIVO 2
if ($txt1 > '') // ¿Encontramos el parámetro solar no real?
{
if ($txt2 > '') // ¿Encontramos el parámetro solar real?
{
$lineas1[$posicion1] = '*SUN='.$txt2; // Sobreescribimos el valor
$salida = implode("\r\n", $lineas1);// Guardamos la matriz de vuelta a una variable plana
print $salida;//Imprimimos la informacion en pantalla para que el script de meteoclimatic la lea
}
}
}
//Datos a cambiar según el servidor donde trabajemos debemos cambiar las rutas y los nombres de los ficheros
$archivo_meteo = 'datos/meteoclimatic.html'; //Datos recibidos de la estacion meteorológica
$archivo_solar = 'datos/solar/solar.txt'; //Datos recibidos del Arduino Solar
if (file_exists($archivo_meteo))
{
if (file_exists($archivo_solar))
{
juntarArchivos($archivo_meteo,$archivo_solar);
}
}
?>
spyfly:
Ese script php se encarga de juntar el archivo que genera la plantilla meteoclimatic de los valores de la estación con el valor de la radiación solar del arduino.
Es decir respeta todos los valores de la estación excepto el DSUN que coge el del arduino, y devuelve por pantalla el fichero terminado.
¿Como funciona?
Pues creais un fichero por ejemplo meteosolar.php y copiais ese código en él.
En ese archivo php teneis editar 2 parametros:
- La ruta que le estabais pasando a meteoclimatic hasta ahora. La del archivo de los datos de vuestra estación.
- La ruta del nuevo archivo que os genera el Arduino
La url que tenéis que pasarle a meteoclimatic es la de meteosolar.php
Por ejemplo:
URL actual meteoclimatic: www.estacionmanolito.com/meteoclimatic.html
URL nueva para meteoclmatic: www.estacionmanolito.com/meteosolar.php
Configuracion en el PHP:
- $archivo_meteo = 'meteoclimatic.html'; //Datos recibidos de la estacion meteorológica
- $archivo_solar = 'solar.txt'; //Datos recibidos del Arduino Solar
spyfly:
He realizado una prueba puntual de 1 solo envió con ese nuevo código y he vuelto a mi plantilla habitual.
Parece que ha funcionado bien, ya que veo que la última actualización de la plantilla ya refleja la recepción del dato *SUN
De una vez que tenga todo montado y empiece a enviar plantillas correctas con el dato *SUN. ¿Hay que hacer algo mas para que salga en mi ficha la columna de radiación solar?¿Cuanto tarda en aparecer?
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa