Strange Value (%.3f) Showed in Labled Value Display - DHT11


Problem Statement:

I am using Blynk Example Browser to build DHT11 sketch, I can see temperture & humidity in serial window successfuly, but did not see any value show up in Blynk Labled Value Display Widgets, both temperature & humidity labels showed " %.3f ", I was doing DHT22/NodeMcu with Blynk Widgets several times without any issue, but I could not figure out what is going on for this case, can somebody show me which portion could be wrong, thank you.

  1. Hardware model: NodeMcu ESP8266 with Wi-Fi
  2. Using Android 6.0.1 with latest Blynk App
  3. Using Blynk Server
  4. Using Blynk Library version: v0.5.3
  5. Using Updated DHT library 1.3.0

    Log 1:

[4235] Connected to WiFi
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ / '/
//_, /////_
__/ v0.5.3 on NodeMCU

Give Blynk a Github star! =>

[4248] Connecting to
[4558] Ready (ping: 0ms).
Temperature: 30.00C
Humidity: 58.00%
Temperature: 28.00
Humidity: 54.00%

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";

#define DHTPIN 2          // What digital pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT11     // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V99, h);
  Blynk.virtualWrite(V100, t);
  Serial.print("Temperature: ");
  Serial.print("Humidity: ");

void setup()
  // Debug console

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "", 8442);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);


  // Setup a function to be called every second
  timer.setInterval(15000L, sendSensor);

void loop()


I roll it back to v0.5.2, it works, no issue now.


This is another example of where searching before posting would possibly help :stuck_out_tongue_winking_eye:

There was another topic recently with issues displaying floats on Blynk Library 0.5.3… Probably solved with latest Arduino Core for ESP, as that is what I am running and I have no problem displaying float values.

What version of Arduino Core are you running for the ESP8266… it needs to be 2.4.1

Data issues with DHT22
Unable to receive data from virtual pin, showing %3f

It IS solved in latest ESP Arduino Core - not a blynk library issue.


Not that anyone will actually READ it :stuck_out_tongue_winking_eye: but “Requires ESP ARDUINO Core 2.4.1” should be added to the Library announcement.


I will add a runtime check in the next update. That will enforce updates.


Actually I searched the forum few times with key word “DHT11” or “%.3f”…etc, I did not see any related threads there, thus, I recalled what I did recently, and then I realized what I’ve done earlier was installed Blynk Library 0.5.3, thus, that’s why I rolled it back to 0.5.2.

Finally I wanna thank you gentlemen to contribute and develop such good Blynk APP/Platform for us, have a nice weekend ^.^


Yes, Searching is a art form as much as science, that is for sure… but in the case of something happening after a significant (forum wide) change/announcement, just skimming other posts since the change is another form of “searching” without keywords.


So happy that I first searched before asking for help :rofl: