relais-consigne.ino
Sens inverse du premier exemple : un simple curl côté Linux allume un relais piloté par le microcontrôleur. La scrutation de la consigne avec détection de changement évite de rebateler inutilement le pont.
Matériel requis
Une Arduino Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). 1 module relais (contact sec) + alimentation externe si charge.
Câblage
IN du module relais sur D7, VCC 5 V, GND commun. Ne jamais alimenter une charge 230 V sans module relais adapté et boîtier fermé.
Fonctionnement
valueGet relit la clé "relais" du magasin bridge ; la comparaison avec la dernière valeur évite les écritures répétées. digitalWrite commande l'optocoupleur du module.
Exécution
Arduino IDE avec la carte Arduino Tian : téléversement par le port USB « Native ». Côté Linux : ssh root@arduino.local. La bibliothèque Bridge est identique à celle de la Yun.
Variantes
Ajouter un temporisateur d'extinction automatique (millis), ou un bouton physique prioritaire 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