BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Any different option/setting to choose between ESP12E and NodeMcu

#27

@Blynk_Coeur @PeteKnight
This is the code i am using

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


char auth[] = "xxxxxxxxx";
char ssid[] = "xxxxxxxxx";
char pass[] = "xxxxxxxxxxxxx";
char server[] = "192.168.0.103";  // IP for Local Cloud Server
int port = 8080;


int ReCnctFlag;  // Reconnection Flag
int ReCnctCount = 0;  // Reconnection counter

bool isFirstConnect = true;


const int ledPin = 7;
const int btnPin = 8;

BlynkTimer timer;
void checkPhysicalButton();

int ledState = LOW;
int btnState = HIGH;


BLYNK_CONNECTED() {
  if (isFirstConnect) {
     Blynk.syncAll();
     Blynk.syncVirtual(V1, V2, V3, V4);
     isFirstConnect = false;
  }
  Serial.println("Connected");
  ReCnctCount = 0;
}


BLYNK_WRITE(V2) {
  ledState = param.asInt();
  digitalWrite(ledPin, ledState);
}

void checkPhysicalButton()
{
  if (digitalRead(btnPin) == LOW) {
     if (btnState != LOW) {
       ledState = !ledState;
      digitalWrite(ledPin, ledState);

     Blynk.virtualWrite(V2, ledState);
    }
    btnState = LOW;
  } else {
    btnState = HIGH;
  }
}

void setup()
{

  Serial.begin(115200);

  WiFi.begin(ssid, pass); 
  Blynk.config(auth, server, port);
  Blynk.connect();

  pinMode(ledPin, OUTPUT);
  pinMode(btnPin, INPUT_PULLUP);
  digitalWrite(ledPin, ledState);

  
  timer.setInterval(100L, checkPhysicalButton);
  WiFi.mode(WIFI_STA);
}

void loop()
{
  timer.run();
  if (Blynk.connected()) {  // If connected run as normal
    Blynk.run();
  } else if (ReCnctFlag == 0) {  // If NOT connected and not already trying to reconnect, set timer to try to reconnect in 30 seconds
    ReCnctFlag = 1;  // Set reconnection Flag
    Serial.println("Starting reconnection timer in 10 seconds...");
    timer.setTimeout(10000L, []() {  // Lambda Reconnection Timer Function
      ReCnctFlag = 0;  // Reset reconnection Flag
      ReCnctCount++;  // Increment reconnection Counter
      Serial.print("Attempting reconnection #");
      Serial.println(ReCnctCount);
      Blynk.connect();  // Try to reconnect to the server
    });  // END Timer Function
  }
}

These are the current Things …

1 Like

#28

1/ if you have V1 to V4 use only Blynk.syncAll() or Blynk.syncVirtual(V1, V2, V3, V4);, but not both together
2/ timer.setInterval(500L, checkPhysicalButton); is better
3/ Serial.println(“Starting reconnection timer in 30 seconds…”);
timer.setTimeout(30000L, {
is better

try and keep me informed.

0 Likes

#29

Corrected Now

Sure.

But my question is the same program was working fine few months back and even now those devices are online. But why now now ? Has Blynk made any changes in the Lib ? or any changes in the ESP core ??

0 Likes

#30

maybe ESP core…
you have an old version
try 2.5.0 beta 3, but don’t use 2.5.0 final version, it’s buggy 99% :smile:
anyway, you don’t need to test button every 100 ms that makes no sens.
and don’t try to reconnect every 10 sec, because of DHCP issues
BTW, it’s just my opinion :wink:

0 Likes

#31

@Blynk_Coeur @PeteKnight
This is the reason i am using 2.4.2

1 Like

#32

I’m using 2.5.0 beta3 with 2 nodeMCU since a few months.
it looks stable.
but @PeteKnight is right too .

0 Likes

#33

ok i will install the same core and update you shortly !

1 Like

#34

GPIO 7 and 8 are special reserved pins that shouldn’t be used.
See this topic:

Pete.

1 Like

#35

@Blynk_Coeur
Tried this out. But no luck. It connects only after like 2 or 3 min . And works way too slow. While the app is showing online the and when i press the virtual button on the app the hardware does not react. I have an LED to check if it works. But it will take 20 sec to react. And goes offline after 1min.

0 Likes

#36

@PeteKnight
Even with GPIO 4 and 5 … The problem still persists !!
I feel something is wrong in the software side…

0 Likes

#37

weird ! :fearful:
do you have a nodemcu v3?

0 Likes

#38

This is what i am using right now.

0 Likes

#39

I’ll try your sketch, but GPIO7 and 8 doesn’t exist on nodemcu!
I’ll use GPIO2 for the onboard led and GPIO5 for the physical button

0 Likes

#40

Okay ! Now let’s forget the GPIO . I just uploaded the basic Blynk Blink sketch ! Even this is not coming online. I tried the core that you said but no luck . So i reverted back to 2.4.2 .

Should i reset the server ? Actually i have a separate set of local server using rpi zero with a dlink router. When i try to connect on this , some how it connects. Now i am confused !! Even the connection seems to be stable.

I strongly feel that the router is throwing off the connection with ESP12E , and this is causing all the problems. But while saying this i also remember there are 2 NODEMCU running on the same router that is giving problems with the ESP12E!!! I am totally confused.

What do you guys suggest me to do now ?

1 Like

#41

You’re unlucky.
I think your nodemcu has a default.
I have the same issue with one of my nodemcu.
try to connect …
connected
reconnect within 30 seconds …
heart beat time out
rst cause …
and so on…
but what I don’t understand, this nodemcu works fine with a simple demo WiFi sketch, even http server example sketch!
as nodemcu cost is less than 3$, I don’t care about that. :joy:

0 Likes

#42

Sorry if this had been discussed already, but… Can you rule out the MAC/IP address conflict?

2 Likes

#43

Its not about money. Its all about connection and how stable it is.

1 Like

#44

Sorry !! I did not get what you are trying to say. Can you please explain me a bit on this, or give a link that i can look into ?? Thank you in advance.

0 Likes

#45

Obviously each device on your network needs a unique IP address. As your code isn’t specifying a static IP then it should be your router that’s assigning IP addresses via DHCP and these will always be unique - provided you only have one DHCP server on your network (more on that later…).

MAC addresses are hard-coded the hardware of most devices, but on Arduino Ethernet shields you have to specify the MAC address yourself. All MAC addresses on your network must be unique.
You can use a tool like this to scan your network and check IP addresses and MAC addresses, although duplicates won’t be shown:
http://www.advanced-ip-scanner.com/

From what you’ve said, you have multiple routers available and this could be the cause of your problem. If you have two routers acting as DHCP servers on the same network subnet then you have to be very careful that the pool of addresses that you’re allowing them to use don’t overlap.

I’d suggest that you strip everything back to a bare minimum. One router, as many devices as possible disconnected/turned off, use the Blynk cloud server to eliminate local server issues and see what happens.

Pete.

1 Like

#46

I think my problem is different .

NodeMCU is connected to wifi but never reach blynk server, I use ARP -a cmd to verify.

ARP
2019-06-15_104541

2019-06-15_104724

0 Likes