O ESP32 IoT com 4 Entradas e 4 Saídas é uma placa desenvolvida para facilitar projetos de automação residencial e industrial, permitindo controle remoto e monitoramento via Internet das Coisas (IoT). Neste artigo, vamos explorar como configurar e usar esse dispositivo em seus projetos.
Características do ESP32 IoT 4 Entradas e 4 Saídas
- Microcontrolador ESP32 com Wi-Fi e Bluetooth
- 4 entradas digitais para sensores
- 4 saídas à Transistor Open-Colector para acionamento de cargas
- Conexão via protocolo MQTT e HTTP
- Compatível com plataformas como Arduino IDE e ESPHome
Materiais Necessários
Para seguir este guia, você precisará de:
ESP32 IoT 4 Entradas e 4 Saídas
- Fonte de alimentação 12V ou 24V
- Conversor USB Serial
- Sensores e atuadores conforme necessidade do projeto
- Computador com Arduino IDE ou outro ambiente compatível
Passo a Passo para Configuração
1. Instalação da IDE e Bibliotecas
Antes de programar o ESP32, é necessário instalar o Arduino IDE e adicionar o suporte ao ESP32:
- Abra o Arduino IDE e acesse Preferências.
- Adicione o link de gerenciador de placas do ESP32:
https://dl.espressif.com/dl/
package_esp32_index.json
- Instale a biblioteca PubSubClient para conexão MQTT.
2. Cofiguração do Wi-Fi e MQTT
Para conectar o ESP32 à Internet, use o seguinte código:
#include "WiFi.h" #include "PubSubClient.h"
const char* ssid = "SEU_WIFI"; const char* password = "SUA_SENHA"; const char* mqtt_server = "broker.hivemq.com"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Conectado!"); client.setServer(mqtt_server, 1883); } void loop() { if (!client.connected()) { client.connect("ESP32Client"); } client.loop(); }
3. Controle das Saídas a Transistor do módulo
#define RELE1 17
#define RELE2 04
#define RELE3 16
#define RELE4 5
void setup() {
pinMode(RELE1, OUTPUT);
pinMode(RELE2, OUTPUT);
pinMode(RELE3, OUTPUT);
pinMode(RELE4, OUTPUT);
}
void loop() {
digitalWrite(RELE1, HIGH);
delay(1000);
digitalWrite(RELE1, LOW);
delay(1000);
}
4. Realizando Leitura das Entradas do módulo e ligando a saída correspondente
#include//para ser usado se com dispositivos I2c // define pinos int LED_BUILTIN = 2; int OUTPUT1 = 17; int OUTPUT2 = 04; int OUTPUT3 = 16; int OUTPUT4 = 05; int INPUT1 = 33; int INPUT2 = 25; int INPUT3 = 26; int INPUT4 = 27; int SW2 = 18; void setup() { //inicializa os pinos como saída pinMode(LED_BUILTIN, OUTPUT); pinMode(OUTPUT1, OUTPUT); pinMode(OUTPUT2, OUTPUT); pinMode(OUTPUT3, OUTPUT); pinMode(OUTPUT4, OUTPUT); //inicializa os pinos como Entrada pinMode(INPUT1, INPUT); pinMode(INPUT2, INPUT); pinMode(INPUT3, INPUT); pinMode(INPUT4, INPUT); //inicializa as saídas no modo desligado digitalWrite(OUTPUT1, HIGH); digitalWrite(OUTPUT2, HIGH); digitalWrite(OUTPUT3, HIGH); digitalWrite(OUTPUT4, HIGH); // inicializa I2c Wire.begin(21, 22); Serial.begin(115200); //Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2); Serial.println("Serial Txd is on pin: " + String(TX)); Serial.println("Serial Rxd is on pin: " + String(RX)); Serial.println("\nI2C Scanner"); address(); delay(300); } void address() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknow error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(1000); // wait 5 seconds for next scan } void loop() { int estado_in0 = digitalRead(INPUT1); // Ligado ao CN1_4 placa Acessoria Controla RL1 int estado_in1 = digitalRead(INPUT2); // Ligado ao CN1_3 placa Acessoria Controla RL2 int estado_in2 = digitalRead(INPUT3); // Ligado ao CN1_2 placa Acessoria Controla RL3 int estado_in3 = digitalRead(INPUT4); // Ligado ao CN1_1 placa Acessoria Controla RL4 int estado_in4 = digitalRead(SW2); // Ligado ao CN1_1 placa Acessoria Controla RL4 if (estado_in0 == 0) // Contolado pela Entrada CN1_4 da placa Acessoria Controla RL1 digitalWrite(OUTPUT1, LOW); // RELE1 else if (estado_in0 == 1) // Contolado pela Entrada CN1_4 da placa Acessoria Controla RL1 digitalWrite(OUTPUT1, HIGH); // RELE1 if (estado_in1 == 0) // Contolado pela Entrada CN1_3 da placa Acessoria Controla RL2 digitalWrite(OUTPUT2, LOW); // RELE2 else if (estado_in1 == 1) // Contolado pela Entrada CN1_3 da placa Acessoria Controla RL2 digitalWrite(OUTPUT2, HIGH); // RELE2 if (estado_in2 == 0) // Contolado pela Entrada CN1_2 da placa Acessoria Controla RL3 digitalWrite(OUTPUT3, LOW); // RELE3 else if (estado_in2 == 1) // Contolado pela Entrada CN1_2 da placa Acessoria Controla RL3 digitalWrite(OUTPUT3, HIGH); // RELE3 if (estado_in3 == 0) // Contolado pela Entrada CN1_1 da placa Acessoria Controla RL4 digitalWrite(OUTPUT4, LOW); // RELE4 else if (estado_in3 == 1) // Contolado pela Entrada CN1_1 da placa Acessoria Controla RL4 digitalWrite(OUTPUT4, HIGH); // RELE4 if (estado_in4 == 0) // Contolado pela Entrada CN1_1 da placa Acessoria Controla RL4 digitalWrite(LED_BUILTIN, HIGH); // RELE4 else if (estado_in4 == 1) // Contolado pela Entrada CN1_1 da placa Acessoria Controla RL4 digitalWrite(LED_BUILTIN, LOW); // RELE4 }
Enviando o código para o módulo de desenvolvimento ESP32 IoT com 4 Entradas e 4 Saídas
- Segure simultaneamente os botões PGM e Reset
- Solte Reset, solte PGM, neste momento o módulo estara no modo de boot pronto para receber a aplicação
Aplicações
✅ Automação residencial: Controle de iluminação e aparelhos elétricos.
✅ Monitoramento industrial: Acionamento remoto de máquinas.
✅ Projetos de IoT: Integração com assistentes virtuais e dashboards.
Conclusão
O ESP32 IoT com 4 Entradas e 4 Saídas é uma solução poderosa para automação e IoT. Com ele, você pode criar sistemas inteligentes, conectados e de fácil controle. Experimente e compartilhe suas experiências!
Precisa de mais componentes? Confira nossa Loja explore outras soluções para seus projetos de automação!