Irydeo Observatory Software Compilation - IOSC / Ejemplos de scripts
Control del deshumidificador del observatorio
En este script vamos a controlar el deshumidificador instalado en el observatorio. Está conectado al relé número 4 de Dragonfly, que permite suministrarle energía o apagarlo.
Al mismo tiempo, el script lee la humedad relativa desde una estación meterorológica controlada por Weewx, a la que se accede mediante el módulo Weewx de IOSC.
La humedad se lee cada 5 minutos y sólo se activará el deshumidificador en caso de que el techo esté cerrado, controlado por los relés 1 (apertura) y 2 (cierre) de Dragonfly.
<?php
/*
* Sample PHP Dragonfly control script
*/
ini_set('display_errors',1);
//include IOSC
include 'phar://../../iosc.phar/iosc/IOSC.php';
/* Maximum allowed humidity */
$maxHumidity = 65;
/* Sleep time/interval (seconds) */
$interval = 300; // 5 minutes
/* Weewx generated */
$url = '/var/www/irydeo/iow/wc/irydeo/humidity.txt';
/* DragonFly instance */
$dfly = new Dragonfly("192.168.1.241");
while (true) {
/* Open syslog */
openlog("irydeo-HumidityControl.log", LOG_PID | LOG_PERROR, LOG_LOCAL0);
if ($dfly->SensorDigRead(2)) {
/* Read humidity (2 first chars) */
$arr = file($url);
$currentHumidity = substr($arr[0], 0, 2);
if ($currentHumidity > $maxHumidity) {
syslog(LOG_INFO, "Activating dehumidifier...(CURRENT: $currentHumidity% MAX_ALLOWED: $maxHumidity%)\n");
$dfly->RelayClose(2);
} else {
if ($dfly->RelayRead(2)) {
syslog(LOG_INFO, "Deactivating dehumidifier...($currentHumidity%)\n");
$dfly->RelayOpen(2);
} else {
syslog(LOG_INFO, "Humidity is OK... ($currentHumidity%)\n");
}
}
} else {
echo "(Roof opened) Deactivating dehumidifier...\n";
syslog(LOG_WARNING, "Roof is opened! --> Deactivating dehumidifier...\n");
$dfly->RelayOpen(2);
}
/* Close log file */
closelog();
/* Go to sleep! */
sleep($interval);
}
- Descarga script
Apertura y cierre de techo
Se trata de un script que permite abrir y cerrar el techo, verificando antes que la columna está en posición de descanso (bajada) y el telescopio se encuentra aparcado, para así evitar incidencias.
Conexiones:
-
Apertura de techo: Relé 1
-
Descarga script
Elevación de columna
Este script se encarga de elevar la columna, verificando previamente que el techo se encuentra completamente abierto y la montura perfectamente aparcada.
Conexiones:
- Conexión de elevación de columna: Relé 3
- Sensor de apertura de techo: Sensor 2
- Sensor de columna bajada: Sensor 4
- Sensor de montura aparcada: Sensor 5
- Descarga script
Bajar columna
Este script se encarga de bajar la columna, verificando previamente que el techo se encuentra completamente abierto y la montura está aparcada en su posición correcta.
Conexiones:
-
Conexión de elevación de columna: Relé 3
-
Sensor de apertura de techo: Sensor 2
-
Sensor de columna bajada: Sensor 4
-
Sensor de montura aparcada: Sensor 5
-
Descarga script
Script de automatización de inicio
Junto con los módulos anteriores, se incluye un script que estará en init.d y que se encarga de arrancar todos los scripts que estén en una carpeta determinada... explicar.