NodeMCU
NodeMCU
NodeMCU adalah sebuah platform IoT yang bersifat opensource. Terdiri dari perangkat keras berupa System On Chip ESP8266 dari ESP8266 buatan Espressif System, juga firmware yang digunakan, yang menggunakan bahasa pemrograman scripting Lua. Istilah NodeMCU secara default sebenarnya mengacu pada firmware yang digunakan daripada perangkat keras development kit.
NodeMCU bisa dianalogikan sebagai board arduino-nya ESP8266.Namun NodeMCU telah me-package ESP8266 ke dalam sebuah board
 yang kompak dengan berbagai fitur layaknya mikrokontroler + kapabilitas
 akses terhadap Wifi juga chip komunikasi USB to serial. Sehingga untuk 
memprogramnya hanya diperlukan ekstensi kabel data USB persis yang 
digunakan sebagai kabel data dan kabel charging smartphone Android.
Sejarah NodeMCU
Sejarah lahirnya NodeMCU berdekatan dengan rilis ESP8266 pada 30 Desember 2013, Espressif Systems
 selaku pembuat ESP8266 memulai produksi ESP8266 yang merupakan SoC 
Wi-Fi yang terintegrasi dengan prosesor Tensilica Xtensa LX106. 
Sedangkan NodeMCU dimulai pada 13 Oktober 2014 saat Hong me-commit file 
pertama nodemcu-firmware ke Github. Dua bulan kemudian project tersebut 
dikembangkan ke platform perangkat keras ketika Huang R meng-commit file
 dari board  ESP8266 , yang diberi nama devkit v.0.9.
Berikutnya, di bulan yang sama. Tuan PM memporting pustaka client  MQTT dari Contiki ke platform SOC ESP8266 dan di-c0mmit
 ke project NodeMCU yang membuatnya mendukung protokol IOT MQTT  melalui
 Lua. Pemutakhiran penting berikutnya terjadi pada 30 Januari 2015 
ketika Devsaurus memporting u8glib ke project NodeMCU yang memungkinkan 
NodeMCU bisa mendrive display LCD, OLED, hingga VGA. Demikianlah, 
project NodeMCU terus berkebang hingga kini berkat komunitas open source
 dibaliknya, pada musim panas 2016 NodeMCU sudah terdiri memiliki 40 
modul fungsionalitas yang bisa digunakan sesuai kebutuhan developer.
ESP-12E
Karena jantung dari NodeMCU adalah 
ESP8266 (khususnya seri ESP-12, termasuk ESP-12E) maka fitur – fitur 
yang dimiliki NodeMCU akan kurang lebih sama ESP-12 (juga ESP-12E untuk 
NodeMCU v.2 dan v.3) kecuali NodeMCU telah dibungkus oleh API sendiri 
yang dibangun berdasarkan bahasa pemrograman eLua, yang kurang lebih 
cukup mirip dengan javascript. Beberapa fitur tersebut antara lain
- 10 Port GPIO dari D0 – D10
 - Fungsionalitas PWM
 - Antarmuka I2C dan SPI
 - Antarmuka 1 Wire
 - ADC
 
Gambar berikut menjelaskan  posisi pin -pin dari ESP-12E
- RST : berfungsi mereset modul
 - ADC: Analog Digital Converter. Rentang tegangan masukan 0-1v, dengan skup nilai digital 0-1024
 - EN: Chip Enable, Active High
 - IO16 :GPIO16, dapat digunakan untuk membangunkan chipset dari mode deep sleep
 - IO14 : GPIO14; HSPI_CLK
 - IO12 : GPIO12: HSPI_MISO
 - IO13: GPIO13; HSPI_MOSI; UART0_CTS
 - VCC: Catu daya 3.3V (VDD)
 - CS0 :Chip selection
 - MISO : Slave output, Main input
 - IO9 : GPIO9
 - IO10 GBIO10
 - MOSI: Main output slave input
 - SCLK: Clock
 - GND: Ground
 - IO15: GPIO15; MTDO; HSPICS; UART0_RTS
 - IO2 : GPIO2;UART1_TXD
 - IO0 : GPIO0
 - IO4 : GPIO4
 - IO5 : GPIO5
 - RXD : UART0_RXD; GPIO3
 - TXD : UART0_TXD; GPIO1
 
Ulasan secara detail mengenai 
spesifikasi chip ESP-12E diluar lingkup tulisan ini. Pembaca dapat 
mencari informasi detail mengenai ESP-12E dengan mengunduh datasheet di link berikut.
Tegangan Kerja
ESP8266 menggunakan standar tegangan JEDEC (tegangan 3.3V) untuk bisa berfungsi. Tidak
 seperti mikrokontroler AVR dan sebagian besar board Arduino yang 
memiliki tegangan TTL 5 volt. Meskipun begitu, node mcu masih bisa 
terhubung dengan 5V namun melalui port micro USB atau pin Vin yang 
disediakan oleh board-nya. Namun karena semua pin pada ESP8266 tidak 
toleran terhadap masukan 5V. Maka jangan sekali – kali langsung 
mencatunya dengan tegangan TTL jika tidak ingin merusak board anda. Anda
 bisa menggunakan Level Logic Converter untuk mengubah tegangan ke nilai aman 3.3v.
Versi NodeMCU
Beberapa pengguna awal masih cukup bingung dengan beberapa kehadiran board NodeMCU. Karena sifatnya yang open source tentu
 akan banyak produsen yang memproduksinya dan mengembangkannya. Secara 
umum ada tiga produsen NodeMCU yang produknya kini beredar di pasaran: 
 Amica, DOIT, dan Lolin/WeMos. Dengan beberapa varian board yang 
diproduksi yakni V1, V2 dan V3.
1. Generasi
pertama / board v.0.9 (Biasa disebut V1)
NodeMCU Devkit v0.9 dari
https://github.com/nodemcu/nodemcu-devkit 
Board versi 0.9 sering disebut di pasar
sebagai V.1 adalah versi asli yang berdimensi 47mm x 31mm. Memiliki inti
ESP-12 dengan flash memory berukuran 4MB. Berikut adalah pinout dari board
v.0.9
skematik posisi pin nodemcu devkit
v1 
Namun
beberapa produk juga ada yang menggunakan chip ESP-12E sebagai inti dari board
v.0.9 dengan tampilan board berubah menjadi hitam.
2. Generasi
kedua / board v 1.0 (biasa disebut V2)
NodeMCU Devkit v1,0 dari
https://github.com/nodemcu/nodemcu-devkit-v1.0 
Generasi
kedua adalah pengembangan dari versi sebelumnya, dengan chip yang
ditingkatkan dari sebelumnya ESP12 menjadi ESP12E. Dan IC Serial diubah dari
CHG340 menjadi  CP2102
Skematik posisi pin nodemcu devkit
v2 
3. Generasi
ketiga / board v 1.0 ( biasa disebut V3 Lolin)
Sedangkan untuk V3 sebenarnya bukanlah versi resmi
yang dirilis oleh NodeMCU. Setidaknya sampai posting ini dibuat, belum ada
versi resmi untuk V3 NodeMCU. V3 hanyalah versi yang diciptakan oleh produsen
LoLin dengan perbaikan minor terhadap V2. Diklaim memiliki antarmuka USB
yang lebih cepat.
Skematik posisi Pin NodeMcu Dev Kit
v3 
Jika anda bandingkan dengan versi sebelumnya,
dimensi dari board V3. akan lebih besar dibanding V2. Lolin menggunakan 2
pin cadangan untuk daya USB dan yang lain untuk GND tambahan.







