In my project I used NodeMcu Amica. Schematics of shield This shield board is driven by the special excent large power full-bridge chip L293DD from the famous Stmicroelectronics company, which can directly drive 2-channels DC motors or one-channel stepper motor. Exercise: NodeMCU Blink. Make a LED blink using the NodeMCU micro controller. The NodeMCU is a wifi enabled micro controller based on the ESP8266 (version 12E) chip. The NodeMCU is low cost and can be programmed using the Arduino IDE. Like other Arduinos, it has GPIO pins that can be used to read sensors and control actuators.
Today we'll study about the basics of ESP-12E NodeMcu V3 module. We will also see the basic connection scheme for blinking-led later in this tutorial.Q What is an ESP-12E NodeMcu V3 module?A NodeMCU is a based interactive firmware for Expressif ESP8622 Wi-Fi SoC, as well as an open source hardware board that contrary to the $3 ESP8266 Wi-Fi modules includes a CP2102 TTL to USB chip for programming and debugging, is breadboard-friendly, and can simply be powered via its micro USB port.This module is one of the cheapest available wifi-modules in market. V3 or Version3 is the latest version of this module. This tutorial however will facilitate you to connect all the versions of ESP8266 NodeMcu, i.e V1, V2 or V3.For makers, having ESP-12 module, rest assured, 12E is no different from its precursor. The only difference: 6 extra GPIOs are present in ESP-12EHeaders: 15-pin header with access to GPIOs, SPI, UART, ADC, and power pins.Power: 5V via micro USB portHardware Components required.
After you've assembled all the hardware components, click on this and download all the files. The file contains requisite drivers needed to use this module. This will save you a lot of time.Now, the ZIP file you've just downloaded, will be put to use in this tutorial as well as in the forthcoming tutorials.Software requirement:First of all, your ArduinoIDE needs to know that you want to use this NodeMcu module. That is, you need to select the right board. Confused?Well, its very simple!Follow this flowchart: (Tools Board Boards Manager) as depicted in Fig(4).
Hi,First off I want to thankyou for incorporating the ESP into the Arduino IDE!I have a esp12e devkit module with the motor shield board.it programs fine with the Arduino IDE. Board esp12e, 80mhz etcSo I tested it with the blink sketch and if I said blink pin 0 it would blink pin 3 on the board/chip.So here is the other pins.pin0 = pin3pin1 = flashing led on the nodemcupin2 = pin4pin3 = nothingpin4 = pin2pin5 = pin1pin6 = nothingpin7 = nothingpin8 = nothingAny ideas?Do I need a different firmware. I have version 0.8Cheers. I stand corrected, igrr! I have also noticed some odd behavior when trying to use GPIO3 (RX), GPIO1 (TX) and GPIO15 (D8) when I was using all the Digital I/O pins (a test I was doing to check out my LoLin NodeMCU board. I found that I had to lift (take out) the jumper to GPIO3 (RX) and GPIO15 (D8) in order to be able to download compiled programs from my PC to the NodeMCU.
Once downloaded, I could plug GPIO15 (D8) and GPIO3 (RX) and the sketch would be working. I did notice that if I reset the board, I would also have to lift these 2 pins in order to get it to boot up. Now, I can understand why using RX might mess up downloads or reboots as it is being used to receive data from the PC, but I'm clueless why D8 would also cause this problem. My circuit (as I recall) used an I2C1602LCD display on D1 and D2, an 4x4 matrix keypad (Columns on D0, D3, D8, and TX, Rows on D4, D5, D6 and D7).
The best I could do was to use TX in place of RX, and then just lift D8 (GPIO15) whenever I downloaded new code or reset the NodMCU. Again, I'm a newbie to the ESP8266, so I don't know all the answers.What I do know is the ESP8266 is a system on a chip (SoC) design with components like the processor chip bought from another vendor/manufacturer. The processor they use (I don't know the name/number or manufacturer) has 16 GPIO lines, some of which are used internally to interface with other components of the SoC, like flash memory. Because these several lines are used internally within the ESP8266 SoC, in the ESP8266 literature they talk only about 11 GPIO pins, 2 of which are generally reserved for RX and TX in order to communicate with a host PC from which compiled object code is downloaded.
This leaves just nine real general purpose I/O pins, but a few of these have secondary functions assigned to them and are supported in software by Arduino libraries like the SPI and WIRE libraries. SPI uses 4 GPIO lines (called SCLK, MISO, MOSI and SS (aka CS)) and I2C uses two GPIO lines (called SDA and SCL). So, that just leaves 3 unassigned GPIO lines (pins). Again, the ESP8266 was designed more of as a WiFi server or WiFi Client, not as a Arduino Mega2560, so the number of GPIO pins was not among their primary concerns.
If you need a WiFi board with more I/O capability, you might check out the Arduino MKR1000 board which as I recall has a few more pins available.To live with what we got, I can offer a few suggestions. You can use 'port expander' chips which are essentially serial-to-parallel shift registers with latched outputs (classic example: 74HC595). The use of shift registers to expand your number of I/O ports can be problematic, especially if you are relying on someone else's library of code to run it. Another option is making some or all of the devices you want to interface SPI or I2C bus compatible. I2C seems to be the most efficient option in terms of pins used. There are just 2, SDA (data) & SCL (clock).
Many chip manufacturers use I2C (or SPI) to make their components interface to MCUs more easily, but they also require software to support them. So, having good software development skills is essential to get at the full potential of these devices.Now if you look around the edges of the LoLin NodeMCU, you will see on the others side (opposite the side with the pins marked D0-D8, RX and TX, you will see a bunch of other pins. Some of these are power, ground and system related pins (EN, RST).
We know A0 is the single on board ADC (Analog Input). 'VU' is the +5V output from the board that comes from the PC via the USB cable (and Vin is where you can plug in a regulated +5V power supply to externally power the NodeMCU without having to use the USB cable.) Then we have S3, S2, S1, SC, S0 and SK.
What are these pins used for? I don't really know.
In previous versions of the NodeMCU (made by other manufacturers), most if not all these pins were labeled 'Unassigned' as I recall from my random readings about the ESP8266 on the Internet. On more recent pinout diagrams of the NodeMCU and on the silkscreen artwork on the LoLin NodeMCU r3, these pins have been assigned some functionality. So far I have not found an article that describes their use (Can anyone else pipe-in on this?). If you accept the latest pinout diagrams (on GitHub as I recall), then the assigned functions seem to be: 1.) A second SPI Bus? Or do these pins just duplicate the SPI bus on this side of the board?S1 = MOSI // Is this the same as D7?SC = SS (aka CS) // Is this the same as D8?S0 = MISO // Is this the same as D6?SK = SCLK // Is this the same as D5?And what's the difference between SCLK, MOSI, MISO, CS and HSCLK, HMOSI, HMISO, HCS?Other people, please pipe in if you know. 2.) Two more GPIO pins?S2 = GPIO10 // What?
Isn't this GPIO pin being used internally by the ESP8266 SoC?S3 = GPIO9 // What? Isn't this GPIO pin being used internally by the ESP8266 SoC?It appears that maybe of the latest releases of the ESP8266 maybe they have stream-lined the internal connections and freed up 2 GPIO pins (my best guess). Have yet to test these. 3.) What are the orange SDIO pins all about? Seems to be another set of secondary functions assigned to the six mysterious pins. Are they supported by an ESP8266 Library or an Arduino Library?
How to use them? Other folks, please pipe in if you know.The above questions & comments refer to the pin-out diagram for the NodeMCU.My testing of the ESP8266 has been sidelined until I figure out several means by which I can interface 3.3V components (MCUs) to 5V components (TTL). I am in the process of testing and documenting three methods by which 3.3V and 5.0V can be interfaced: 'Two Resistor Voltage Divider', 'The 3 Diodes in Series Method', and my favorite, the 'FET Bi-Directional Level Shifter' (using BSS138 FETs). I am also experimenting with lowering the source voltage on 7400 Series HC Family chips like the 74HC04 hex inverter and maybe the 74HC595 shift resister.I'll see if I can spend more time testing these 6 mysterious pins on the NodeMCU.-WRM. If my recollection is right, the on-board LED is not on the D0 pin, but rather the Tx (aka TxD0) pin. If you orient the LoLin NodeMCU board such that the WiFi antenna is up, you'll be able to read the pin labels. On the right you will see the data pins labled D0, D1, D2, etc.
Follow that down till you see TX (maybe Tx or TxD0, I forget) and that should be the pin that is tied to the onboard LED. Since this is active anytime you send data to the Serial console, I don't use it the same as D13 (digital I/O pin 13) on the Arduino Uno. It's nothing to add a separate LED and current limiting resistor between another digital i/o pin and GND and program it to blink in the manor of the Arduino Uno BLINK demo sketch.I haven't use the LoLin NodeMCU for aboout 6 weeks as I have just moved from China to the States and have not unpacked them, my focus on other things more important in settling into my new digs.-William Moore On Thursday, June 16, 2016 5:15 PM, DeckerDaniel wrote:Dear all, I'm a beginner on nodemcu.
I buyed a Wemos/Lolin v3 version and I'm testing with the arduino IDE examples. Can be a dummy question, but I tryied with all configurations that I found on the google to turn on the onboard led!All information says that is connected on GPIO16 (D0) with inverted logic. How can I do it?On the Schematic diagram I found 'S1 Key'. I don't see nothing more about this key. I wil thank a lot any help—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread. It sounds like it could be one of two NodeMCU boards: a DoIT brand NodeMCU v1.0 or a LoLin Brand.
The LoLin NodeMUC board is wider than the 'standard' Amica or DoIT brand NodeMCU boards. Hi.this is really confusing somehow.Wemos D1 has like two D5 pins, and when the SCK pin is called GPIO14(on the IOH jumper), then what is the other D5 pin called that is on the IOL jumper(together with Tx and Rx etc)?.and if they are called the same(GPIO14), then how does the software know where to read the input data?.i guess the IOL14 is the same as Pin7 on Arduino Uno and IOL16 aka D0 is the same as Uno's Pin2? So, would i be better off to use D0 instead of D5 then? (as i need to declare the pin number in IDE software).to use the dht22 sensor basically. Which alreay has its own board, so i probably do not need to connect it to D4(with 10k pullup and led?) or D3(with 10k pullup) at all??.when would i need to use the pullup+led pin(D4) and when the regular pullup pin(D3) to read some data?.
On Jul 23, 2017 8:30 AM, 'jimsy3'.@. wrote:hi.this is really confusing somehow.1.Wemos D1 has like two D5 pins, and when the SCK pin is calledGPIO14(on the IOH jumper), then what is the other D5 pin called that is onthe IOL jumper(together with Tx and Rx etc)?2.and if they are called the same(GPIO14), then how does the softwareknow where to read the input data?3.i guess the IOL14 is the same as Pin7 on Arduino Uno and IOL16 aka D0is the same as Uno's Pin2?
So, would i be better of to use D0 instead of D5then? (as i need to declare the pin number in IDE software)—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub,or mute the thread. I see on some pinouts, they show the SDD2 and SDD3 also labelled as gpio9 and gpio10. If you weren't using anything that required the additional SDD pins, can you map these as additional digital pins? As D11 and D12?)I also see no standard per se for I2C although there does appear to be for SPI. The closest I see is a couple examples of people using D1 (GPIO5) for SCL and D2 (GPIO4) for SDA pins. I'm assuming they grab these two because they aren't really tasked for anything else as many of the others are.
Are these the best two to use for I2C? On Fri, Aug 23, 2019 at 5:09 PM Tim Pulver.@. wrote:For.NodeMCU. users:Select.NodeMCU 1.0 (ESP-12E Module).,.not. Generic ESP8622 Module. Evenif you are using a NodeMCU V2. After doing so the pin mappings (e.g.
Forthe digital pins) printed on the board can be used without defining themmanually.The following will work:digitalWrite(D0, HIGH);—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub,or mute the thread.