Irydeo Observatory

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.