Stufin
Home Quick Cart Profile

NodeMCU ESP8266 (AMICA-CP2102 driver) (Pack of 25)

Buy Now on Stufin

Operating Frequency

80 MHz or 160 MHz.

Low Power Consumption

Designed for low power consumption, making it suitable for battery-powered applications.

### Wi-Fi Capabilities

IEEE 802.11 b/g/nSupports wireless communication at 2.4 GHz frequency band.
Wi-Fi ModeStation mode (STA), Access Point mode (AP), and Wi-Fi Direct (P2P) supported.
Wi-Fi SecurityWEP, WPA, WPA2, and WPA3 encryption protocols supported.

### Interfaces and Peripherals

USB Interface

Onboard USB-to-TTL serial converter (AMICA-CP2102 driver) for programming and debugging.

GPIO Pins

17 digital GPIO pins, including I2C, I2S, SPI, UART, and ADC interfaces.

Analog-to-Digital Converter (ADC)10-bit ADC with a maximum sampling rate of 500 kSPS.

UART

Supports UART communication protocol.

### Power Management

Power Modes

Supports multiple power modes, including Active, Sleep, and Deep Sleep modes.

Power Supply

Can be powered via USB or an external power source (3.3V or 5V).

### Other Features

Onboard Antenna

Integrated PCB antenna for Wi-Fi communication.

Bootstrap Loader

Supports Arduino-compatible bootloader for easy programming.

Open-SourceCompatible with various open-source frameworks, including Arduino, Lua, and MicroPython.

Device Dimensions

Length

49 mm (1.93 inches)

Width

24.5 mm (0.96 inches)

Height

13 mm (0.51 inches)

Package Contents

25 x NodeMCU ESP8266 boards with AMICA-CP2102 driver

25 x USB cables (optional)

Technical Specifications

Operating Temperature

-40C to 85C (-40F to 185F)

Storage Temperature

-40C to 125C (-40F to 257F)

Humidity

5% to 95% non-condensing

Certifications and Compliance

FCC (USA)Compliant with FCC Part 15C
CE (Europe)Compliant with EU Directives 2014/53/EU and 2011/65/EU
RoHS (Restriction of Hazardous Substances)Compliant with EU Directive 2011/65/EU

Warranty and Support

Warranty

1-year limited warranty

Technical Support

Online documentation, community forums, and email support available.

Pin Configuration

  • NodeMCU ESP8266 (AMICA-CP2102 driver) Pinout Guide
  • The NodeMCU ESP8266 is a popular IoT development board that features a powerful ESP8266 microcontroller, USB-to-TTL serial converter (AMICA-CP2102), and a range of GPIO pins for connecting peripherals and sensors. Here's a detailed explanation of each pin on the board:
  • GPIO Pins
  • 1. D0 (GPIO16): General-purpose input/output pin. Can be used as an input, output, or for PWM (Pulse Width Modulation) applications.
  • 2. D1 (GPIO5): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 3. D2 (GPIO4): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 4. D3 (GPIO0): General-purpose input/output pin. Can be used as an input, output, or for PWM applications. Note: This pin is also used as the flash button during firmware upload.
  • 5. D4 (GPIO2): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 6. D5 (GPIO14): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 7. D6 (GPIO12): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 8. D7 (GPIO13): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • 9. D8 (GPIO15): General-purpose input/output pin. Can be used as an input, output, or for PWM applications.
  • Analog-to-Digital Converter (ADC) Pins
  • 10. A0 (ADC0): Analog input pin for measuring analog signals (0-3.3V).
  • Power and Ground Pins
  • 11. VIN: Input voltage pin ( accepts 7-12V DC). This pin is used to power the board.
  • 12. 3V3: Regulated 3.3V output pin. This pin can be used to power external peripherals.
  • 13. GND: Ground pin. Connect to the negative terminal of the power source or to the ground of other devices.
  • USB and Serial Communication Pins
  • 14. TX: Transmit pin for serial communication (UART).
  • 15. RX: Receive pin for serial communication (UART).
  • 16. USB: USB connector for programming and communication.
  • Other Pins
  • 17. EN (Enable): Active-low enable pin for the ESP8266 microcontroller.
  • 18. RST (Reset): Active-low reset pin for the ESP8266 microcontroller.
  • How to Connect the Pins
  • When connecting peripherals and sensors to the NodeMCU ESP8266, follow these guidelines:
  • Use breadboards, jumper wires, and GPIO header pins to connect peripherals and sensors to the NodeMCU board.
  • Ensure that the voltage levels of the peripherals and sensors match the operating voltage of the NodeMCU board (3.3V).
  • Use resistors or level shifters if necessary to adapt the voltage levels.
  • Follow proper grounding and decoupling techniques to minimize noise and electromagnetic interference (EMI).
  • Refer to the datasheet of the peripherals and sensors for specific connection requirements and guidelines.
  • Remember to handle the NodeMCU board and components with care to avoid damage from static electricity, excessive voltage, or incorrect connections.

Code Examples

NodeMCU ESP8266 (AMICA-CP2102 driver) Documentation
Overview
The NodeMCU ESP8266 is a popular microcontroller board based on the ESP8266 system on a chip (SoC). It's a Wi-Fi enabled board that can be used for a wide range of IoT projects. The AMICA-CP2102 driver is a USB-to-TTL serial adapter that allows the board to communicate with a computer via a USB connection.
Technical Specifications
Microcontroller: ESP8266
 Wi-Fi: 802.11 b/g/n
 USB interface: CP2102
 Operating voltage: 3.3V
 Input voltage: 5V-12V
 Digital I/O pins: 17
 Analog input pins: 1
Code Examples
### Example 1: Connecting to Wi-Fi and Sending Data to a Web Server
In this example, we will connect the NodeMCU ESP8266 to a Wi-Fi network and send a GET request to a web server.
```c
#include <WiFi.h>
const char ssid = "your_wifi_ssid";  // Replace with your Wi-Fi SSID
const char password = "your_wifi_password";  // Replace with your Wi-Fi password
const char serverUrl = "http://example.com/data";  // Replace with your server URL
WiFiClient client;
void setup() {
  Serial.begin(115200);
// Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to Wi-Fi...");
  }
Serial.println("Connected to Wi-Fi");
  Serial.println("Initializing connection to server...");
}
void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Create a HTTP client
    HTTPClient http;
// Specify the server URL
    http.begin(client, serverUrl);
// Send a GET request
    int httpCode = http.GET();
// Check the response
    if (httpCode == HTTP_CODE_OK) {
      String response = http.getString();
      Serial.println("Response from server: ");
      Serial.println(response);
    } else {
      Serial.println("Error sending request: ");
      Serial.println(http.errorString(httpCode));
    }
// Close the HTTP client
    http.end();
  }
delay(5000);
}
```
### Example 2: Reading Analog Input and Sending Data to a MQTT Broker
In this example, we will read an analog input from a sensor connected to the NodeMCU ESP8266 and send the data to a MQTT broker.
```c
#include <WiFi.h>
#include <PubSubClient.h>
const char ssid = "your_wifi_ssid";  // Replace with your Wi-Fi SSID
const char password = "your_wifi_password";  // Replace with your Wi-Fi password
const char mqttServer = "mqtt://your_mqtt_broker:1883";  // Replace with your MQTT broker URL
WiFiClient espClient;
PubSubClient client(espClient);
#define SENSOR_PIN A0  // Pin connected to the sensor
void setup() {
  Serial.begin(115200);
// Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to Wi-Fi...");
  }
Serial.println("Connected to Wi-Fi");
  Serial.println("Initializing connection to MQTT broker...");
}
void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Read analog input from sensor
    int sensorValue = analogRead(SENSOR_PIN);
    String sensorString = String(sensorValue);
// Publish the data to the MQTT broker
    client.publish("iot/sensor/data", sensorString.c_str());
Serial.println("Published data to MQTT broker: ");
    Serial.println(sensorString);
  }
delay(5000);
}
```
Note: Make sure to replace the placeholders (`your_wifi_ssid`, `your_wifi_password`, `http://example.com/data`, and `mqtt://your_mqtt_broker:1883`) with your actual Wi-Fi credentials, server URL, and MQTT broker URL.
Additional Resources
NodeMCU ESP8266 documentation: <https://nodemcu.readthedocs.io/en/master/>
 ESP8266 Arduino Core documentation: <https://arduino-esp8266.readthedocs.io/en/latest/>
 PubSubClient library documentation: <https://pubsubclient.knolleary.net/>