relais-consigne.ino
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