/************************************************************
** File name: TEST_ESP32_LedGRB_PWD
** Descrizione: Prova controllo led RGB con PWD
** Versione: 1.0
** Autore: Tiziano Perlato
** Copyright(C):P&P Technology S.r.l.
** Data: Settembre 2022
*************************************************************/
#include "DHTesp.h"
#include "analogWrite.h"
const int DHT_PIN = 15; //pin del sensore temperatura
const int buttonPin = 2; //pin del bottone
const int relayPin = 13; //pin del relay
/////////////////////////////////////
////DICHIARAZIONE DELLE VARIABILI////
/////////////////////////////////////
int pwmchannelred = 0;
int pwmchannelgreen = 0;
int pwmchannelblue = 0;
int bitres = 8;
int freq = 5000;
int ButtonState = 0; // variable per la lettura stato del pushbutton
int StatoB = 0; //stato bottone
int DaEseguire = 1;
int SetPointComfort = (analogRead(15)); //variable per la lettura temp. in posizione COMFORT
int SetpointMax = 42; //punto massimo in posizione MAX
DHTesp dhtSensor;
void setup() {
ledcSetup(pwmchannelred, freq, bitres);
ledcAttachPin(23, pwmchannelred);
ledcSetup(pwmchannelgreen, freq, bitres);
ledcAttachPin(22, pwmchannelgreen);
ledcSetup(pwmchannelblue, freq, bitres);
ledcAttachPin(21, pwmchannelblue);
Serial.begin(9600);
pinMode(2, INPUT); //Bottone
pinMode(15, INPUT); //Sensore temperatura
pinMode( relayPin, OUTPUT); //Relay
//Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
//////////////////////////////
/////// LOGICA BOTTONE ///////
//////////////////////////////
if (digitalRead(4) == HIGH && StatoB == 0)
{
StatoB = 1;
if (ButtonState < 2) {
ButtonState = ButtonState + 1;
}
else
{
ButtonState = 0;
}
delay(10);
DaEseguire = 1;
}
if (digitalRead(2) == LOW)
{
StatoB = 0;
delay(10);
}
/////////////////////////////
/////// STATI BOTTONE ///////
/////////////////////////////
switch (ButtonState) {
case 0:
//sostiruire i 3 led con led RGB e mettere resistenze da 340 ohm//
if (DaEseguire == 1) {
Serial.println("SPENTO");
//inserire qui accensione di tutti i colori rgb = Led Bianco
}
//delay(50);//Ritardo in millisencondi per stabilizzare il sistema.
DaEseguire = 0;
}
break
case 1:
if (DaEseguire == 1) {
//inserire qui accensione dei led rosso e verde = Led Giallo
DaEseguire = 0;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("COMFORT: " + String(data.temperature, 1) + "°C");
//delay(50);//Ritardo in millisencondi per stabilizzare il sistema.
}
break;
case 2:
if (DaEseguire == 1) {
//inserire qui accensione del Led Rosso, gli altri spenti
DaEseguire = 0;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("MAX: " + String(data.temperature, 1) + "°C");
//delay(50);//Ritardo in millisencondi per stabilizzare il sistema.
}
break;
default:
ButtonState = 0;
break;
}
//////////////////////////////
//// GESTIONE TEMPERATURA ////
//////////////////////////////
if (ButtonState == 0)
{
}
if (ButtonState == 1)
{
}
if (ButtonState == 2)
{
}
}