Di era digital seperti sekarang ini, konektivitas bukan lagi sekadar kebutuhan tambahan, melainkan bagian penting dari kehidupan sehari-hari. Segala sesuatu, mulai dari lampu di rumah hingga alat kesehatan, kini dapat dihubungkan melalui teknologi Internet of Things (IoT). Salah satu komponen kecil yang berperan besar dalam revolusi ini adalah ESP8266, mikrokontroler murah dengan kemampuan WiFi yang luar biasa.
Dalam beberapa tahun terakhir, Internet of Things (IoT) telah menjadi topik hangat di industri teknologi. IoT telah mengubah cara kita bekerja. Objek fisik dan dunia digital kini semakin terhubung. Dengan mempertimbangkan hal ini, pada tahun 2014, Espressif Systems merilis mikrokontroler berkemampuan WiFi yang sangat kecil dan terjangkau, yaitu ESP8266. Harganya kurang dari $3 dan dapat memantau serta mengendalikan berbagai hal dari mana pun di dunia, sehingga cocok untuk hampir semua aplikasi IoT.
Mengenal ESP8266
ESP8266 adalah mikrokontroler berkemampuan WiFi berbiaya rendah, yang dibuat dan dikembangkan oleh Espressif Systems, sebuah perusahaan Tiongkok yang berbasis di Shanghai. Fitur-fitur berikut adalah alasan utama mengapa orang-orang menyukai ESP8266.
1. Prosesor Performa Tinggi
ESP8266 dilengkapi dengan mikroprosesor Tensilica Xtensa® 32-bit LX106 RISC yang beroperasi pada frekuensi clock yang dapat disesuaikan, 80 hingga 160 MHz, dan mendukung RTOS.
2. Konsumsi Daya Ultra-Rendah
Dengan beragam mode daya dan penskalaan daya dinamis, ESP8266 mencapai konsumsi daya ultra-rendah, sehingga cocok untuk digunakan pada perangkat seluler, perangkat elektronik dan aplikasi IoT.
3. Kemampuan Wi-Fi
ESP8266 dilengkapi transceiver Wi-Fi 802.11b/g/n HT40, yang memungkinkannya terhubung ke jaringan Wi-Fi untuk mengakses internet (mode Stasiun) atau membuat jaringan nirkabel Wi-Fi sendiri (mode Titik Akses Lunak) yang dapat dihubungkan dengan perangkat lain.
4. Rich set of Peripherals
ESP8266 terdiri dari beberapa periferal bawaan seperti ADC, UART, SPI, I2C, I2S, PWM, dan masih banyak lagi.
5. Berbagai Platform Pengembangan
Tersedia beberapa platform pengembangan untuk memprogram ESP8266. Anda dapat menggunakan Arduino IDE, MicroPython, Espruino, atau Espressif SDK.
6. Biaya Rendah
Ini adalah salah satu mikrokontroler murah, dengan harga mulai dari $3, sehingga terjangkau bagi komunitas pengembang.
Papan Pengembangan ESP8266
Untuk memulai dengan ESP8266, Anda memerlukan papan pengembangan yang baik dan dilengkapi semua fitur tambahan. Ada banyak jenis papan pengembangan di luar sana. Meskipun semuanya berfungsi serupa, beberapa papan mungkin lebih cocok untuk proyek tertentu daripada yang lain. Berikut ini beberapa dari sekian banyak jenis papan ESP8266 yang dapat Anda coba.
1. ESP8266 NodeMCU
ESP8266 NodeMCU adalah salah satu papan pengembangan ESP8266 terpopuler. Papan ini memiliki memori flash 4MB, 11 pin GPIO, dan satu pin ADC dengan resolusi 10-bit. Papan inilah yang paling sering digunakan dalam proyek Wi-Fi dan IoT. Papan ini sangat serbaguna dan sempurna untuk pemula.
2. WeMos D1 Mini
Dibandingkan dengan papan sebelumnya, papan ini memiliki faktor bentuk yang lebih kecil dan lebih terjangkau, sehingga menjadi pilihan yang sangat baik untuk proyek yang lebih hemat biaya. Selain itu, berbagai pelindung tersedia untuk papan D1 mini, memungkinkan Anda membangun pengaturan kecil dan sederhana dengan kabel minimal.
3. ESP-01
Papan ini berukuran kecil dan dapat dipasang di berbagai wadah, sehingga cocok untuk proyek yang sudah selesai. Papan ini memiliki memori flash 1MB dan 4 GPIO untuk mengontrol dan menghubungkan periferal. Jika proyek Anda membutuhkan lebih banyak periferal, gunakan salah satu papan sebelumnya.
Spesifikasi Perangkat Keras NodeMCU ESP8266
Dalam hal papan pengembangan ESP8266, NodeMCU sejauh ini merupakan opsi yang paling banyak digunakan. Inilah yang akan kami gunakan untuk eksperimen ini. Jangan khawatir jika Anda memiliki papan yang berbeda; informasi di halaman ini akan tetap berguna. Mari kita bahas lebih dalam ikhtisar perangkat keras NodeMCU ESP8266.
a. Modul ESP-12E
Papan pengembangan ini dilengkapi dengan modul ESP-12E, yang berisi Tensilica Xtensa® 32-bit LX106 RISC yang beroperasi pada frekuensi clock yang dapat disesuaikan, 80 hingga 160 MHz, dan mendukung RTOS.
- Tensilica Xtensa® 32-bit LX106
- 80 to 160 MHz Clock Freq
- 128kB internal RAM
- 4MB external flash
- 802.11b/g/n Wi-Fi transceiver
Terdapat juga RAM 128 KB dan memori Flash 4 MB (untuk penyimpanan program dan data), yang cukup untuk menangani string panjang yang membentuk halaman web atau data JSON/XML.
ESP8266 dilengkapi transceiver Wi-Fi 802.11b/g/n HT40, yang memungkinkannya terhubung ke jaringan Wi-Fi untuk mengakses internet (mode Stasiun) atau membuat jaringan nirkabel Wi-Fi sendiri (mode Titik Akses Lunak) yang dapat dihubungkan dengan perangkat lain.
1. Daya
Karena rentang tegangan operasi ESP8266 adalah 2,5V hingga 3,6V, papan ini dilengkapi regulator tegangan LDO untuk menjaga tegangan tetap stabil di 3,3V. Regulator ini dapat menyediakan arus hingga 600 mA dengan andal, yang seharusnya cukup bahkan ketika ESP8266 menggunakan arus maksimumnya (80 mA) selama transmisi RF.
- Operating Voltage: 2.5V to 3.6V
- On-board 3.3V 600mA regulator
- 80 mA Operating Current
- 20 µA during Sleep Mode
Output regulator 3,3V disalurkan ke pin header berlabel 3V3. Pin ini dapat digunakan untuk memberi daya pada sirkuit eksternal.
NodeMCU ESP8266 biasanya ditenagai oleh konektor USB MicroB on-board. Sebagai alternatif, jika Anda memiliki catu daya 5V yang teregulasi, Anda dapat menggunakan pin VIN untuk memberi daya langsung ke ESP8266 dan periferalnya.
2. Periferal dan I/O
NodeMCU ESP8266 memiliki total 17 pin GPIO yang dibagi menjadi header pin. Pin-pin ini dapat ditugaskan untuk berbagai fungsi periferal, termasuk:
- 1 kanal ADC – 1 kanal ADC SAR presisi 10-bit
- 2 antarmuka UART – 2 antarmuka UART dengan dukungan kontrol aliran
- 4 keluaran PWM – 4 pin PWM untuk mengontrol hal-hal seperti kecepatan motor atau kecerahan LED.
- Antarmuka SPI dan I2C – Dua antarmuka SPI dan satu antarmuka I2C untuk menghubungkan berbagai sensor dan periferal.
- Antarmuka I2S – Satu antarmuka I2S untuk menambahkan suara ke proyek Anda.
Multiplexed I/Os
- 1 ADC channels
- 2 UART interface
- 4 PWM outputs
- SPI, I2C & I2S interface
Berkat fitur multiplexing pin ESP8266, beberapa periferal dapat berbagi satu pin GPIO. Misalnya, satu pin GPIO dapat menjalankan fungsi-fungsi seperti I2C, I2S, UART, PWM, dan IR Remote Control, dll.
Sakelar Terintegrasi & Indikator LED
Ada dua tombol pada NodeMCU ESP8266. Tombol Reset, berlabel RST, digunakan untuk mereset chip ESP8266. Tombol lainnya adalah tombol FLASH, yang digunakan untuk memperbarui firmware.
Switches & Indicators
- RST - Reset the ESP8266 chip
- FLASH - Donwload program baru
- Blue LED - User Programmable
Papan ini juga dilengkapi LED yang dapat diprogram pengguna yang terhubung ke pin D0.
Komunikasi Serial
Papan ini dilengkapi Pengontrol Jembatan USB-ke-UART CP2102 dari Silicon Labs, yang mengubah sinyal USB menjadi serial dan memungkinkan Anda memprogram chip ESP8266.
Komunikasi Serial
- Konverter USB-to-UART CP2102
- Kecepatan komuniksi 4.5 Mbps
- Dukungan kontrol aliran
Pinout ESP8266 NodeMCU
ESP8266 NodeMCU memiliki total 30 pin. Untuk memudahkan, pin-pin dengan fungsi serupa dikelompokkan bersama. Pinout-nya adalah sebagai berikut:
1. Pin Daya
Pin Daya Terdapat empat pin daya, satu VIN dan tiga 3,3V. Pin VIN dapat digunakan untuk langsung memberi daya pada ESP8266 dan periferalnya, jika Anda memiliki catu daya 5V yang teregulasi. Pin 3,3V adalah output dari regulator tegangan on-board; Anda bisa mendapatkan hingga 600mA darinya.
2. Pin GND
GND adalah pin ground.
3. Pin GPIO
Pin GPIO NodeMCU ESP8266 memiliki 17 pin GPIO yang dapat ditetapkan fungsi berbeda dengan memprogram register yang sesuai. Setiap pin GPIO dapat dikonfigurasi dengan pull-up atau pull-down internal, atau diatur ke impedansi tinggi. Ketika dikonfigurasi sebagai input, pin ini juga dapat diatur ke edge-trigger atau level-trigger untuk menghasilkan interupsi CPU.
4. Pin ADC
Saluran ADC ESP8266 dilengkapi ADC SAR presisi 10-bit. ADC dapat digunakan untuk melakukan dua pengukuran: menguji tegangan catu daya pin VDD3P3 dan menguji tegangan input pin TOUT. Namun, keduanya tidak dapat dilakukan secara bersamaan.
5. Pin SPI
Pin SPI ESP8266 memiliki dua SPI (SPI dan HSPI) dalam mode slave dan master. SPI ini juga mendukung fitur-fitur SPI umum yang tercantum di bawah ini:
- 4 mode pewaktuan transfer format SPI
- Hingga 80 MHz dan clock terbagi 80 MHz
- Hingga 64-Byte FIFO
6. Pin I2C
Pin I2C ESP8266 tidak memiliki pin I2C perangkat keras, tetapi dapat dilakukan dengan "bitbanging". Cara ini bekerja dengan cukup baik, dan ESP8266 cukup cepat untuk menyamai kecepatan "level Arduino". Secara default, GPIO4 (SDA) dan GPIO5 (SCL) digunakan sebagai pin I2C untuk memudahkan pengguna yang menggunakan kode, pustaka, dan sketsa Arduino yang sudah ada. Namun, Anda dapat menggunakan dua pin GPIO lainnya sebagai pin I2C dengan memanggil wire.begin(SDA, SCL) di Arduino IDE.
7. Pin UART
ESP8266 memiliki dua antarmuka UART, UART0 dan UART2, yang mendukung komunikasi asinkron (RS232 dan RS485) hingga 4,5 Mbps. UART0 (pin TXD0, RXD0, RST0, dan CTS0) digunakan untuk komunikasi, sedangkan UART1 (pin TXD1) hanya memiliki sinyal transmisi data dan biasanya digunakan untuk mencetak log.
8. Pin PWM
Output modulasi lebar pulsa (PWM) dapat diimplementasikan secara terprogram pada semua pin GPIO dari GPIO0 hingga GPIO15. Pada ESP8266, sinyal PWM memiliki resolusi 10-bit, dan rentang frekuensi PWM dapat disesuaikan antara 1000 μs dan 10000 μs, yaitu antara 100 Hz dan 1 kHz.
9. Pin SDIO
ESP8266 memiliki satu SDIO (Secure Digital Input/Output Interface) slave untuk menghubungkan kartu SD. SDIO v1.1 (4-bit, 25 MHz) dan SDIO v2.0 (4-bit, 50 MHz) didukung.
10. Pin Kontrol
Pin kontrol digunakan untuk mengendalikan ESP8266. Pin-pin ini adalah pin EN, pin RST, pin FLASH, dan pin WAKE.
- Pin EN (juga dikenal sebagai CH_PD atau Chip Power Down) digunakan untuk mengaktifkan ESP8266. Ketika ditarik ke HIGH, chip diaktifkan; ketika ditarik ke LOW, chip beroperasi pada daya rendah.
- Pin RST adalah pin reset dan biasanya ditahan di posisi TINGGI. Pin ini dapat digunakan untuk mereset sistem ESP8266 dengan menariknya ke posisi LOW sejenak. Ini setara dengan menekan tombol RST on-board.
- Pin FLASH digunakan oleh ESP8266 untuk menentukan kapan harus boot ke bootloader. Jika pin ditahan di posisi LOW saat power-up, bootloader akan dimulai! Ini setara dengan menekan tombol FLASH on-board.
- Pin WAKE digunakan untuk membangunkan ESP8266 dari mode deep sleep.
Platform Pengembangan ESP8266
Anda dapat menggunakan Espruino (SDK JavaScript dan firmware yang sangat mirip dengan Node.js), Mongoose OS (sistem operasi untuk perangkat IoT yang direkomendasikan oleh Espressif Systems dan Google Cloud IoT), MicroPython (implementasi Python 3 untuk mikrokontroler), SDK yang disediakan oleh Espressif, atau salah satu platform yang tercantum di WiKiPedia.
Untungnya, komunitas ESP8266 yang luar biasa baru-baru ini mengambil langkah lebih jauh dalam pemilihan IDE dengan menciptakan add-on Arduino. Jika Anda baru mengenal ESP8266, kami sarankan untuk memulai dengan lingkungan ini, yang akan kami bahas dalam tutorial ini. Untuk informasi selengkapnya, kunjungi repositori GitHub Arduino ESP8266.
Install ESP8266 Core for Arduino
Langkah pertama dalam memasang inti ESP8266 Arduino adalah memasang Arduino IDE terbaru (Arduino 1.8.5 atau yang lebih baru) di komputer Anda. Jika Anda belum melakukannya, kami sarankan Anda segera melakukannya.
- Kemudian, luncurkan Arduino IDE dan navigasikan ke File > Preferences.
- Isi kolom “Additional Board Manager URLs” dengan yang berikut ini.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Kemudian, klik tombol “OK”.
- Sekarang navigasikan ke Tools > Board > Board Manager…
- Filter pencarian Anda dengan memasukkan 'esp8266'. Cari ESP8266 dari Komunitas ESP8266. Klik entri tersebut, lalu pilih Instal.
- Setelah menginstal, mulai ulang Arduino IDE Anda dan navigasikan ke Tools > Boards untuk memastikan Anda memiliki papan ESP8266 yang tersedia.
- Sekarang pilih papan Anda di menu Tools > Boards (dalam kasus kami, ini adalah NodeMCU 1.0 (Modul ESP-12E)). Jika Anda tidak yakin papan mana yang Anda miliki, pilih Generic ESP8266 Module.
- Terakhir, hubungkan ESP8266 NodeMCU ke komputer Anda dan pilih Port (jika port COM tidak muncul di Arduino IDE Anda, Anda perlu menginstal Driver CP210x USB to UART Bridge VCP):
Selesai! Anda sekarang dapat mulai menulis kode untuk ESP8266 Anda di Arduino IDE. Pastikan Anda selalu menginstal versi terbaru inti Arduino ESP8266.
Cukup buka Tools > Board > Boards Manager, cari ESP8266, dan verifikasi versi yang telah Anda instal. Jika versi yang lebih baru tersedia, Anda harus menginstalnya.
Contoh Sketsa ESP8266
Inti Arduino ESP8266 berisi beberapa sketsa contoh. Untuk mengakses sketsa contoh, buka File > Examples > ESP8266. Anda akan melihat pilihan sketsa contoh. Anda dapat memilih salah satu untuk membuat sketsa ke dalam IDE Anda dan mulai bereksperimen.
Contoh Dasar: Blink
Untuk memastikan semuanya terkonfigurasi dengan benar, kami akan mengunggah sketsa paling dasar – Blink! Buka File > Examples > ESP8266, lalu buka sketsa Blink. Sketsa ini menggunakan LED on-board yang dimiliki sebagian besar papan pengembangan ESP8266. LED ini biasanya terhubung ke pin digital D0, dan jumlahnya dapat bervariasi di setiap papan.
Catatan: Kegagalan memilih papan, port COM, dan kecepatan Unggah yang sesuai dapat mengakibatkan kesalahan espcomm_upload_mem saat mengunggah sketsa baru.
void setup() {
pinMode(D0, OUTPUT);
}
void loop() {
digitalWrite(D0, HIGH);
delay(500);
digitalWrite(D0, LOW);
delay(500);
}
Setelah kode diunggah, LED akan mulai berkedip. Agar ESP8266 Anda menjalankan sketsa, Anda mungkin perlu menekan tombol RST.
Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?
Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami!















0 Komentar