80 MHz or 160 MHz.
80 MHz or 160 MHz.
Designed for low power consumption, making it suitable for battery-powered applications.
### Wi-Fi Capabilities
| IEEE 802.11 b/g/n | Supports wireless communication at 2.4 GHz frequency band. |
| Wi-Fi Mode | Station mode (STA), Access Point mode (AP), and Wi-Fi Direct (P2P) supported. |
| Wi-Fi Security | WEP, WPA, WPA2, and WPA3 encryption protocols supported. |
### Interfaces and Peripherals
Onboard USB-to-TTL serial converter (AMICA-CP2102 driver) for programming and debugging.
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. |
Supports UART communication protocol.
### Power Management
Supports multiple power modes, including Active, Sleep, and Deep Sleep modes.
Can be powered via USB or an external power source (3.3V or 5V).
### Other Features
Integrated PCB antenna for Wi-Fi communication.
Supports Arduino-compatible bootloader for easy programming.
| Open-Source | Compatible with various open-source frameworks, including Arduino, Lua, and MicroPython. |
Device Dimensions
49 mm (1.93 inches)
24.5 mm (0.96 inches)
13 mm (0.51 inches)
Package Contents
25 x NodeMCU ESP8266 boards with AMICA-CP2102 driver
25 x USB cables (optional)
Technical Specifications
-40C to 85C (-40F to 185F)
-40C to 125C (-40F to 257F)
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
1-year limited warranty
Online documentation, community forums, and email support available.
NodeMCU ESP8266 (AMICA-CP2102 driver) DocumentationOverviewThe 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 SpecificationsMicrocontroller: 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: 1Code Examples### Example 1: Connecting to Wi-Fi and Sending Data to a Web ServerIn 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 URLWiFiClient 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 BrokerIn 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 URLWiFiClient espClient;
PubSubClient client(espClient);#define SENSOR_PIN A0 // Pin connected to the sensorvoid 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 ResourcesNodeMCU 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/>