Menu

Placa de Desenvolvimento a aplicação para IIoT

O projeto PDA IIoT

A tempos tento desenvolver um hardware para desenvolvimento e aplicações em IIoT, recentemente terminei um protótipo que chamei de PDA IIoT V1 (Placa para desenvolvimento e Aplicação) para IoT industrial. 

A placa consiste em:

8 relés conectados aos seguintes GPIOs:

Relé 01 = GPIO 15
Relé 02 = GPIO 02
Relé 03 = GPIO 04
Relé 04 = GPIO 16
Relé 05 = GPIO 17
Relé 06 = GPIO 05
Relé 07 = GPIO 18
Relé 08 = GPIO 19

A ideia é usar a IDE do Auduino para fins de testes ...

Testando as saídas

//***********************************************************************************
// Projeto IIoT - Desenvolvimento com ESP32/IDE Arduino
// Testes da Placa PDAIIoT V1
// Programa/hardware: 001 - Pisca LED/Relé
// Autor:Clodoaldo Silva
// Revisão: 01mai2019

//DEFINE ENTRADAS E SAÍDAS DA PLACA DE DESENVOLVIMENTO
#define LED_01 15 //define a saída GPIO 15
#define LED_02 2 //define a saída GPIO 12
#define LED_03 4 //define a saída GPIO 4
#define LED_04 16 //define a saída GPIO 16
#define LED_05 17 //define a saída GPIO 17
#define LED_06 5 //define a saída GPIO 5
#define LED_07 18 //define a saída GPIO 18
#define LED_08 19 //define a saída GPIO 19

void setup() //Responsável pela configuração inicial do hardware.
{
  //Coloca os pinos como entrada ou saída.
  pinMode(LED_01, OUTPUT);            // Pino será saída
  pinMode(LED_02, OUTPUT);            // Pino será saída
  pinMode(LED_03, OUTPUT);            // Pino será saída
  pinMode(LED_04, OUTPUT);            // Pino será saída
  pinMode(LED_05, OUTPUT);            // Pino será saída
  pinMode(LED_06, OUTPUT);            // Pino será saída
  pinMode(LED_07, OUTPUT);            // Pino será saída
  pinMode(LED_08, OUTPUT);            // Pino será saída
}
void loop() //Função principal, responsável por rodar o programa repetidamente.
{
  {
    digitalWrite(LED_01, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_01, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_02, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_02, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_03, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_03, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_04, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_04, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_05, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_05, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_06, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_06, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_07, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_07, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);

    digitalWrite(LED_08, HIGH);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
    digitalWrite(LED_08, LOW);       // O pino GPIO15 (LED_01) em nível alto
    delay(500);
  }
}


Vejamos os testes..


Observações observadas...

  • Se o GPIO 12 estiver desconectado o ESP32 DEVKIT V1 funciona normalmente..
  • Como liguei o GPIO 12 a uma entrada as saídas só após pressionar o mesmo, funciona como um start.