Bonjour,
Je suis en train de finaliser une "station meteo" basee sur un ESP32, j'ai deja temperature+humidite+pression+altitude (DHT22+BMP180), j'ai ajoute une photoresistance, maintenant, mon soucis est que la photoresistance me renvoie des valeurs qui ne veulent pas dire grand chose pour le commun des mortels...
Quand dans ma salon, avec lumiere ambiant normale, valeur = 3072...
Lorsque je pointe une lumiere dessus, valeur = 400...
Est ce que quelqu'un a une formule pour rendre ces donnees plus "lisibles"....
Je finalise mon shema, et je le poste vite fait, en attandant, voila mon code
// ESP32 Weather station WiFi Sensors
// Yann Vautrin 2023
// ESP32 as a MQTT Broker to Raspberry Pi 4B
//Libraries
#include <WiFi.h>
#include "DHT.h"
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <PubSubClient.h>
//Sensors
// Humidity qnd Temperature
#define DHTPIN 13
#define DHTTYPE DHT22
//Pressure and Altitude
Adafruit_BMP085 bmp;
DHT dht(DHTPIN, DHTTYPE);
//LDR for Luminosity
int LDR_pin = 34;
// WiFi
const char* ssid = "Yann"; // Your ssid
const char* password = "16421642"; // Your Password
char status;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(1000);
dht.begin();
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi is connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
}
void loop() {
Serial.println(WiFi.localIP());
int ldrValue = analogRead(LDR_pin) -1023 ; // read analog input pin 0
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
//float voltage = ldrValue * (5.0 / 1023.0);
Serial.println(WiFi.localIP());
Serial.println(ldrValue); // prints the value read
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float p = bmp.readPressure()/100;
Serial.print("Pressure = ");
Serial.print(p);
Serial.println(" mb");
// Calculate altitude assuming 'standard' barometric
// pressure of 1013.25 millibar = 101325 Pascal
float a = bmp.readAltitude();
Serial.print("Altitude = ");
Serial.print(a);
Serial.println(" meters");
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Luminosity: ");
Serial.print(ldrValue);
Serial.print("unit");
delay(1000);
WiFiClient client = server.available();
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
// client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 10"); // update the page after 10 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<style>html { font-family: Fantasy; display: block; margin: 0px auto; text-align: center;color: #333333; background-color: #ccffb3;}");
client.println("body{margin-top: 50px;}");
client.println("h1 {margin: 50px auto 30px; font-size: 50px; text-align: center;}");
client.println(".side_adjust{display: inline-block;vertical-align: middle;position: relative;}");
client.println(".text1{font-weight: 180; padding-left: 15px; font-size: 50px; width: 170px; text-align: left; color: #3498db;}");
client.println(".data1{font-weight: 180; padding-left: 80px; font-size: 50px;color: #3498db;}");
client.println(".text2{font-weight: 180; font-size: 50px; width: 170px; text-align: left; color: #3498db;}");
client.println(".data2{font-weight: 180; padding-left: 150px; font-size: 50px;color: #3498db;}");
client.println(".data{padding: 10px;}");
client.println("</style>");
client.println("</head>");
client.println("<body>");
client.println("<div id=\"webpage\">");
client.println("<h1>ESP32 Weather Station</h1>");
client.println("<div class=\"data\">");
client.println("<div class=\"side_adjust text1\">Humidity:</div>");
client.println("<div class=\"side_adjust data1\">");
client.print(h);
client.println("<div class=\"side_adjust text1\">%</div>");
client.println("</div>");
client.println("<div class=\"data\">");
client.println("<div class=\"side_adjust text2\">Temperature:</div>");
client.println("<div class=\"side_adjust data2\">");
client.print(t);
client.println("<div class=\"side_adjust text2\">*C</div>");
client.print(f);
client.println("<div class=\"side_adjust text2\">F</div>");
client.println("</div>");
client.println("<div class=\"data\">");
client.println("<div class=\"side_adjust text1\">Pressure:</div>");
client.println("<div class=\"side_adjust data1\">");
client.print(p);
client.println("<div class=\"side_adjust text1\">mb</div>");
client.println("</div>");
client.println("<div class=\"data\">");
client.println("<div class=\"side_adjust text1\">Altitude:</div>");
client.println("<div class=\"side_adjust data1\">");
client.print(a);
client.println("<div class=\"side_adjust text1\">m</div>");
client.println("</div>");
client.println("<div class=\"data\">");
client.println("<div class=\"side_adjust text2\">Luminiousity:</div>");
client.println("<div class=\"side_adjust data2\">");
client.print(ldrValue);
client.println("</div>");
client.println("</div>");
client.println("</body>");
client.println("</html>");
}
Merci de votre aide!