Este tópico contém resposta, possui 2 vozes e foi atualizado pela última vez por  Rosana Guse 5 dias .

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #97009

    aitimmota
    Participante

    Boa tarde!

    Ficarei agradedicido a quem poder me ajudar , comprei este modulo rele, e não consigo acionar os mesmo, faço a gravação na placa tudo de boa , so que os reles não acionam, e o mesmo codigo com o NodeMCU funciona , ja troquei nome dos pinos para  Ex: (Open the relay: A0 01 01 A2  /Close the Relay:A0 01 00 A1 ) e nao funciona sera que alguém pode me ajudar?

    Meu codigo esta a seguir

    #include <ESP8266WiFi.h>
    #include <PubSubClient.h>

    #define DEBUG

    #define L1 D1 //pino de saida para acionamento da Lampada L1 . // ja troquei por A1 ,A0,P1,0 e nada
    #define L2 D2 //pino de saida para acionemento da Lampada L2 . // ja troquei por A2 ,02,P2, 2 e nada

    //informações da rede WIFI
    const char* ssid = “Vini souza”; //SSID da rede WIFI
    const char* password = “vini280508”; //senha da rede wifi

    //substitur x com os valores do server
    const char* mqttServer = “XXXXXXXXX”; //server
    const char* mqttUser = “XXXXXX”; //user
    const char* mqttPassword = “XXXXXX”; //password
    const int mqttPort = 16316; //port

    const char* mqttTopicL1 =”casa/L1″; //tópico que sera assinado para l1
    const char* mqttTopicL2 =”casa/L2″; //tópico que sera assinado para L2

    const byte L1 = D1;   // ja troquei por A1 ,A0,P1,0 e nada
    const byte L2 = D2;  // ja troquei por A2 ,02,P2, 2 e nada

    WiFiClient espClient;
    PubSubClient client(espClient);

    void setup() {

    Serial.begin(115200);
    pinMode(D1, OUTPUT);
    pinMode(D2, OUTPUT);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    #ifdef DEBUG
    Serial.println(“Conectando ao WiFi..”);
    #endif
    }
    #ifdef DEBUG
    Serial.println(“Conectado na rede WiFi”);
    #endif

    client.setServer(mqttServer, mqttPort);
    client.setCallback(callback);

    while (!client.connected()) {
    #ifdef DEBUG
    Serial.println(“Conectando ao Broker MQTT…”);
    #endif

    if (client.connect(“ESP8266Client”, mqttUser, mqttPassword )) {
    #ifdef DEBUG
    Serial.println(“Conectado”);
    #endif

    } else {
    #ifdef DEBUG
    Serial.print(“falha estado “);
    Serial.print(client.state());
    #endif
    delay(2000);

    }
    }

    //subscreve no tópico
    client.subscribe(mqttTopicL1);
    client.subscribe(mqttTopicL2);

    }

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

    //armazena msg recebida em uma sring
    payload[length] = ‘\0’;
    String strMSG = String((char*)payload);

    #ifdef DEBUG
    Serial.print(“Mensagem chegou do tópico: “);
    Serial.println(topic);
    Serial.print(“Mensagem:”);
    Serial.print(strMSG);
    Serial.println();
    Serial.println(“———————–“);
    #endif

    //aciona saída conforme msg recebida
    if(String(topic) == “casa/L1”){
    if (strMSG == “1”){ //se msg “1”
    digitalWrite(L1, LOW); //coloca saída em LOW para ligar a Lampada – > o módulo RELE usado tem acionamento invertido. Se necessário ajuste para o seu modulo
    }else if (strMSG == “0”){ //se msg “0”
    digitalWrite(L1, HIGH); //coloca saída em HIGH para desligar a Lampada – > o módulo RELE usado tem acionamento invertido. Se necessário ajuste para o seu modulo
    }
    }

    if(String(topic) == “casa/L2”){
    if (strMSG == “1”){ //se msg “1”
    digitalWrite(L2, HIGH); //coloca saída em HIGH – liga o LED
    }else if (strMSG == “0”){ //se msg “0”
    digitalWrite(L2, LOW); //coloca saída em LOW – Apaga o LED
    }
    }

    }

    //função pra reconectar ao servido MQTT
    void reconect() {
    //Enquanto estiver desconectado
    while (!client.connected()) {
    #ifdef DEBUG
    Serial.print(“Tentando conectar ao servidor MQTT”);
    #endif

    bool conectado = strlen(mqttUser) > 0 ?
    client.connect(“ESP8266Client”, mqttUser, mqttPassword) :
    client.connect(“ESP8266Client”);

    if(conectado) {
    #ifdef DEBUG
    Serial.println(“Conectado!”);
    #endif
    //subscreve no tópico
    client.subscribe(mqttTopicL1, 1); //nivel de qualidade: QoS 1
    client.subscribe(mqttTopicL2, 2); //nivel de qualidade: QoS 1
    } else {
    #ifdef DEBUG
    Serial.println(“Falha durante a conexão.Code: “);
    Serial.println( String(client.state()).c_str());
    Serial.println(“Tentando novamente em 10 s”);
    #endif
    //Aguarda 10 segundos
    delay(10000);
    }
    }
    }

    void loop() {
    if (!client.connected()) {
    reconect();
    }
    client.loop();
    }

     

    0
    #97091

    Rosana Guse
    Moderador

    Olá.

    Você já testou usando o código desse tutorial?  https://www.filipeflop.com/blog/como-usar-modulo-rele-wifi-esp8266-blynk/

    Abraço!

    Rosana – Equipe FIlipeFlop

    0
Visualizando 2 posts - 1 até 2 (de 2 do total)

Você deve fazer login para responder a este tópico.