Teste Completo Shild R2



Link para aquisição da shild no mercado livrehild IoT R2


//www.clubedaeletronica.com.br

//Teste de funcionamento da shild IoT
//Revisão: 22Jan2024

#include <Adafruit_SSD1306.h> //Bibliotecas para OLED
#include <Adafruit_GFX.h> //Bibliotecas para OLED
Adafruit_SSD1306 dsp(-1); //cria o objeto do OLED para i2c

#include <DHT11.h> //Biblioteca do DHT11
DHT11 dht11(23); //cria o objeto do DHT11 e define o Pino23 (i2c)

//Definição de entradas, saídas e variáveis globais
#define RELE01 19   //dá nome aos pinos da Shild
#define RELE02 18
#define BTN01 26
#define BTN02 27
#define BTN03 14
#define BTN04 13

void TESTE_OK() // Função para teste do OLED
{
  dsp.setTextColor(WHITE);//define o texto para branco (no display ficara azul)
  dsp.setTextSize(1);//define o tamanho do texto
  dsp.println("Testando...");//escreve na tela a mensagem
  dsp.setTextSize(2);//define o tamanho do texto
  dsp.println("Shild IoT.");//escreve na tela a mensagem
  dsp.setTextSize(1);//define o tamanho do texto
  dsp.println("Funcionando...");//escreve na tela a mensagem
  dsp.display();//mostra as alteracoes no display, sem isso nao ira mostrar nada!!
  digitalWrite(2,HIGH); //acende o LED do Azul do ESP32
}

void Teste_OLED() //Efeito no OLED
{
  int i;
  dsp.clearDisplay();
  for (i = 0; i < 64; i++)
  {
    dsp.drawLine(0, 0, 128, i, WHITE);//desenha uma linha
    dsp.display();//mostra na tela
    delay(1);
  }
  for (i = 63; i > -1; i--)
  {
    dsp.drawLine(0, 0, 128, i, BLACK);
    dsp.display();
    delay(1);
  }
}
void Test_DHT()   // Função para Teste do DHT11
{
int temperature = dht11.readTemperature();
        Serial.print("Temperature: ");
        Serial.print(temperature); //leitura na porta serial
        Serial.println(" °C");

int humidity = dht11.readHumidity();
        Serial.print("Humidity: ");
        Serial.print(humidity); //leitura na porta serial
        Serial.println(" %");
}

//código simples somente para testes dos reles
void Pisca1S(){
  digitalWrite(RELE01, HIGH);
  digitalWrite(RELE02, LOW);
  delay(1000);
  digitalWrite(RELE01, LOW);
  digitalWrite(RELE02, HIGH);
  delay(1000);
}
void Piscajuntos(){
  digitalWrite(RELE01, HIGH);
  digitalWrite(RELE02, HIGH);
  delay(1000);
  digitalWrite(RELE01, LOW);
  digitalWrite(RELE02, LOW);
  delay(1000);
}
void Piscarapido(){
  digitalWrite(RELE01, HIGH);
  digitalWrite(RELE02, LOW);
  delay(100);
  digitalWrite(RELE01, LOW);
  digitalWrite(RELE02, HIGH);
  delay(100);
}
void Desliga(){
  digitalWrite(RELE01, LOW);
  digitalWrite(RELE02, LOW);
}

//Configurações iniciais
void setup() {
  Serial.begin(115200);
  dsp.begin(SSD1306_SWITCHCAPVCC, 0x3C);//inicia o display com endereco padrao
  Teste_OLED();
  pinMode(RELE01, OUTPUT); //configura os RELES 1 e 2 como saída
  pinMode(RELE02, OUTPUT);
  pinMode(BTN01, INPUT);  //configura os Botões 1,2,3 e 4 como entrada
  pinMode(BTN02, INPUT);
  pinMode(BTN03, INPUT);
  pinMode(BTN04, INPUT);
  pinMode(2,OUTPUT);     //Configura o pino 2 (nativo do ESP32) como saída
}

// O programa em loop
void loop() {
  TESTE_OK(); //chama o teste do OLED
  Test_DHT(); //chama o teste do DHT

  //Chama as funções para teste dos botões e reles
  if(digitalRead(BTN01)==LOW)
  {
    Pisca1S();
  }
  if(digitalRead(BTN02)==LOW)
  {
    Piscajuntos();
  }
  if(digitalRead(BTN03)==LOW)
  {
    Piscarapido();
  }
  if(digitalRead(BTN04)==LOW)
  {
    Desliga();
  }
}

Comentários

Postagens mais visitadas deste blog

Exercícios diversos

008 - Arduino - Contador simples

Projetos com PDA - ESP32 - APP Inventor e Arduino IDE