Bonjour à tous,
Depuis quelque années je m'intéresse à l'électronique et grâce à tous les tutos ou aides sur les forum j'arrive souvent à mes fins.
Cependant, je bloque sur un point (qui est surement tout bête) depuis une semaine.
Voici le projet:
Je souhaite faire de mon frigo une chambre de fermentation pour ma bière et une cave d'affinage pour ma charcuterie où je pourrais changer la température "cible" via une interface web sur blynk.
Pour ma bière la température de fermentation varie selon les levures mais en moyenne on dira 20°.
Pour ma charcuterie (quand je ne fais pas de bière) la température est entre 12 et 15°C.
J'ai donc réaliser un montage "simple" avec une sonde de température DHT 11 et un relais 5V reliés sur un ESP8266 (nodeMCU).
Voici le code :
// Fill-in information from your Blynk Template here
#define BLYNK_TEMPLATE_ID "######"
#define BLYNK_DEVICE_NAME "régulateur température"
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG
#define APP_DEBUG
// Uncomment your board, or configure a custom board in Settings.h
//#define USE_SPARKFUN_BLYNK_BOARD
#define USE_NODE_MCU_BOARD
//#define USE_WITTY_CLOUD_BOARD
//#define USE_WEMOS_D1_MINI
#include "BlynkEdgent.h"
#include "DHT.h"
#define DHTPIN D2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int RelayPin1 = 5;
float h, t;
float tc;
BLYNK_WRITE(V2) // Executes when the value of virtual pin 0 changes
{
int tc = param.asInt();
if (t >= tc )
{
digitalWrite(RelayPin1, LOW); // Frigo allumé
}
else
{
digitalWrite(RelayPin1, HIGH); // Frigo éteint
}
Blynk.syncVirtual(V2);
}
void setup()
{
Serial.begin(115200);
pinMode(RelayPin1, OUTPUT);
BlynkEdgent.begin();
dht.begin();
delay(100);
}
void loop() {
BlynkEdgent.run();
h = dht.readHumidity();
t = dht.readTemperature();
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V0, t);
}
La température cible est donné via un slicer sur l'interface web de blynk:
Le problème avec ce code c'est lorsque la température à l'intérieur du frigo est supérieur a la température de consigne (20° par exemple), le frigo se met en marche mais il ne s'éteint pas une fois passé la température de consigne pour y rester.
Je souhaiterais donc "stocker" la valeur de consigne donnée dans blynk et la renseigner en tant que variable.
J'espère que vous pourrez m'aider.
Merci d'avance.
