relais-consigne.ino

Arduino Yún · Archivo : relais-consigne.ino · Lenguaje : Arduino · Uso : Le Linux commande un relais : le croquis applique la consigne

En sentido inverso al primer ejemplo: un simple curl por el lado Linux enciende un relé controlado por el microcontrolador. Sondear la consigna con detección de cambio evita martillar el puente sin motivo.

Hardware

Un Arduino Yun (ATmega32U4 + Linux Linino sobre un Atheros AR9331, Wi-Fi y Ethernet, ranura microSD). 1 módulo relé (contacto seco) + alimentación externa si hay carga.

Cableado

IN del módulo relé a D7, VCC 5 V, GND común. Nunca alimentar una carga de 230 V sin un módulo de relé adecuado y caja cerrada.

Funcionamiento

valueGet relee la clave "relais" del almacén bridge; la comparación con el último valor evita escrituras repetidas. digitalWrite controla el optoacoplador del módulo.

Ejecución

Arduino IDE: selecciona el puerto serie para grabar y luego la placa Arduino Yun para el monitor. Por el lado Linux: ssh root@arduino.local (contraseña de la distribución). La app Yunwizard configura la red.

Variantes

Añadir un temporizador de apagado automático (millis), o un botón físico prioritario en local.

relais-consigne.ino

// Le Linux ecrit une consigne (valuePut), le croquis actionne.
#include <Bridge.h>

const int RELAIS = 7;
String derniere = "";

void setup() {
  pinMode(RELAIS, OUTPUT);
  digitalWrite(RELAIS, LOW);
  Bridge.begin();
  Serial.begin(9600);
}

void loop() {
  String consigne;
  Bridge.valueGet("relais", consigne);
  consigne.trim();

  if (consigne != derniere) {          // seulement si la consigne change
    derniere = consigne;
    if (consigne == "on") {
      digitalWrite(RELAIS, HIGH);
      Serial.println(F("relais ACTIVE"));
    } else {
      digitalWrite(RELAIS, LOW);
      Serial.println(F("relais libere"));
    }
  }
  delay(500);                          // scrutation douce
}

// Cote Linux :
//   curl -d "on"  http://localhost/data/relais
//   curl -d "off" http://localhost/data/relais

← Volver a la ficha