Komponen · 9 mnt baca

Panduan NodeMCU ESP8266: Pinout, Pengaturan Arduino IDE, dan Web Server

Apa itu NodeMCU ESP8266? Pemetaan pin D1–D8 ke GPIO, pengaturan Arduino IDE, Wi-Fi, web server yang menyalakan LED, batas 3,3 V, dan perbedaannya dengan ESP32.

NodeMCU adalah board pengembangan terjangkau yang menggabungkan chip ESP8266 yang mendukung Wi-Fi dengan koneksi USB, regulator 3,3 V, dan pin yang pas untuk breadboard. Kamu memprogramnya dengan perintah yang sama yang sudah kamu kenal dari Arduino IDE, dan board ini bisa bergabung ke jaringan rumahmu sendiri serta menyajikan halaman web yang kamu buka di ponsel. Kalau ingin membawa sensor suhu online, menyalakan relay dari ponsel, atau mengendalikan LED strip di rumah, NodeMCU ESP8266 adalah salah satu titik awal termurah.

Di panduan ini kamu akan membahas langkah demi langkah spesifikasi NodeMCU, pemetaan pin D1–D8 ke GPIO yang membingungkan, pin mana yang memengaruhi cara board melakukan boot, pengaturan Arduino IDE, koneksi ke Wi-Fi, dan web server yang menyalakan LED dari ponselmu. Di bagian akhir ada perbedaan ESP8266 dan ESP32 serta solusi untuk kesalahan yang paling sering terjadi.

Board pengembangan NodeMCU V3 ESP8266
NodeMCU V3 (LoLin): modul ESP-12E berpelindung logam berisi chip ESP8266 dan memori flash 4 MB; board-nya membawa chip USB ke serial CH340, regulator 3,3 V, serta tombol RST dan FLASH.

Apa itu ESP8266 dan NodeMCU?

ESP8266 adalah mikrokontroler 32-bit dengan Wi-Fi bawaan yang dirilis Espressif pada 2014. Berkat harganya yang sangat murah, chip ini membuat proyek Wi-Fi menjadi umum di dunia maker. Nama NodeMCU awalnya merujuk pada firmware berbasis Lua yang ditulis untuk chip ini dan board pengembangan open-source-nya; sekarang nama ini dipakai sebagai sebutan umum untuk board yang dibangun di sekitar modul ESP-12E. Namun kamu jarang akan memprogramnya dengan Lua; kebanyakan orang memakai Arduino IDE atau MicroPython.

FiturNilai
ChipESP8266EX, Tensilica L106, 32-bit
Kecepatan clock80 MHz (bisa dinaikkan ke 160 MHz)
RAMSekitar 80 KB RAM pengguna (tersisa 40–50 KB untuk sketch-mu ketika Wi-Fi tersambung)
Memori flash4 MB (modul ESP-12E)
Wi-Fi802.11 b/g/n, hanya 2,4 GHz; station, access point, atau keduanya
BluetoothTidak ada
GPIO yang bisa dipakaiSekitar 11 (D0–D8, RX, TX)
Input analog1 kanal (A0), 10-bit, sekitar 0–3,2 V di board
PWMBerbasis software, bawaan 1 kHz, rentang 0–255
Tegangan kerja3,3 V (diberi daya 5 V lewat USB atau VIN)
ArusRata-rata 70–80 mA ketika Wi-Fi tersambung, sampai 170 mA ketika memancar

Ada dua versi NodeMCU yang umum di pasaran. V2 (Amica) berukuran ramping, memakai chip USB ke serial CP2102, dan menyisakan satu baris lubang kosong di setiap sisi ketika dipasang di breadboard. V3 (LoLin) lebih lebar, memakai chip CH340G, dan menutupi hampir seluruh breadboard standar, jadi menaruh dua breadboard berdampingan membuat bekerja dengan V3 jauh lebih mudah. Kedua versi punya pinout yang sama dan menjalankan kode yang sama. Kalau ingin board yang lebih kecil, Wemos D1 Mini membawa chip yang sama dan menjalankan sketch yang sama.

Pinout NodeMCU: pemetaan D1–D8 dan GPIO

Hal paling membingungkan di NodeMCU adalah label D yang tercetak di board bukan nomor GPIO asli chip-nya. Misalnya, pin berlabel D1 sebenarnya GPIO 5. Ketika kamu memilih board NodeMCU di Arduino IDE, kamu bisa menulis D1 di kode dan compiler otomatis mengubahnya menjadi 5; tetapi kalau kamu menulis digitalWrite(1, HIGH), yang kamu kendalikan adalah GPIO 1, yaitu pin TX port serial. Di MicroPython, kamu selalu memakai nomor GPIO.

Label boardGPIOFungsi tambahanCatatan pemakaian
D0GPIO 16Bangun dari deep sleepTanpa dukungan interupsi; disambung ke RST untuk deep sleep
D1GPIO 5I2C SCLAman, serbaguna
D2GPIO 4I2C SDAAman, serbaguna
D3GPIO 0Tombol FLASHKalau LOW ketika boot, board masuk mode pemrograman
D4GPIO 2LED bawaan (logika terbalik), TX1Harus HIGH ketika boot
D5GPIO 14SPI SCKAman, serbaguna
D6GPIO 12SPI MISOAman, serbaguna
D7GPIO 13SPI MOSIAman, serbaguna
D8GPIO 15SPI CSHarus LOW ketika boot; board-nya punya resistor pull-down
RXGPIO 3UART RXBiarkan kosong selama memakai Serial Monitor
TXGPIO 1UART TXMengirim pesan boot ketika mulai
A0ADC0Input analogHanya pembacaan analog, sekitar 0–3,2 V
SD2, SD3GPIO 9, 10Tersambung ke memori flashJangan dipakai

Menurut tabel ini, pin yang bisa kamu pakai tanpa khawatir di proyek-proyek pertamamu adalah D1, D2, D5, D6, dan D7. D3, D4, dan D8 adalah pin yang menentukan mode boot board: ketika daya diberikan, ESP8266 memeriksa level GPIO 0, GPIO 2, dan GPIO 15, dan untuk start normal ia mengharapkan GPIO 0 dan GPIO 2 HIGH serta GPIO 15 LOW. Kalau tombol, relay, atau sensor yang terhubung ke pin-pin ini mengubah level ketika mulai, board akan boot ke mode upload alih-alih programmu, atau tidak boot sama sekali. D3 dan D4 masih bisa dipakai untuk tombol, karena tombol tidak sedang ditekan ketika boot, tetapi jauhkan modul yang output-nya diam di LOW dari pin-pin ini.

Pin ESP8266 bekerja di 3,3 V dan secara resmi tidak tahan 5 V; arus yang ditarik dari satu pin sebaiknya tidak lebih dari sekitar 12 mA. Jangan hubungkan sensor dengan output 5 V (misalnya pin ECHO HC-SR04) secara langsung; pasang pembagi tegangan atau level shifter di antaranya. Jangan pernah memberi 5 V ke pin 3V3; beri daya board dengan 5 V dari USB atau pin VIN.

Pin A0 juga kasus khusus: input analog chip ESP8266 hanya mengukur 0–1 V, tetapi berkat pembagi tegangan 220 kΩ dan 100 kΩ di board NodeMCU, kamu bisa memberi sekitar 0–3,2 V ke A0, dan analogRead(A0) mengembalikan rentang itu sebagai 0–1023. Karena hanya ada satu input analog, kamu butuh ADC I2C seperti ADS1115 kalau ingin memakai beberapa sensor analog. Pin D1 dan D2 adalah bus I2C bawaan; dasar-dasar I2C bisa kamu temukan di Apa Itu I2C?.

Mengatur ESP8266 di Arduino IDE

  1. Di Arduino IDE, buka File > Preferences dan tambahkan https://arduino.esp8266.com/stable/package_esp8266com_index.json ke kolom “Additional boards manager URLs”.
  2. Buka Tools > Board > Boards Manager, cari esp8266, lalu instal paket ESP8266 Community.
  3. Di menu Tools > Board, pilih NodeMCU 1.0 (ESP-12E Module). Kalau kamu memakai Wemos D1 Mini, pilih LOLIN(WEMOS) D1 R2 & mini.
  4. Hubungkan board dengan kabel data dan pilih port-nya di Tools > Port. Kalau tidak ada port yang muncul, instal driver CH340 untuk board V3 atau driver CP2102 untuk board V2.
  5. Biarkan Upload Speed di 115200; begitu upload sudah berjalan lancar, kamu bisa menaikkannya ke 921600 agar lebih cepat.

Sketch pertama: mengedipkan LED bawaan

Di NodeMCU ada LED biru di modul ESP-12E yang tersambung ke GPIO 2 (D4); board V2 (Amica) punya LED kedua di D0. LED ini memakai logika terbalik: menyala ketika pin LOW dan mati ketika HIGH. Di core Arduino, konstanta LED_BUILTIN sudah didefinisikan sebagai 2:

C++ (Arduino IDE)
1// NodeMCU dahili LED'i: GPIO2 (D4), ters mantık / onboard LED: GPIO2 (D4), inverted logic
2
3void setup() {
4  pinMode(LED_BUILTIN, OUTPUT);
5}
6
7void loop() {
8  digitalWrite(LED_BUILTIN, LOW);    // LOW = yanar / LOW = on
9  delay(500);
10  digitalWrite(LED_BUILTIN, HIGH);   // HIGH = söner / HIGH = off
11  delay(500);
12}
Melihat karakter acak di Serial Monitor setelah upload itu normal: ESP8266 mengirim pesan boot-nya di 74880 baud. Kalau Serial Monitor kamu atur ke 74880, kamu bisa membaca penyebab reset dan mode boot-nya, sedangkan pesanmu sendiri muncul di kecepatan yang kamu pilih di kode (misalnya 115200).

Menghubungkan ke Wi-Fi

Wi-Fi adalah kekuatan sejati ESP8266. Sketch di bawah menghubungkan board ke jaringan rumahmu dalam mode station dan mencetak alamat IP yang diberikan router serta kekuatan sinyalnya ke Serial Monitor. Kalau tidak bisa terhubung dalam 20 detik, sketch berhenti menunggu dan mencetak peringatan. Ganti nama jaringan dan password-nya dengan milikmu, lalu buka Serial Monitor di 115200 baud:

C++ (Arduino IDE)
1#include <ESP8266WiFi.h>
2
3const char* ssid = "AgAdi";          // Wi-Fi adın / your Wi-Fi name
4const char* password = "Sifre123";   // Wi-Fi şifren / your Wi-Fi password
5
6void setup() {
7  Serial.begin(115200);
8  Serial.println();
9  WiFi.mode(WIFI_STA);               // istemci modu / station mode
10  WiFi.begin(ssid, password);
11  Serial.print("Baglaniyor / connecting");
12  unsigned long start = millis();
13  while (WiFi.status() != WL_CONNECTED) {
14    delay(500);
15    Serial.print('.');
16    if (millis() - start > 20000) {  // 20 sn'de bağlanamazsa / give up after 20 s
17      Serial.println("\nBaglanamadi, ag adini ve sifreyi kontrol et / failed, check SSID and password");
18      return;
19    }
20  }
21  Serial.println();
22  Serial.print("IP: ");
23  Serial.println(WiFi.localIP());    // modemin verdiği adres / address given by the router
24  Serial.print("Sinyal / RSSI: ");
25  Serial.print(WiFi.RSSI());         // -50 iyi, -80 zayıf / -50 good, -80 weak
26  Serial.println(" dBm");
27}
28
29void loop() {
30}
Nilai RSSIKualitas sinyalYang bisa diharapkan
-30 sampai -50 dBmSangat bagusKoneksi stabil dan cepat
-50 sampai -67 dBmBagusCukup untuk web server dan data sensor
-67 sampai -80 dBmLemahSesekali terputus, halaman lambat dimuat
Di bawah -80 dBmSangat lemahMungkin tidak terhubung sama sekali; dekatkan board ke router
ESP8266 hanya bisa terhubung ke jaringan 2,4 GHz. Kalau router-mu memancarkan band 2,4 dan 5 GHz dengan nama yang sama dan board tidak mau terhubung, memberi band 2,4 GHz nama jaringan sendiri biasanya menyelesaikan masalah. Jaringan enterprise (WPA2-Enterprise) dan jaringan tamu dengan halaman login di browser tidak akan bisa dipakai tanpa kode tambahan.

Mengendalikan LED dari ponsel: web server sederhana

Sekarang mari ubah NodeMCU menjadi web server kecil. Hubungkan LED ke pin D1 (GPIO 5) lewat resistor 220 Ω: kaki panjang LED ke D1 lewat resistor, dan kaki pendeknya ke GND. Untuk LED merah, resistor ini memberikan arus (3,3 V − 2 V) / 220 Ω ≈ 6 mA, jauh di bawah batas pin; untuk menghitung nilai bagi LED-mu sendiri, pakai kalkulator resistor LED. Setelah upload, buka alamat yang muncul di Serial Monitor di browser ponsel yang tersambung ke Wi-Fi yang sama.

C++ (Arduino IDE)
1#include <ESP8266WiFi.h>
2#include <ESP8266WebServer.h>
3#include <ESP8266mDNS.h>
4
5const char* ssid = "AgAdi";          // Wi-Fi adın / your Wi-Fi name
6const char* password = "Sifre123";   // Wi-Fi şifren / your Wi-Fi password
7
8const int LED_PIN = D1;              // GPIO5, 220 ohm direnç ile LED / LED through a 220 ohm resistor
9bool ledOn = false;
10
11ESP8266WebServer server(80);
12
13void handleRoot() {
14  String html = "<!DOCTYPE html><html><head><meta charset='utf-8'>"
15                "<meta name='viewport' content='width=device-width,initial-scale=1'>"
16                "<title>NodeMCU</title></head>"
17                "<body style='font-family:sans-serif;text-align:center'>"
18                "<h1>NodeMCU LED</h1><p>LED: <b>";
19  html += ledOn ? "ACIK / ON" : "KAPALI / OFF";
20  html += "</b></p><p>A0: ";
21  html += analogRead(A0);            // 0-1023 arası analog değer / analog value 0-1023
22  html += "</p><p><a href='/on'><button>AC / ON</button></a> "
23          "<a href='/off'><button>KAPAT / OFF</button></a></p></body></html>";
24  server.send(200, "text/html", html);
25}
26
27void setLed(bool on) {
28  ledOn = on;
29  digitalWrite(LED_PIN, on ? HIGH : LOW);
30  server.sendHeader("Location", "/");   // ana sayfaya yönlendir / redirect to the main page
31  server.send(303, "text/plain", "");
32}
33
34void setup() {
35  pinMode(LED_PIN, OUTPUT);
36  digitalWrite(LED_PIN, LOW);
37  Serial.begin(115200);
38  WiFi.mode(WIFI_STA);
39  WiFi.begin(ssid, password);
40  while (WiFi.status() != WL_CONNECTED) {
41    delay(500);
42    Serial.print('.');
43  }
44  Serial.println();
45  Serial.print("Tarayicida ac / open in browser: http://");
46  Serial.println(WiFi.localIP());
47
48  if (MDNS.begin("nodemcu")) {       // http://nodemcu.local adresi / address http://nodemcu.local
49    MDNS.addService("http", "tcp", 80);
50  }
51
52  server.on("/", handleRoot);
53  server.on("/on", []() { setLed(true); });
54  server.on("/off", []() { setLed(false); });
55  server.onNotFound([]() { server.send(404, "text/plain", "Bulunamadi / not found"); });
56  server.begin();
57}
58
59void loop() {
60  server.handleClient();             // gelen istekleri işle / handle incoming requests
61  MDNS.update();
62}
Bagian kodeKegunaannya
ESP8266WebServer server(80)Membuat server di port 80 (HTTP)
server.on("/on", ...)Menyalakan LED ketika browser meminta /on
sendHeader("Location", "/") dan send(303)Mengarahkan browser kembali ke halaman utama setelah aksi, sehingga menyegarkan halaman tidak mengirim perintah lagi
analogRead(A0)Menampilkan nilai di A0 pada halaman; kamu bisa menghubungkan LDR atau potensiometer di sana
MDNS.begin("nodemcu")Memungkinkanmu menjangkau perangkat dengan nama nodemcu.local, bukan IP-nya
server.handleClient()Harus dipanggil terus-menerus di loop; fungsi ini menangani permintaan yang masuk

Kalau halamannya tidak mau terbuka, pastikan ponselmu tersambung ke jaringan Wi-Fi yang sama dengan NodeMCU, bukan ke jaringan tamu atau data seluler. Nama nodemcu.local biasanya bekerja di komputer dan iPhone; beberapa ponsel Android tidak mendukung mDNS, jadi di sana kamu perlu alamat IP. Kalau yang kamu hubungkan modul relay, bukan LED, kode yang sama memungkinkanmu mengendalikan lampu sungguhan; detailnya ada di Apa Itu Modul Relay?.

Mode access point (AP): terhubung tanpa router

Kalau tidak ada Wi-Fi di sekitar, NodeMCU bisa membuat jaringannya sendiri. Dalam mode access point, kamu menghubungkan ponsel langsung ke jaringan NodeMCU-AP, dan board biasanya menjawab di 192.168.4.1. Mode ini ideal untuk sistem penyiraman di kebun atau alat ukur yang dipakai di lapangan. Untuk menggabungkan web server di atas dengan mode ini, cukup pakai baris softAP sebagai ganti baris WiFi.begin; mode WIFI_AP_STA menjalankan kedua peran sekaligus. Password-nya harus minimal 8 karakter, kalau tidak jaringannya tidak akan dibuat.

C++ (Arduino IDE)
1#include <ESP8266WiFi.h>
2
3void setup() {
4  Serial.begin(115200);
5  WiFi.mode(WIFI_AP);                            // kendi ağını kur / create its own network
6  bool ok = WiFi.softAP("NodeMCU-AP", "12345678"); // ad ve en az 8 karakter şifre / name and 8+ char password
7  Serial.println(ok ? "AP hazir / AP ready" : "AP hatasi / AP error");
8  Serial.print("IP: ");
9  Serial.println(WiFi.softAPIP());               // genellikle 192.168.4.1 / usually 192.168.4.1
10}
11
12void loop() {
13  Serial.print("Bagli cihaz / stations: ");
14  Serial.println(WiFi.softAPgetStationNum());
15  delay(3000);
16}

ESP8266 dengan MicroPython

Selain bahasa Arduino, NodeMCU juga bisa diprogram dengan MicroPython. Setelah menulis firmware MicroPython ke board dengan esptool, kamu menjalankan kode Python langsung dari editor seperti Thonny. Karena memori ESP8266 terbatas, kamu bisa mengalami error memori dengan program MicroPython yang besar, tetapi untuk proyek Wi-Fi dan sensor sederhana sangat praktis. Perhatikan bahwa di MicroPython kamu menulis nomor GPIO, bukan label D, sebagai nomor pin:

MicroPython
1import network, time
2from machine import Pin
3
4led = Pin(2, Pin.OUT)                     # D4 = GPIO2, dahili LED / onboard LED
5wlan = network.WLAN(network.STA_IF)
6wlan.active(True)
7wlan.connect("AgAdi", "Sifre123")         # Wi-Fi adı ve şifresi / Wi-Fi name and password
8
9while not wlan.isconnected():
10    time.sleep(0.5)
11print("IP:", wlan.ifconfig()[0])
12
13while True:
14    led.value(not led.value())            # ters mantık: 0 = yanar / inverted: 0 = on
15    time.sleep(0.5)

ESP8266 atau ESP32?

FiturESP8266 (NodeMCU)ESP32 (DevKit)
ProsesorSatu inti, 80/160 MHzDua inti, 240 MHz
RAMSekitar 80 KB RAM pengguna520 KB
Wi-Fi802.11 b/g/n, 2,4 GHz802.11 b/g/n, 2,4 GHz
BluetoothTidak adaClassic dan BLE
GPIOSekitar 11Sekitar 34 (sebagian hanya input)
Input analog1 kanal, 10-bit18 kanal, 12-bit
PWMBerbasis softwarePWM hardware 16 kanal (LEDC)
I2C dan UARTI2C software, 1 UART penuh plus UART1 yang hanya TX2 I2C hardware, 3 UART
Pin sentuh dan DACTidak ada10 pin sentuh, 2 DAC
HargaLebih murahSedikit lebih mahal

Singkatnya, ESP8266 masih lebih dari cukup untuk tugas seperti mengirim data satu sensor ke internet, menyalakan relay dari ponsel, atau menyajikan halaman web sederhana, dan harganya lebih murah. Untuk proyek baru yang butuh Bluetooth, banyak input analog, kamera, pengolahan cepat, atau banyak tugas sekaligus, ESP32 adalah pilihan yang lebih baik. Kodenya mudah dipindahkan: mengganti ESP8266WiFi.h ke WiFi.h, ESP8266WebServer.h ke WebServer.h, dan ESP8266mDNS.h ke ESPmDNS.h, menghapus baris MDNS.update() (ESP32 tidak punya), dan memakai nomor GPIO alih-alih label board seperti D1 sering kali sudah cukup. Untuk detailnya, baca Apa Itu ESP32? dan Arduino vs ESP32.

Catu daya dan deep sleep

NodeMCU diberi daya 5 V dari USB atau pin VIN, dan regulator di board menurunkannya ke 3,3 V. Lonjakan arus 170 mA ketika Wi-Fi memancar bisa menyebabkan penurunan tegangan di port USB yang lemah atau kabel yang tipis dan membuat board reset sendiri, jadi pakai kabel yang bagus dan adaptor yang memberikan minimal 1 A. Untuk proyek bertenaga baterai, ESP.deepSleep() menidurkan chip dengan sekitar 20 µA; agar bisa bangun ketika timer habis, kamu perlu menghubungkan pin D0 (GPIO 16) ke pin RST. Namun chip USB ke serial dan regulator di board tetap menarik arus selama sleep, jadi untuk daya tahan baterai yang lama, modul ESP-12 polos atau board hemat daya memberi hasil lebih baik. Untuk memperkirakan daya tahan baterai, pakai kalkulator daya tahan baterai.

Ide proyek dengan NodeMCU

  • Termometer Wi-Fi: Tampilkan suhu dan kelembapan yang diukur DHT11 di halaman yang kamu buka di ponsel.
  • Colokan pintar: Nyalakan dan matikan lampu dengan modul relay dan tombol di halaman web.
  • Peringatan penyiraman tanaman: Hubungkan sensor kelembapan tanah ke A0 dan tampilkan peringatan di halaman ketika tanah mengering.
  • LED strip Wi-Fi: Pilih warna dan efek strip WS2812B dari ponselmu.
  • Jam internet: Ambil waktu dari server NTP dan tampilkan di layar LCD I2C.
  • Alarm gerak: Kirim pesan Telegram ketika sensor PIR mendeteksi gerakan.

Kesalahan umum dan cara mengatasinya

GejalaKemungkinan penyebabSolusi
Tidak ada port yang munculKabel khusus cas atau driver belum terinstalPakai kabel data; instal driver CH340 atau CP2102
“Failed to connect to ESP8266: Timed out waiting for packet header”Board tidak bisa masuk mode uploadTahan FLASH, tekan dan lepas RST, lepas FLASH, lalu mulai upload lagi
Board tidak mau boot atau terus resetRangkaian di D3, D4, atau D8 mengacaukan level bootPindahkan rangkaian itu ke pin aman seperti D5, D6, atau D7
Karakter acak di Serial MonitorBaud rate tidak cocokPilih kecepatan yang sama dengan di kode; pesan boot ada di 74880 baud
Tidak bisa terhubung ke Wi-FiJaringan 5 GHz, password salah, atau sinyal lemahPakai jaringan 2,4 GHz, cek huruf besar dan kecil, lihat RSSI-nya
LED tetap mati dan Serial Monitor jadi diamDi kode tertulis 1, bukan D1 (GPIO 1 = TX)Pakai label D1 atau GPIO 5 di kode
Error “Soft WDT reset”Loop di dalam loop() yang berjalan terlalu lamaTambahkan yield() atau delay(1) di dalam loop yang panjang; keduanya memberi kesempatan tugas Wi-Fi di latar belakang dan watchdog berjalan
Kalau ada masalah koneksi ketika upload, pertama cabut board dari komputer, lepaskan semua yang terhubung ke D3, D4, D8, dan RX, lalu coba lagi. Modul di pin-pin ini bisa mencegah board masuk mode upload ketika mulai. Memakai port USB komputer langsung, bukan USB hub, juga mengurangi putus koneksi akibat tarikan arus yang mendadak.

NodeMCU ESP8266 adalah cara paling terjangkau untuk membawa apa yang sudah kamu pelajari di Arduino ke dunia nirkabel: dengan beberapa baris kode, board ini bergabung ke jaringan rumahmu dan memungkinkanmu membuat perangkat yang dikendalikan dari ponsel. Di aplikasi BlueGrays ada proyek nirkabel seperti koneksi Wi-Fi, web server, WebSocket, jam NTP, dan mDNS di ESP32, dengan skema rangkaian dan kode langkah demi langkah, dan logika yang sama mudah kamu sesuaikan untuk NodeMCU-mu.

Pertanyaan umum

Apakah NodeMCU dan ESP8266 itu sama?

ESP8266 adalah nama chip Wi-Fi buatan Espressif. NodeMCU adalah board pengembangan yang menggabungkan modul ESP-12E pembawa chip itu dengan koneksi USB, regulator, dan pin yang pas untuk breadboard. Singkatnya, setiap NodeMCU adalah board ESP8266, tetapi tidak setiap board ESP8266 adalah NodeMCU; ESP-01 dan Wemos D1 Mini memakai chip yang sama.

Apakah NodeMCU bekerja dengan 5 V?

Board-nya bisa diberi daya 5 V lewat USB atau pin VIN, dan regulator menurunkannya ke 3,3 V. Namun pin GPIO bekerja di 3,3 V dan secara resmi tidak tahan 5 V. Sinyal 5 V sebaiknya dihubungkan lewat pembagi tegangan atau level shifter.

D1 di NodeMCU itu GPIO berapa?

D1 adalah GPIO 5 dan merupakan pin I2C SCL bawaan. Pemetaan umum lainnya adalah D2 = GPIO 4, D4 = GPIO 2, D5 = GPIO 14, D6 = GPIO 12, D7 = GPIO 13, dan D8 = GPIO 15. Di Arduino IDE kamu bisa langsung menulis D1 di kode; di MicroPython kamu harus memakai nomor GPIO.

Bisakah ESP8266 terhubung ke Wi-Fi 5 GHz?

Tidak, ESP8266 hanya mendukung jaringan 802.11 b/g/n di band 2,4 GHz. Pastikan band 2,4 GHz di router-mu aktif; kalau kedua band memakai nama yang sama, memberi band 2,4 GHz nama jaringan sendiri sering menyelesaikan masalah koneksi.

Apa perbedaan NodeMCU V2 dan V3?

V2 (Amica) adalah board yang lebih ramping dengan chip USB ke serial CP2102 dan menyisakan lubang kosong di kedua sisi breadboard. V3 (LoLin) lebih lebar dan memakai chip CH340G. Pin, prosesor, dan kodenya identik; bedanya hanya ukuran dan driver USB yang perlu diinstal.

Apakah ESP8266 punya Bluetooth?

Tidak, ESP8266 tidak punya hardware Bluetooth; chip ini hanya mendukung Wi-Fi. Untuk proyek yang butuh Bluetooth atau BLE, pakai ESP32 atau tambahkan modul Bluetooth terpisah seperti HC-05 ke board-mu.

Lihat semua proyek
LED Berkedip dengan ESP32
#103Pemula

LED Berkedip dengan ESP32

Mengajarkan penggunaan output GPIO dasar dengan ESP32. Kita membuat efek berkedip dengan menyalakan dan mematikan LED dari pin digital. Versi ESP32 dari proyek blink klasik di Arduino UNO; perintah blink dasar di lingkungan Arduino sama, tetapi susunan pin ESP32 dan level GPIO 3,3 V-nya berbeda dengan Arduino UNO.

4.7(37)
99
Kedipan LED Bawaan ESP32
#106Pemula

Kedipan LED Bawaan ESP32

Mengedipkan LED biru bawaan di ESP32 DevKit V1. Tidak perlu komponen eksternal! Proyek pertama yang sebaiknya kamu coba ketika membeli ESP32. GPIO 2 tersambung ke LED bawaan.

4.8(29)
53
Koneksi Wi-Fi STA ESP32 (dengan Layar LCD)
#127Mahir

Koneksi Wi-Fi STA ESP32 (dengan Layar LCD)

Di proyek ini, kita menyambungkan ESP32 ke jaringan Wi-Fi rumah dalam mode Station (STA) dengan cara yang aman dan tahan gangguan. Kita menyimpan SSID dan kata sandi di file secrets.h terpisah agar tidak bocor ke Git, menyiapkan mekanisme sambung ulang otomatis, dan menampilkan tingkat sinyal RSSI dan alamat IP di layar LCD I2C. LED bawaan bekerja sebagai indikator status. Ini adalah pengelola koneksi kelas produksi.

4.4(21)
34
Web Server Asinkron ESP32 (dengan Tampilan IP di LCD)
#129Mahir

Web Server Asinkron ESP32 (dengan Tampilan IP di LCD)

Di proyek ini, kita mengubah ESP32 menjadi web server asinkron yang bisa kamu kendalikan dari ponsel atau komputer di jaringan Wi-Fi yang sama. Berkat library ESPAsyncWebServer, server bisa memproses beberapa permintaan bersamaan (berbeda dengan WebServer.h klasik, yang memblokir pada satu permintaan). Kamu bisa membuka alamat IP ESP32 di browser dan mengklik tombol ON/OFF (rute /on dan /off) untuk menyalakan dan mematikan LED yang tersambung ke GPIO 5.

4.8(16)
26
Penghitung WebSocket ESP32 (2 Tombol + LCD + Web Real-Time)
#130Mahir
Premium

Penghitung WebSocket ESP32 (2 Tombol + LCD + Web Real-Time)

Di proyek ini, dua tombol yang tersambung ke ESP32 (GPIO 5 menghitung naik, GPIO 4 menghitung turun) mengubah sebuah penghitung. Nilainya langsung diperbarui di LCD I2C 16x2 sekaligus, lewat dukungan WebSocket ESPAsyncWebServer, di setiap browser yang tersambung tanpa memuat ulang halaman. Alih-alih polling HTTP, dipakai satu koneksi yang tetap terbuka, dan ESP32 mengirim nilai baru ke semua orang dengan ws.textAll().

4.5(14)
23
mDNS ESP32: Mengakses Perangkat lewat bluegrays-esp.local (dengan Layar LCD)
#131Mahir
Premium

mDNS ESP32: Mengakses Perangkat lewat bluegrays-esp.local (dengan Layar LCD)

Di proyek ini, kita menambahkan layanan mDNS (Multicast DNS) ke ESP32, sehingga perangkat bisa diakses dengan nama host seperti bluegrays-esp.local, bukan alamat IP. Meskipun IP dari DHCP berubah, perangkat selalu bisa dijangkau dengan nama yang sama. Web server kecil di perangkat menerima perintah kendali LED dari browser lewat alamat http://bluegrays-esp.local/. Layar LCD I2C menampilkan nama host, alamat IP, dan status LED.

4.8(14)
23
Jam Real-Time dari Internet lewat NTP ESP32
#128Mahir
Premium

Jam Real-Time dari Internet lewat NTP ESP32

ESP32 tersambung ke Wi-Fi dan mengambil waktu nyata dengan presisi milidetik dari server NTP (Network Time Protocol). Berkat fungsi configTzTime(), zona waktu Turki (TRT, UTC+3) otomatis diterapkan, dan pergantian DST di negara yang memakai waktu musim panas otomatis diatur dengan string POSIX TZ. Waktunya ditampilkan di Serial Monitor sekaligus di LCD I2C opsional. configTzTime() memulai layanan SNTP; sinkronisasi ulang berkala terjadi selama koneksi tersedia.

4.5(13)
21
Pembaruan OTA ESP32: Instal Firmware Tanpa Kabel (dengan Layar LCD)
#132Mahir
Premium

Pembaruan OTA ESP32: Instal Firmware Tanpa Kabel (dengan Layar LCD)

Di proyek ini, kamu belajar cara meng-upload firmware baru ke ESP32 lewat Wi-Fi tanpa kabel USB. Dengan library ArduinoOTA, ESP32 terlihat di jaringan dan otomatis tercantum sebagai bluegrays-ota di tab "Network port" Arduino IDE. Upload pertama dilakukan lewat USB, dan semua pembaruan berikutnya tanpa kabel; fitur penting untuk perangkat di lapangan. Layar LCD I2C menampilkan status Wi-Fi, alamat IP, nama host, persentase upload OTA, dan pesan error.

4.6(14)
22