Mengenal ESP8266: SOC Wifi super murah dari China

Artikel ini adalah perkenalan SOC ESP8266, sebuah System On A Chip (SOC) berfitur WIFI yang sedang sangat populer. Salah satu penyebab kepopuleran ESP8266 untuk Internet Of Things (IOT) karena harga chipnya yang super murah: kurang dari 2 USD (sudah termasuk ongkos kirim dari China). Benda ini juga mudah diprogram menggunakan C, Python, Lua, Basic ataupun Wiring (dengan IDE Arduino).

Secara praktis, kemampuan IP networking akan memungkinkan kita membuat benda yang bisa dikendalikan dari Internet (contohnya: mematikan atau menyalakan sesuatu), mengirimkan data ke Internet (mengirimkan pembacaan sensor), atau memanfaatkan data dari Internet (menampilkan cuaca, menampilkan jam akurat saat ini).

Tahun 2014, sebuah perusahaan China merilis chip WIFI ESP8266, chip ini awalnya hanya dijual dalam bentuk modul (bernama ESP-01) agar sebuah microcontroller (misalnya Arduino) bisa mengakses WIFI melalui serial port dengan menggunakan AT Command Hayes. Pada saat itu chip ini dokumentasinya minim sekali dalam bahasa Inggris, tapi satu hal yang pasti adalah: chip ini sangat murah. Karena sangat murah dan menarik, maka ada yang berusaha menerjemahkan datasheet lengkapnya.

20160131_155419
ESP-01

Ternyata chip ini memiliki spesifikasi yang luar biasa untuk harganya yang begitu murah. Chip ini memiliki CPU 32 bit Tensilica Xtensa LX106 80 Mhz, dengan RAM instruksi 64 KiB dan RAM data 96 KiB. Chip ini memiliki berbagai I/O (GPIO, SPI, I2C, I2S, dan bahkan sebuah ADC). Chip ini tidak memiliki storage (EPROM), tapi bisa dihubungkan SPI flash (biasanya 512 KiB – 4 MiB). Beberapa bulan yang lalu Espressif menjual juga ESP8285 yang memiliki built in flash 1 MiB.

Saya tegaskan bahwa walaupun awalnya modul ESP-01 dijual sebagai modul WIFI untuk Arduino, sekarang ESP8266 ini bisa berdiri sendiri, tidak perlu Arduino, bahkan sebenarnya ESP-01 versi awal (dengan firmware bawaan dengan AT command) itu cukup konyol, karena ESP8266 lebih powerful dari Arduino (lebih cepat, lebih banyak RAM), tapi hanya sekedar jadi “pembantu” Arduino untuk bisa terhubung ke WIFI.

Espressif menyadari minat yang besar dari komunitas, dan mereka merilis SDK agar lebih mudah memprogram ESP8266 menggunakan bahasa C. Dengan SDK ini, berbagai bahasa lain bisa diimplementasikan juga.

Berbagai pihak menyadari betapa menariknya chip ini, dan membuat berbagai modul (ESP-02, ESP-03, dst) untuk memudahkan memanfaatkan semua I/O yang tersedia. Modul ESP-01 hanya memiliki beberapa pin yang terhubung ke chipnya, karena memang tujuan awalnya hanya untuk terhubung ke serial port saja, sedangkan modul ESP-XX yang lain umumnya memiliki lebih banyak pin.

Sekarang ini ESP8266 bisa diprogram dengan berbagai cara: langsung menggunakan compiler C + SDK dari Espressif, Menggunakan bahasa Wiring (menggunakan IDE Arduino), menggunakan Lua (NodeMCU), Python (menggunakan MicroPython) dan BASIC (Menggunakan ESP8266 Basic).

Jika menggunakan C + SDK atau IDE Arduino, setiap kali kita memprogram devicenya, maka dilakukan flashing ulang programnya. Untuk bahasa lain, kita bisa melakukan koneksi via serial port lalu mengetikkan program secara langsung secara interaktif (tidak permanen, akan hilang ketika restart) dan bisa kita simpan jika kita sudah yakin dengan isi programnya agar permanen.

IMG_4879
NodeMCU

Sebagian modul ESP sudah diberi chip USB to serial (biasanya CH340, chip USB to serial paling murah) sehingga bisa langsung diprogram dengan mencolokkan ke USB komputer. Untuk modul lain (seperti ESP-01), kita perlu menghubungkan kabel serial sendiri (bisa dengan USB to serial yang harganya kurang dari 2 USD). Driver untuk CH340 sudah tersedia untuk Linux (tidak perlu install), Windows (otomatis akan dikenali dan didownload otomatis oleh Windows), dan OS X (perlu install sendiri).

Kecepatan ESP8266 ini sangat tinggi (80Mhz, bisa dioverclock sampai 160 Mhz), sehingga memungkinkan untuk bit banging fitur lain yang tidak didukung, misalnya ada satu orang (cnlohr) yang menyiarkan gambar dengan ESP8266, membuat virtual USB device (seperti VUSB Atmega), dan bahkan memprogram ESP8266 sebagai ethernet controller. Anda juga bisa melihat berbagi proyek lain yang memanfaatkan ESP8266.

Dalam bidang security: ESP8266 dapat menginjeksikan paket raw WIFI sehingga bisa digunakan untuk WIFI jamming atau untuk mendeautentikasi semua client. ESp8266 ini juga bisa mendengarkan paket raw WIFI, jadi bisa juga dipakai untuk scanning.

Selain untuk IOT, untuk Anda yang tertarik pada arsitektur komputer yang tidak standar (bukan cuma Intel dan ARM), ESP8266 menggunakan core Xtensa dari Tensilica yang memiliki beberapa fitur yang menarik (misalnya memiliki sliding register window seperti SPARC).

ESP8266 saat ini masih memiliki kelemahan, misalnya RAM yang kecil mempersulit pemrograman fitur kompleks (terutama dengan bahasa high level), jumlah ADC (analog to digital converter) yang hanya satu, tidak punya DAC (digital to analog converter), tidak punya Pulse Width Modulation (PWM). Sebagian besar kelemahan ini tentunya bisa diatasi dengan chip tambahan (chip ADC/DAC, dsb). Saat ini sebagian orang mengatasi kelemahan di atas dengan menggunakan Arduino (ADC/DAC sudah tersedia).

Sebentar lagi (rencananya awal September), Espressif akan merilis ESP32, yang merupakan generasi selanjutnya dari ESP8266 dengan dual core dan RAM lebih banyak, (416 KiB) serta memiliki fitur bluetooth 4.2. Beberapa pihak sudah mendapatkan versi “preview” dari chip ini, dan sejauh ini tidak ada komplain negatif. Jika harganya tidak terpaut jauh dari ESP8266, Chip baru ini akan sangat populer.

Ini adalah salah satu proyek kecil iseng yang saya buat: mengendalikan LED yang disusun sirkuler menggunakan browser (bisa desktop/mobile).

IMG_5993

IMG_6006

Jika proyek Anda berikutnya butuh WIFI dan tidak perlu pemrosesan yang kompleks, tidak perlu Single Board Computer (SBC) yang relatif lebih mahal (CHIP harganya 9 USD, belum ongkir, Raspberry Pi 35 USD, belum ongkir) cukup ESP8266 saja. Atau gunakan beberapa ESP8266 yang mengupload data ke sebuah SBC untuk diproses lebih lanjut.

5 thoughts on “Mengenal ESP8266: SOC Wifi super murah dari China”

  1. ane punya esp8266 nodemcu v3 mau di pake untuk koneksi local pada lomba KRSBI, nah di aplikasi juri ada broadcast port dan ip, cara setting di esp nya gmn ya om?

    akan ane kirim aplikasinya jika om butuh

    thanks in advance ^_^

      1. Terima kasih om, saat ini sudah ada kemajuan ^_^

        Memang pakai arduino, kemarin itu belum di wiring ke arduino nya hehe. Baru coba esp nya secara langsung.

Leave a Reply

Your email address will not be published. Required fields are marked *