ESP8266 powering

Yes, this is a NodeMCU, which has an ESP8266 processor on it.

This is actually more powerful than your Arduino, and could replace it entirely, provided you don’t need more than one analogue input and around half a dozen digital pins.

If you want to use it as a WiFi modem for your Arduino then you must not upload a sketch to it, as this will overwrite the factory firmware.
You should connect it to your PC using a USB cable, select the port and set your serial monitor to 74880 then press the RST button. Hopefully you’ll see some data that mentions “AT” firmware. If you do then you should be able to use it as a WiFi modem.

The “Vin” pin (bottom left) accepts 5v to power the board.


This explains a bit about the various boards you might come across…


That’s great then. I only plan on using 4 of the outputs to control 4x relays. I assume you would recommend using Blynk timer over an RTC?

Yes, provided you have a good internet connection.


So I assume that I code in exactly the same way as the Arduino?

Yes. You’ll need to install the ESP core into the Arduino IDE…

You’ll also need to ensure that you understand the relationship between GPIOs and the numbers printed on the board…

And know which pins are ‘safe’…

You’ll also need to include the correct libraries…

Give us a shout if you get stuck.


Install there ESP core?!?!? Oh god I think I have bitten off more than I can chew here. I’m a very very basic coder so no doubt I’ll have to ask.

I need just four I/O pins to link to my relay to switch them… Which would you recommend?

The ESP core bit is easy, just follow the instructions about adding the url into preferences then downloading the latest version in boards manager.
This just tells the IDE how to compile code for the ESP boards.

GPIO’s 4 (D2), 5 (D1), 12 (D6) & 13 (D7)


Thank you Pete. I didn’t scroll down far enough to find the instructions… I thought it was just a folder of files of which I had no idea what they were. Ill do this after my tea. Thank you.

Which would my board be from these? From he amazon link above I could potentially pick several. Not sure how much difference it will make.

NodeMCU 1.0 (ESP-12E)


Superstar thank you.

And in the App, choose NodeMCU as well


Hi Pete.

I’m getting on quite well. One thing though, when I tried to use the above pins as you suggested, my Blynk app will only let me select D1 through D10, nothing higher??

I have done some testing and pins D1, D2, D5 and D6 seem to work for basic HIGH/LOW output. Is this ok or not?

Also, I used to use EEPROM on my Arduino to store all the data that I input in case of a power cut etc. Is it safe to assume (as I do not know how to use it on the NodeMCU) that adding the following will call all data from the cloud and reload it into the Arduino in case of a power cut?


What device type and connection type did you choose in the app?

You’d actually be better using virtual pins rather than digital pins in the app.

Yes, it will, provided that you have an Internet connection.

You can use SPIFFS or LittleFS instead of storing data in EEPROM if you prefer.


Great, ill do some reading on SPIFFS and Little FS whatever they are. lol

I chose NodeMCU and WiFi.

Basically for my dosing pump (a pump unit that supplies chemicals into a fish tank) I need to ‘prime’ the tubes with the liquid so I have a push button on the app that just turns the pin HIGH/turns the pump on so that it primes the tube. I will rarely use it so thought that using a simple digital pin on/off would suffice.

Yes, it would suffice, but using virtual pins gives much more control, and in my opinion more reliability.
If the button is attached to V1 then when you press the button it triggers the BLYNK_WRITE(V1) callback function.
You can then do a digitalWrite to the physical pin you want to control. You also need to declare the pin as output in your void setup.


One thing about timers. I want to make the LCD widget display some info. Then 4 seconds later clear and display a second lot of info, then clear again and display a third and then a fourth.

Is there an easy way to do that?

Yes, using a BlynkTimer with an interval of 4 seconds (4000ms) to call a function which clears the LCD and re-displays the new data.