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 Tian (Microchip SAM3X8E + Linux TianOS sobre un Atheros AR9344, doble USB, Ethernet y Wi-Fi). 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 con la placa Arduino Tian: grabado por el puerto USB « Native ». Por el lado Linux: ssh root@arduino.local. La librería Bridge es idéntica a la del Yun.
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