Gabs.VFernando F de Carvalho
Created April 27, 2023

Nanny Spring

Showcase (no instructions)8
Nanny Spring

Things used in this project

Hardware components

NodeMCU ESP8266 Breakout Board
NodeMCU ESP8266 Breakout Board
×1
DHT11 Temperature & Humidity Sensor (3 pins)
DHT11 Temperature & Humidity Sensor (3 pins)
×1
SparkFun Soil Moisture Sensor (with Screw Terminals)
SparkFun Soil Moisture Sensor (with Screw Terminals)
×1
LDR, 5 Mohm
LDR, 5 Mohm
×1
SparkFun Qwiic Single Relay
SparkFun Qwiic Single Relay
×1
Jumper wires (generic)
Jumper wires (generic)
×1
LED (generic)
LED (generic)
×3
Resistor 10k ohm
Resistor 10k ohm
×1
Resistor 220 ohm
Resistor 220 ohm
×1
Rotary potentiometer (generic)
Rotary potentiometer (generic)
×1
DC motor (generic)
×1
Buzzer, Piezo
Buzzer, Piezo
×1
Switch Actuator, Head for spring return push-button
Switch Actuator, Head for spring return push-button
×1

Software apps and online services

Firebase
Google Firebase
Arduino IDE
Arduino IDE

Story

Read more

Code

Nanny Spring

C/C++
#include <WiFi.h>                          //importa biblioteca para conectar esp32 com wifi
#include <IOXhop_FirebaseESP32.h>          //importa biblioteca para esp32 se comunicar com firebase
#include <ArduinoJson.h> 

//fazendo definições para não repetir muito texto durante o código 
#define WIFI_SSID "UPE-ESTUDANTE"                  //substitua "Nome_do_seu_wifi" pelo nome da sua rede wifi 
#define WIFI_PASSWORD "Orgulhodeserupe"             //substitua "Senha_do_seu_wifi" pela senha da sua rede wifi 
#define FIREBASE_HOST "https://nannyspringac-default-rtdb.firebaseio.com/"    //substitua "Link_do_seu_banco_de_dados" pelo link do seu banco de dados 
#define FIREBASE_AUTH "tEWtG3LzsoltbtInQmba4m0slYNMNBBKXpgmkpqB"   //substitua "Senha_do_seu_banco_de_dados" pela senha do seu banco de dados

// Definir o pino do LED verde
int ledPinLum = 26;

// Definir o pino do fotoresistor
int sensorPinLum = 27;

// Definir o pino do humidade
int sensorPinHum = 14;

//Definir o pino do LED amarelo
int ledPinHum =25;


void setup() {
  Serial.begin(115200);
  pinMode(ledPinLum, OUTPUT);
  pinMode(sensorPinLum, INPUT);
  pinMode(ledPinHum, OUTPUT);
  pinMode(sensorPinHum, INPUT);

   WiFi.begin(WIFI_SSID, WIFI_PASSWORD);     //inicia comunicação com wifi com rede definica anteriormente
  
    Serial.print("Conectando ao wifi");       //imprime "Conectando ao wifi"
    while (WiFi.status() != WL_CONNECTED)     //enquanto se conecta ao wifi fica colocando pontos
   {
     Serial.print(".");
     delay(300);
  }
  Serial.println();                         //imprime pulo de linha

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);   //inicia comunicação com firebase definido anteriormente


}

void loop() {
  // Ler o valor de luminosidade do fotoresistor
  int sensorValue = analogRead(sensorPinLum);
  int valorLuz = map(sensorValue, 0, 4095, 10, 0);
  Serial.print("Valor da luminosidade: ");
  Serial.println(valorLuz);

  // Se a luminosidade for alta, piscar o LED
  if (valorLuz > 8 ) {
    Serial.println("Atenção!Luminosidade alta!");
    digitalWrite(ledPinLum, HIGH);

    delay(500);
    digitalWrite(ledPinLum, LOW);

    delay(500);
  }else if(valorLuz < 4){
    digitalWrite(ledPinLum, LOW);

    delay(3000);
  }

    // Ler o valor de umidade do sensor
  int sensorValueHum = analogRead(sensorPinHum);
  int valorHum = map(sensorValueHum, 0, 4000, 10, 0);
  Serial.print("Valor da umidade sem map: ");
  Serial.println(sensorValueHum);

  Serial.print("Valor da umidade: ");
  Serial.println(valorHum);

  if (valorHum < 4) {
    Serial.println("Atenção! Umidade baixa!");
    digitalWrite(ledPinHum, HIGH);

    delay(500);
    digitalWrite(ledPinHum, LOW);

    delay(500);
  } else {
    digitalWrite(ledPinHum, LOW);
    delay(3000);
  }

  
  /////////////////////////
  //exemplo da função Get//
  /////////////////////////
  
  /*Serial.println();
  Serial.print("Humidade da Planta: ");
  Serial.print(Firebase.getInt("/Planta/humidade"));
  Serial.println();
  Serial.print("Luminosidade da Planta: ");
  Serial.print(Firebase.getFloat("/Planta/luminosidade"));
  Serial.println();
  Serial.print("Nome da Planta: ");
  Serial.print(Firebase.getString("/Planta/nome"));
  Serial.println();
  Serial.println();
  delay(3000);

}
*/

 /////////////////////////
  //exemplo da função Set//
  /////////////////////////

  

  Firebase.setString("/Planta/nome", "bromelia");
  Firebase.setInt("/Planta/luminosidade", 400);
  Firebase.setFloat("/Planta/humidade", 24.7);
  delay(300);
  Firebase.setString("/Planta/nome", "Rosa");
  Firebase.setInt("/Planta/luminosidade", 1000);
  Firebase.setFloat("/Planta/humidade", 2000);

  delay(300);

 
}

Credits

Gabs.V
1 project • 0 followers
Fernando F de Carvalho
21 projects • 8 followers

Comments