Arduino Esp32 Sensors
Arduino Esp32 Sensors
h>
#include <PubSubClient.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <ESP32Servo.h>
// Configuration WiFi
const char* ssid = "VOTRE_SSID";
const char* password = "VOTRE_MOT_DE_PASSE";
// Configuration MQTT
const char* mqtt_server = "ADRESSE_BROKER_MQTT";
const int mqtt_port = 1883;
const char* mqtt_user = "UTILISATEUR_MQTT";
const char* mqtt_password = "MOT_DE_PASSE_MQTT";
// Variables globales
unsigned long lastMsg = 0;
const long interval = 5000; // Intervalle de publication MQTT (5 secondes)
void setup_wifi() {
delay(10);
Serial.println("Connexion à " + String(ssid));
WiFi.begin(ssid, password);
void reconnect() {
while (!client.connected()) {
Serial.print("Connexion MQTT...");
String clientId = "ESP32Client-" + String(random(0xffff), HEX);
int getWaterLevel() {
int level = 0;
if (analogRead(WATER_LEVEL_1) > 1000) level++;
if (analogRead(WATER_LEVEL_2) > 1000) level++;
if (analogRead(WATER_LEVEL_3) > 1000) level++;
if (analogRead(WATER_LEVEL_4) > 1000) level++;
return level;
}
lcd.setCursor(0, 1);
lcd.print("Niveau eau: ");
lcd.print(waterLevel);
}
void setup() {
Serial.begin(115200);
// Initialisation du LCD
Wire.begin();
lcd.init();
lcd.backlight();
lcd.print("System Ready!");
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
// Publication MQTT
char tempString[8];
char humString[8];
char levelString[8];
dtostrf(temperature, 1, 2, tempString);
dtostrf(humidity, 1, 2, humString);
itoa(waterLevel, levelString, 10);
client.publish("esp32/temperature", tempString);
client.publish("esp32/humidity", humString);
client.publish("esp32/waterlevel", levelString);
}
}
}