Web serverde pil göstergesi

web serverde pil seviye göstergesi yani pil taktığımızda esp8266 ya web servede pil seviyesini göstirecek

Selamlar. :raising_hand_man:t2:

Bu konuyla alakalı hiç bir çalışma yaptınız mı?

ewet yaptım esp 8266 ile yapmadım ama web serverde dht filan gösterme yaptım

DHT değeri yerine, pildeki gerilimi gönderirseniz halletmiş oluyorsunuz. :upside_down_face:
Arduino ile birlikte pil gerilimini ölçmek için iki adet direnç ile basit bir devre kurabilirsiniz.

evet ama arduinoda çalışıyor nodemcuda farklı değerler veriyor unun sebebi nedir

ilgilendiğiniz için teşekkür ederim resultuzen isterseniz video atarım

BU DHT KODU YÜZDE GÖSTEREM KODUNA ÇEVİRİRMİSİN YANİ WEB SERVERDE PİL YÜZDESİ

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Hash.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

// Replace with your network credentials
const char* ssid = “REPLACE_WITH_YOUR_SSID”;
const char* password = “REPLACE_WITH_YOUR_PASSWORD”;

#define DHTPIN 5 // Digital pin connected to the DHT sensor

// Uncomment the type of sensor in use:
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

// current temperature & humidity, updated in loop()
float t = 0.0;
float h = 0.0;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

// Generally, you should use “unsigned long” for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time DHT was updated

// Updates DHT readings every 10 seconds
const long interval = 10000;

const char index_html[] PROGMEM = R"rawliteral(

html { font-family: Arial; display: inline-block; margin: 0px auto; text-align: center; } h2 { font-size: 3.0rem; } p { font-size: 3.0rem; } .units { font-size: 1.2rem; } .dht-labels{ font-size: 1.5rem; vertical-align:middle; padding-bottom: 15px; }

ESP8266 DHT Server

Temperature %TEMPERATURE% °C

Humidity %HUMIDITY% %

)rawliteral";

// Replaces placeholder with DHT values
String processor(const String& var){
//Serial.println(var);
if(var == “TEMPERATURE”){
return String(t);
}
else if(var == “HUMIDITY”){
return String(h);
}
return String();
}

void setup(){
// Serial port for debugging purposes
Serial.begin(115200);
dht.begin();

// Connect to Wi-Fi
WiFi.begin(ssid, password);
Serial.println(“Connecting to WiFi”);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println(".");
}

// Print ESP8266 Local IP Address
Serial.println(WiFi.localIP());

// Route for root / web page
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, “text/html”, index_html, processor);
});
server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, “text/plain”, String(t).c_str());
});
server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, “text/plain”, String(h).c_str());
});

// Start server
server.begin();
}

void loop(){
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time you updated the DHT values
previousMillis = currentMillis;
// Read temperature as Celsius (the default)
float newT = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
//float newT = dht.readTemperature(true);
// if temperature read failed, don’t change t value
if (isnan(newT)) {
Serial.println(“Failed to read from DHT sensor!”);
}
else {
t = newT;
Serial.println(t);
}
// Read Humidity
float newH = dht.readHumidity();
// if humidity read failed, don’t change h value
if (isnan(newH)) {
Serial.println(“Failed to read from DHT sensor!”);
}
else {
h = newH;
Serial.println(h);
}
}
}

BURADA

#include <ESP8266WiFi.h>
int analogInput = A0;
float vout = 0.0;
float vin = 0.0;
float R1 = 10000.0; //10k
float R2 = 1000.0; //1k
int value = 0;
float yuzde;

void setup() {
pinMode(analogInput, INPUT);
Serial.begin(115200);
}

void loop() {
value = analogRead(analogInput);
vout = (value * 5) / 1024.0;
vin = vout / (R2 / (R1 + R2));
yuzde = (vin * 100) / 3;
delay(2000);
Serial.println(yuzde);
}

Ne değeri alıyorsunuz acaba? Bana eğer bununla alakalı bir fotoğraf gönderirseniz cevap vermeye çalışacağım.

Burada esp8266 da 100%150 filan gösteriyor ama ilk başta web e taşımamız lazim

Alttaki başlıkta bu tarz projeleri yaparken tam olarak neler yapmanız gerektiğinden bahsettim. Ekleme, çıkarma ve düzeltme yaparken hangi durumlara dikkat etmelisiniz sorusunun da cevabı vermeye çalıştım.

anladım teşekkür edrim siz benim nedemek istediğimi anladınızmı peki anlamadıysanız bidaha anlatıyım isterseniz

Dediğinizi anladım fakat buradaki amacımız, maalesef hazır bir kod vermek değil, size bu işin temelini öğretip sizlerin kendi başına bir yol almanızı ve tecrübelerinizi de bizimle paylaşarak samimi bir ortama dahil olmanızı ve burayı da beraberinde geliştirmemizi hedefledik. Ben size hazır bir kod vererek ve projenizi doğrudan çözerek aslında size yardım etmek yerine maalesef zarar vermiş olacağım.

Size bir yol belirleyelim ve buna uymaya çalışın. Bir projeyi yapmak bu kadar da basit olmamalı, değil mi? Makerlik neydi; biraz emekti. :upside_down_face:

ama ben sizin verceğiniz kodu proje olarak kullanmıyacağım o kodu çevireceğim