Fritzbox Blynk connection

Hello all,

I started a new project for a weather station with several sensors connected to a nodemcu V3. If I upload the sketch the nodemcu is connected to the network and data is received as seen in the serial monitor. But when I look in the Blynk app, the device seems to be offline.

In the FritzBox I forwarded the nodemcu as seen in the screenshot below.

But still nothing appears to come online in the Blynk app. Searching the internet didn’t gave me the answer to my problem.

It is working on an other wifi network, so I think it is my own network causing the problem.

How can I get the nodemcu device online in the Blynk app? My experience level is very low and still in a learning curve.

My used sketch:


  This example shows how value can be pushed from Arduino to
  the Blynk App.

  WARNING :
  For this example you'll need Adafruit DHT sensor libraries:
    https://github.com/adafruit/Adafruit_Sensor
    https://github.com/adafruit/DHT-sensor-library

  App project setup:
    Value Display widget attached to V5
    Value Display widget attached to V6
 *************************************************************/

// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID “XXXXX”
#define BLYNK_DEVICE_NAME “XXXXXXXXX”
#define BLYNK_AUTH_TOKEN “XXXXXXX”

// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <Adafruit_BMP280.h>


char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = “XXXX”;
char pass[] = “XXXXXX!”;

#define DHTPIN D4          // 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

DHT dht(DHTPIN, DHTTYPE);
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
  //float p = dht.readPressure();
 // float r = dht.readRain();
  
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
 // Blynk.virtualWrite(V3, p);
 // Blynk.virtualWrite(V2, r);
}

void setup()
{
  // Debug console
  Serial.begin(115200);

 // Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  Blynk.begin(auth, ssid, pass, "blynk.cloud", 8080);
 // Blynk.begin(auth, ssid, pass, IPAddress(192,168,178,100), 8080);

  dht.begin();

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

void loop()
{
  Blynk.run();
  timer.run();

// Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  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(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}
1 Like

Why?
You don’t need to do any port forwarding.
And, Blynk IOT will normally use ports 80 or 443, not 8080.

Why are you specifying the server and the port?

You should use Blynk.begin(auth, ssid, pass);

Also, your void loop is a mess.
Everything after timer.run should be deleted or moved into your sendSensor function.

Posting your serial monitor output (between triple backticks) would be useful, once you’ve made these changes.

Pete.

Peter,

I did the changes as requested and below the new code.

Now I get the next output on the serial monitor.
screenshot 2

The Auth Token is correct in my sketch.

/*************************************************************

  This example shows how value can be pushed from Arduino to
  the Blynk App.

  WARNING :
  For this example you'll need Adafruit DHT sensor libraries:
    https://github.com/adafruit/Adafruit_Sensor
    https://github.com/adafruit/DHT-sensor-library

  App project setup:
    Value Display widget attached to V5
    Value Display widget attached to V6
 *************************************************************/

// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID “XXXX”
#define BLYNK_DEVICE_NAME “XXXX XXXX”
#define BLYNK_AUTH_TOKEN “XXXXX”

// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <Adafruit_BMP280.h>


char auth[] = BLYNK_AUTH_TOKEN;

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

#define DHTPIN D4          // 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

DHT dht(DHTPIN, DHTTYPE);
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
  //float p = dht.readPressure();
 // float r = dht.readRain();
  
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
 // Blynk.virtualWrite(V3, p);
 // Blynk.virtualWrite(V2, r);
}

void setup()
{
  // Debug console
  Serial.begin(115200);

 Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  // Blynk.begin(auth, ssid, pass, "blynk.cloud", 8080);
  // Blynk.begin(auth, ssid, pass, IPAddress(192,168,178,100), 8080);

  dht.begin();

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

void loop()
{
  Blynk.run();
  timer.run();
}

Please edit your post, and add triple backticks ``` before and after your whole sketch.

Done.

I didn’t remember the ```

thx for the reminder

Are you using the latest version of the blynk library (1.1.0) ?

Yes I do use the 1.1.0. version of Blynk library

Full serial monitor output from boot-up?

Pete.

Meanwhile I was waiting I changed the code by uncommenting the next line in the sketch .

 // Blynk.begin(auth, ssid, pass, "blynk.cloud", 8080);

I uploaded it ,but then came the answer from Pete with the request of the full output from the serial monitor. So I changed back the code to original, uploaded it, and now it seems to be online.

What did the trick is for now unknown. But it worked.

Thank you guys for the help. Let’s continue with the fun.

Do you have other versions of Blynk libraries installed somewhere, like Blynk for Chinese maybe, or an old version of the regular Blynk library?

When you see the Blynk logo appear in the serial monitor it tells you which library version was used during compilation. If it’s not the latest version then the compiler is picking-up an earlier version, which tries to connect to blynk-cloud.com rather than blynk.cloud

The latest versions of the sketch use whichever url is appropriate - the old one if it doesn’t see the Template ID in the first line of code, or the new one if it does.

Pete.

Pete,
Down below the screenshot of the Blynk logo.

version 1.1.0 is now used.

1 Like