relais-consigne.ino

Arduino Yún · Fichier : relais-consigne.ino · Langage : Arduino · Usage : Le Linux commande un relais : le croquis applique la consigne

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 Yun (ATmega32U4 + Linux Linino sur Atheros AR9331, Wi-Fi et Ethernet, emplacement microSD). 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 : sélectionne le port série pour téléverser, puis la carte Arduino Yun pour le moniteur. Côté Linux : ssh root@arduino.local (mot de passe de la distribution). L"app Yunwizard configure le réseau.

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

← Retour à la fiche