JustPaste.it

NodeMCU Siri ile MQTT Haberleşme 2 Kanal Role Kullanımı.

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

 

#define RELAY 2 //role 1 pin
#define RELAY2 4 //role 2 pin

 

 

const char* ssid = "ssid";       //2.4GHz internet adınız

const char* password =  "sifre";     //internet şifreniz

 


const char* mqttServer = "broker.mqttdashboard.com";      //broker server adı

const int mqttPort = 1883;          //broker server portu

const char* mqttUser = "";        //mqtt kullanıcı adı

const char* mqttPassword = "";      // mqtt şifre

 

WiFiClient espClient;

PubSubClient client(espClient);

 

void setup() {

  delay(1000);

  pinMode(RELAY,OUTPUT);
  pinMode(RELAY2,OUTPUT);

  Serial.begin(115200);

 

  WiFi.begin(ssid, password);

 

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.println("Connecting to WiFi..");

  }

  Serial.print("Connected to WiFi :");

  Serial.println(WiFi.SSID());

 

  client.setServer(mqttServer, mqttPort);

  client.setCallback(MQTTcallback);

 

  while (!client.connected()) {

    Serial.println("Connecting to MQTT...");

 

    if (client.connect("sizin topic", mqttUser, mqttPassword )) {       //hivemq dan açtığınız topic 

 

      Serial.println("connected");  

 

    } else {

 

      Serial.print("failed with state ");

      Serial.println(client.state()); 

      delay(2000);

 

    }

  }

 

  client.publish("sizin topic", "Sistem Aktif!");      // hivemq dan açtığınız topic ve sistem aktif olduğunda gönderilen mesaj

  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());


  client.subscribe("sizin topic"); //hivemq dan açtığınız topic 

 

}

 

void MQTTcallback(char* topic, byte* payload, unsigned int length) {

 

  Serial.print("Message arrived in topic: ");

  Serial.println(topic);

 

  Serial.print("Message:");

 

  String message;

  for (int i = 0; i < length; i++) {

    message = message + (char)payload[i];  //byte stringe dönüştü

  }

   Serial.print(message);
  if(message == "false") {digitalWrite(RELAY,HIGH);}   // RÖLE kapalı

  if(message == "true") {digitalWrite(RELAY,LOW);}     // RÖLE açık

  if(message == "falsee") {digitalWrite(RELAY2,HIGH);}   // RÖLE 2. role kapalı

  if(message == "truee") {digitalWrite(RELAY2,LOW);}     // RÖLE 2. role açık


  Serial.println();

  Serial.println("-----------------------");  

}

 

void loop() {

  client.loop();

}