You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Desenvolver um código simples para controlar um relê remotamente através de uma conexão com a nuvem. O código permitirá ligar e desligar o relê através de comandos enviados por uma plataforma na nuvem, como MQTTBox, utilizando o protocolo MQTT.
Objetivos
Implementar uma conexão WiFi para o microcontrolador.
Estabelecer uma conexão com um broker MQTT na nuvem.
Criar funções para ligar e desligar o relê.
Receber comandos via MQTT para controlar o estado do relê.
Publicar mensagens MQTT indicando o estado atual do relê.
Hardware Utilizado
Arduino ou microcontrolador compatível.
Módulo de Relê.
Placa WiFi ou módulo WiFi compatível.
Software Utilizado
IDE Arduino.
Biblioteca WiFi.h para a comunicação WiFi.
Biblioteca PubSubClient.h para a comunicação MQTT.
Passos
Configuração do Hardware :
Conectar o módulo de relê ao microcontrolador conforme o esquemático.
Conectar o microcontrolador ao módulo WiFi.
Instalação das Bibliotecas :
Instalar as bibliotecas WiFi.h e PubSubClient.h na IDE Arduino.
Configuração do Código :
Incluir as bibliotecas necessárias no código.
Definir as credenciais de conexão WiFi.
Definir as informações do broker MQTT (endereço, porta, usuário e senha).
Configurar o pino do relê como saída.
Conectar à Rede WiFi :
Inicializar a conexão WiFi com as credenciais fornecidas.
Conectar ao Broker MQTT :
Configurar o cliente MQTT com as informações do broker.
Estabelecer a conexão com o broker MQTT.
Loop Principal :
No loop principal, verificar se há novas mensagens MQTT.
Se receber um comando "ligar" via MQTT, ativar o relê.
Se receber um comando "desligar" via MQTT, desativar o relê.
Publicar Status MQTT :
Publicar mensagens MQTT indicando o estado atual do relê (ligado/desligado).
Testar o Código :
Carregar o código para o microcontrolador.
Monitorar as mensagens MQTT para verificar se o controle remoto do relê está funcionando corretamente.
Código .ino
#include<WiFi.h>
#include<PubSubClient.h>// Parâmetros de conexão WiFi e MQTTconstchar* ssid = "Nome_da_sua_rede"; // SSID da rede WiFiconstchar* password = "Senha_da_sua_rede"; // Senha da rede WiFiconstchar* mqtt_broker = "endereco.do.seu.broker.mqtt"; // Endereço do servidor MQTTconstchar* topic = "topico/do/rele"; // Tópico MQTT para controle do reléconstchar* mqtt_username = "seu_usuario_mqtt"; // Nome de usuário MQTTconstchar* mqtt_password = "sua_senha_mqtt"; // Senha MQTTconstint mqtt_port = 1883; // Porta MQTT// Pino do reléconstint relayPin = 2; // Pino onde o relé está conectado// Variável para armazenar o estado do relébool relayState = false;
// Objeto para conexão WiFi
WiFiClient wifiClient;
// Objeto para cliente MQTT
PubSubClient client(wifiClient);
// Protótipo de função para lidar com mensagens MQTTvoidcallback(char* topic, byte* payload, unsignedint length);
voidsetup() {
Serial.begin(9600);
// Conexão à rede WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Configuração do servidor MQTT
client.setServer(mqtt_broker, mqtt_port);
client.setCallback(callback);
// Configuração do pino do relépinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Desliga o relé inicialmente// Conexão ao servidor MQTTif (client.connect("arduinoClient", mqtt_username, mqtt_password)) {
Serial.println("Connected to MQTT broker");
client.subscribe(topic); // Inscreve-se ao tópico MQTT para receber comandos
} else {
Serial.println("MQTT connection failed");
}
}
voidloop() {
client.loop();
}
// Função de callback para lidar com mensagens MQTT recebidasvoidcallback(char* topic, byte* payload, unsignedint length) {
Serial.println("Message received from MQTT broker");
// Converte a carga útil em uma string
String message;
for (int i = 0; i < length; i++) {
message += (char)payload[i];
}
// Verifica se a mensagem é para ligar ou desligar o reléif (message.equals("ligar")) {
digitalWrite(relayPin, HIGH); // Liga o relé
relayState = true;
} elseif (message.equals("desligar")) {
digitalWrite(relayPin, LOW); // Desliga o relé
relayState = false;
}
// Confirmação do estado do relé
Serial.print("Relay state: ");
Serial.println(relayState ? "ON" : "OFF");
}
Considerações Finais
Este código básico permite controlar um relê remotamente através de uma conexão WiFi e MQTT. Ele pode ser expandido para incluir recursos adicionais, como autenticação, monitoramento de status e integração com outros dispositivos na nuvem.
Task: Controle de Relê via Cloud
Descrição
Desenvolver um código simples para controlar um relê remotamente através de uma conexão com a nuvem. O código permitirá ligar e desligar o relê através de comandos enviados por uma plataforma na nuvem, como MQTTBox, utilizando o protocolo MQTT.
Objetivos
Hardware Utilizado
Software Utilizado
Passos
Código .ino
Considerações Finais
Este código básico permite controlar um relê remotamente através de uma conexão WiFi e MQTT. Ele pode ser expandido para incluir recursos adicionais, como autenticação, monitoramento de status e integração com outros dispositivos na nuvem.
Documentação Adicional
The text was updated successfully, but these errors were encountered: