Relay example

Relay module must be connected to controller module or with sensor module.

Relay has 3 input holes.

Needed libraries:

lib_deps = ITTIoT

The example code below shows if something is connected to the relay module

// Includes global variables and librarys that the relay shield uses
#include <Arduino.h>
#include <ittiot.h>
 
#define MODULE_TOPIC "ESP30/relay"
#define WIFI_NAME "name"
#define WIFI_PASSWORD "password"
 
#define RELAY_PIN 5 // The relay has been connected to pin 5 (D1)
 
// If message received switch relay
void iot_received(String topic, String msg)
{
  Serial.print("MSG FROM USER callback, topic: ");
  Serial.print(topic);
  Serial.print(" payload: ");
  Serial.println(msg);
 
  if(topic == MODULE_TOPIC)
  {
    // If message received and it is 1, then switch relay on
    if(msg == "1")
    {
      digitalWrite(RELAY_PIN, HIGH);
    }
    // If message received and it is 0, then switch relay on
    if(msg == "0")
    {
      digitalWrite(RELAY_PIN, LOW);
    }
  }
}
 
// Function started after the connection to the server is established.
void iot_connected()
{
  Serial.println("MQTT connected callback");
  iot.subscribe(MODULE_TOPIC); // subscribe to topic relay
  iot.log("IoT relay example!");
}
 
void setup()
{
  Serial.begin(115200); // setting up serial connection parameter
  Serial.println("Booting");
 
  //iot.setConfig("wname", WIFI_NAME);
  //iot.setConfig("wpass", WIFI_PASSWORD);
  iot.printConfig(); // print json config to serial
  iot.setup(); // Initialize IoT library
 
  pinMode(RELAY_PIN, OUTPUT); // The relay pin is defined as output type
}
 
void loop()
{
  iot.handle(); // IoT behind the plan work, it should be periodically called
  delay(200); // Wait for 0.2 seconds
}