08-15-2023, 06:19 PM
(06-26-2023, 04:33 AM)claudio Wrote:(04-26-2023, 08:48 AM)administrador Wrote: você deseja usar os dados do sensor de leitura do KC868-A8 e enviar para outra placa KC868-A8?
você pode tirar uma foto, para que possa entender você.
isso os sensores são contatos botao enquanto sensor precionado ligado
precisava da placa a4 enviasse para a placa a8
consegue colocar este eketick para trabalhar com o mqtt e acioar a placa a8 as entrada in para que seja quando a placa a 4 for acionada a a8 seja tambem
#include <WiFiManager.h>
#include <WiFi.h>
const char* ssid = "CRS"; // insira o nome da sua rede WiFi
const char* senha = "xxxx "; // insira a senha da sua rede WiFi
mqtt xxxxxxx preciso
const int PIN_SENSOR_1 = 36; //sensor de nível 25%
const int PIN_SENSOR_2 = 39; //sensor de nível 50%
const int PIN_SENSOR_3 = 27; //sensor de nível 75%
const int PIN_SENSOR_4 = 14; //sensor de nível 100%
const int PIN_RELAY_1 = 2; //rele de led 1 vermelho 10
const int PIN_RELAY_2 = 15; //rele de led 2 vermelho 25%
const int PIN_RELAY_3 = 5; //rele de led 3 branco 50%
const int PIN_RELAY_4 = 4; // rele de contato de boia para bomba entre-75 on e 100 off
const int PIN_BUZZER = 18; //buzzer alarme de pouca agua
const int PIN_DAC_1 = 25; // led boia ligado
const int PIN_DAC_2 = 26; //led de caixa cheio 100%
const int PIN_A1_1 = 34; //sensor de transbordo
const int PIN_A2_2 = 35; //botao silencia alarme
bool sensor_1_status = falso;
bool sensor_2_status = falso;
bool sensor_3_status = falso;
bool sensor_4_status = falso;
bool dac_1_status = falso;
bool dac_2_status = falso;
bool a1_1_status = falso;
bool a2_2_status = falso;
void setup() {
Serial.begin(115200);
pinMode(PIN_SENSOR_1, INPUT); //sensor de nível 1 25%
pinMode(PIN_SENSOR_2, INPUT); //sensor de nível 2 50%
pinMode(PIN_SENSOR_3, INPUT); //sensor de nível 3 75%
pinMode(PIN_SENSOR_4, INPUT); //sensor de nível 4 100%
pinMode(PIN_DAC_1, OUTPUT); //led de boia superior entre 75% a 100%
pinMode(PIN_DAC_2, OUTPUT); // led de caixa em 100%
pinMode(PIN_A1_1, INPUT); //sensor transbordo na CAG
pinMode(PIN_A2_2, INPUT); //botão silencia alarme
pinMode(PIN_RELAY_1, OUTPUT); //led1 10%
pinMode(PIN_RELAY_2, OUTPUT); //led2 50%
pinMode(PIN_RELAY_3, OUTPUT); //led3 75%
pinMode(PIN_RELAY_4, OUTPUT); //contato de fechamento pedido de água
pinMode(PIN_BUZZER, OUTPUT); //alareme sonoro de -10% e transbordo
// Conexão WiFi
WiFi.begin(ssid, senha);
Serial.print("Conectando à rede ");
Serial.print(ssid);
while (WiFi.status() != WL_CONNECTED) {
atraso(1000);
Serial.print(".");
}
Serial.println("");
Serial.print("Conectado com sucesso à rede ");
Serial.println(ssid);
}
loop void() {
// mantém uma conexão WiFi ativa
if (WiFi.status() != WL_CONNECTED) {
Serial.print("Reconectando à rede ");
Serial.print(ssid);
while (WiFi.status() != WL_CONNECTED) {
atraso(1000);
Serial.print(".");
}
Serial.println("");
Serial.print("Conectado com sucesso à rede ");
Serial.println(ssid);
}
// leitura dos sensores
sensor_1_status = digitalRead(PIN_SENSOR_1);
sensor_2_status = digitalRead(PIN_SENSOR_2);
sensor_3_status = digitalRead(PIN_SENSOR_3);
sensor_4_status = digitalRead(PIN_SENSOR_4);
dac_1_status = digitalRead(PIN_DAC_1);
dac_2_status = digitalRead(PIN_DAC_2);
a1_1_status = digitalRead(PIN_A1_1);
a2_2_status = digitalRead(PIN_A2_2);
// monitoramento dos níveis
if (sensor_1_status == BAIXO) {
Serial.println("Reservatório com 25%.");
digitalWrite(PIN_RELAY_1, ALTO);
atraso(1000);
digitalWrite(PIN_BUZZER, BAIXO);
} outro {
Serial.println("Reservatório com menos de 25%.");
digitalWrite(PIN_RELAY_1, BAIXO);
atraso(1000);
digitalWrite(PIN_BUZZER, ALTO);
Serial.println("Alarme pouca água.");
}
if (sensor_2_status == BAIXO) {
Serial.println("Reservatório com 50% de água.");
digitalWrite(PIN_RELAY_2, ALTO);
} outro {
Serial.println("Reservatório não está com 50% de água.");
digitalWrite(PIN_RELAY_2, BAIXO);
}
if (sensor_3_status == BAIXO) {
Serial.println("Reservatório com mais de 75% de água.");
digitalWrite(PIN_RELAY_3, ALTO);
} outro {
Serial.println("Reservatório com menos de 75% de água.");
digitalWrite(PIN_RELAY_3, BAIXO);
atraso(1000);
digitalWrite(PIN_RELAY_4, ALTO);
//relé boia ativado
digitalWrite(PIN_DAC_2, ALTO);
//led de bomba ativado
Serial.println("BOMBA LIGADA.");
}
if (sensor_4_status == BAIXO) {
Serial.println("Reservatório com 100% de água.");
digitalWrite(PIN_DAC_1, ALTO);
// led 100% LIGADO
atraso(1000);
digitalWrite(PIN_DAC_2, BAIXO);
//led bomba desligado
atraso(1000);
digitalWrite(PIN_RELAY_4, BAIXO);
//rele boia desativada
Serial.println("BOMBA DESLIGADA.");
} outro {
Serial.println("Reservatório não está com 100%.");
digitalWrite(PIN_DAC_1, BAIXO);
}
if (a1_1_status == BAIXO) {
Serial.println("Transbordo.");
digitalWrite(PIN_BUZZER, ALTO);
} outro {
Serial.println("Transbordo normal.");
digitalWrite(PIN_BUZZER, BAIXO);
}
if (a2_2_status == BAIXO) {
Serial.println("Botão normal.");
atraso(1000);
} outro {
Serial.println("ALARME SILENCIADO BOTÃO PRECIONADO.");
digitalWrite(PIN_BUZZER, BAIXO);
}
atraso(1000); // Pequeno atraso para evitar leituras rápidas consecutivas
}