relais-consigne.ino

Arduino Tian (id : tian) · 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 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

← Retour à la fiche