Zuletzt geändert: 2018-10-31

Esp8266 DualRelais als Arduino Tab.

DualRelais.ino

// ****************************************************************
// Sketch Esp8266 DualRelais Modular(Tab)
// created: Jens Fleischer, 2018-09-11
// last mod: Jens Fleischer, 2018-10-31
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp8266, Nodemcu, 2-Kanal Relais Modul oder SSR
// entweder Relais Modul
// GND an GND
// IN1 an D5 = GPIO14
// IN2 an D6 = GPIO12
// VCC an VIN -> je nach verwendeten Esp.. möglich
// Jumper JD-VCC VCC
// alternativ ext. 5V Netzteil verwenden
//
// oder 3V Solid State Relais
// SSR1 Input - an GND
// SSR1 Input + an D5 = GPIO14
// SSR2 Input - an GND
// SSR2 Input + an D6 = GPIO12
// Getestet auf: Nodemcu
/******************************************************************
  Copyright (c) 2018 Jens Fleischer. All rights reserved.

  This file is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
*******************************************************************/
// Diese Version von DualRelais sollte als Tab eingebunden werden.
// #include <ESP8266WebServer.h> muss im Haupttab aufgerufen werden
// Die Funktionalität des ESP8266 Webservers ist erforderlich.
// Die Funktion "dualRelais();" muss im Setup aufgerufen werden.
/**************************************************************************************/
const uint8_t level = LOW;   // LOW für LOW aktive Relais oder HIGH für HIGH aktive (zB. SSR) einstellen
const byte RelPin1 = D5;     // Pin für 2-Kanal Relais oder Solid State Relais
const byte RelPin2 = D6;     // Pin für 2-Kanal Relais oder Solid State Relais

void dualRelais() {
  pinMode(RelPin1, OUTPUT);
  pinMode(RelPin2, OUTPUT);
  digitalWrite(RelPin1, 1 - level);
  digitalWrite(RelPin2, 1 - level);

  server.on("/duorel", []() {
    if (server.arg(0) == "1") {
      digitalWrite(RelPin1, !digitalRead(RelPin1));    // Relais umschalten
      Serial.println(digitalRead(RelPin1) - level ? "Relais 1 ist aus" : "Relais 1 ist an");
    }
    if (server.arg(0) == "2") {
      digitalWrite(RelPin2, !digitalRead(RelPin2));    // Relais umschalten
      Serial.println(digitalRead(RelPin2) - level ? "Relais 2 ist aus" : "Relais 2 ist an");
    }
    server.send(200, "application/json", (String)"[\"" + (digitalRead(RelPin1) - level) + "\",\"" + (digitalRead(RelPin2) - level) + "\"]");
  });
}

Zurück