Perbedaan ESP32 dan ESP8266

Perbedaan ESP32 dan ESP8266 adalah sebagai berikut

Parameter ESP32 ESP8266
Prosesor / CPU Xtensa :LX6 dual core / single core Xtensa L:106 single core
clock processor 160 MHz 80 MHz
Memori Flash ada versi dengan built in flash tidak ada built in flash
Memori SRAM    
Memori EEPROM di flash memory  
Wifi HT40 HT20
Bluetooth tidak ada Bluetooth 4.2 dan BLE
SPI 4 2
I2C 2 1
I2S 2 2
UART 2 2
ADC 12 bit 10 bit
CAN ada tidak ada
Built in sensor hall sensor, temperature sensor tidak ada

 

ESP8266 NodeMCU (kiri), ESP32 DevkitC (tengah), ESP32 Lolin32 Lite (kanan)
ESP8266 NodeMCU (kiri), ESP32 DevkitC (tengah), ESP32 Lolin32 Lite (kanan)

Penjelasan Ringkas ESP32

ESP 32 adalah mikrokontroler yang memiliki banyak fitur pada prosesornya, dan dilengkapi dengan konektivitas Wi-Fi dan Bluetooth terintegrasi untuk berbagai macam aplikasi.

ESP32 mampu berfungsi dengan andal di lingkungan industri, dengan suhu pengoperasian mulai dari –40°C hingga +125°C. ESP32 dapat secara dinamis menghilangkan ketidaksempurnaan sirkuit eksternal dan beradaptasi dengan perubahan kondisi eksternal dengan dukungan rangkaian kalibrasi di dalamnya. Rangkaian kalibrasi ini memungkinkan WiFi pada ESP32 berfungsi tanpa perlu kalibrasi ekstra.

ESP32 dirancang untuk perangkat bergerak (mobile), perangkat elektronik yang dapat dikenakan (wearable electronics), dan aplikasi IoT. Konsumsi daya ESP32 dapat dibuat sangat rendah dengan kombinasi beberapa macam perangkat lunak khusus. ESP32 juga mencakup fitur-fitur canggih, seperti ‘clock gating‘ untuk mereduksi konsumsi daya, berbagai mode daya, dan penskalaan daya secara dinamis.

ESP32 dibuat sangat terintegrasi dengan sakelar pemilih antena di dalamnya, RF balun, power amplifier untuk radio, amplifier penerima radio dengan kebisingan rendah (low noise), filter, dan modul manajemen daya. ESP32 menambahkan fungsionalitas dan keserbagunaan yang banyak aplikasi dengan hanya memerlukan ruang kecil di PCB (Printed Circuit Board)

ESP32 dapat berfungsi sebagai sistem mandiri yang lengkap atau sebagai perangkat pembantu ke mikrokontroler lain, mengurangi overhead tumpukan komunikasi pada prosesor aplikasi utama. ESP32 dapat berinteraksi dengan sistem lain untuk menyediakan fungsionalitas Wi-Fi dan Bluetooth melalui antarmuka SPI/SDIO atau I2C/UART.

Modul ESP32 tersedia dalam berbagai versi, di antaranya adalah Lolin32 Lite dan DevkitC serta clone nya.

Penjelasan Ringkas ESP8266

ESP8266 adalah prosesor yang dibuat oleh Espressif. ESP8266 adalah pendahulu dari ESP32.

Referensi

 

ESP8266 NodeMCU

NodeMCU pinout

LED di port D2

NodeMCU Versi 0.9

Berikut ini foto development kit NodeMCU versi original [sumber]

NodeMCU Devkit v0.9 ESP8266
NodeMCU Devkit v0.9
Definisi Pin NodeMCU V0.9 ESP8266
Definisi Pin NodeMCU V0.9

Berikut ini skematik rangkaian NodeMCU versi 0.9 [sumber]

Skematik NodeMCU 0.9 ESP8266
Skematik NodeMCU 0.9

NodeMCU Versi 1.0

Berikut ini foto development kit NodeMCU V1.0 versi original [sumber]

NodeMCU Devkit v1.0 ESP8266
NodeMCU Devkit v1.0
NodeMCU ESP8266
NodeMCU ESP8266

Definisi pin NodeMCU menurut situs NodeMCU DEVKIT V1.0

Definisi Pin NodeMCU Devkit V1.0
Definisi Pin NodeMCU Devkit V1.0

Skema Rangkaian

Sumber: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF

Skema rangkaian NodeMCU Devkit V1.0 Konektor
Skema rangkaian NodeMCU Devkit V1.0 Konektor
Skema rangkaian NodeMCU Devkit V1.0 Catu Daya
Skema rangkaian NodeMCU Devkit V1.0 Catu Daya
Skema rangkaian NodeMCU Devkit V1.0 Serial
Skema rangkaian NodeMCU Devkit V1.0 Serial
Skema rangkaian NodeMCU Devkit V1.0 Inti
Skema rangkaian NodeMCU Devkit V1.0 Inti

 

Referensi

Cara Membuat Smart Room

Smart Room dapat dibuat dengan menggunakan mikroprosesor. Berikut ini tahap-tahap pembuatan smart room tersebut.

Menentukan Tujuan Smart Room

Tahap pertama dari sebuah pekerjaan/proyek adalah menentukan tujuan utama pekerjaan tersebut.

Berikut ini  beberapa alternatif tujuan sebuah smart room

  • Meningkatkan kenyamanan ruangan, bisa dari sisi pencahayaan, temperatur, kelembaban
  • Menghemat pemakaian energi. Suatu ruangan memerlukan temperatur untuk penerangan dan pemanasan/pendinginan
  • Meningkatkan keamanan ruangan

Menentukan Spesifikasi Sistem

Setelah tujuan ditentukan,berikutnya adalah menentukan spesifikasi teknis dari ruangan tersebut.

Hal-hal yang perlu diperhatikan pada spesifikasi smart-room:

  • Apakah temperatur perlu diukur?
  • Apakah temperatur perlu dikendalikan?
  • Apakah kelembaban perlu diukur?
  • Apakah kelembaban perlu dikendalikan?
  • Apakah cahaya perlu diukur?
  • Apakah cahaya perlu dikendalikan?
  • Temperatur ruangan diukur dengan ketelitian tertentu, misal 1 derajat Celcius, 0,5 derajat Celcius dan sebagainya
  • Rentang temperatur ruangan ditentukan. Hal ini untuk menentukan rentang sensor temperatur yang diperlukan.
  • Target temperatur yang diinginkan
  • Ketelitian pengukuran kelembaban.
  • Rentang kelembaban ruangan yang perlu diukur
  • Target kelembaban yang diinginkan.

Membuat Perancangan Sistem Secara Keseluruhan

Pada tahap ini dibuat arsitektur sistem secara keseluruhan. Aliran data & informasi ditentukan.

Perancangan perangkat keras

Pada tahap ini dilakukan pembuatan rancangan perangkat keras.

Hal-hal yang perlu ditentukan:

  • Menentukan mikrokontroler yang dipakai , jika menggunakan mikroprosesor
  • Menentukan sensor-sensor yang dipakai
  • Menentukan aktuator-aktuator yang diperlukan
  • Menentukan catu daya (power supply) yang diperlukan
  • Kotak untuk menyimpan perangkat

Berikut ini contoh sistem smart room dengan sebuah mikrokontroler sebagai pengendali utama.

Blok Diagram Perangkat Keras Smart-Room
Blok Diagram Perangkat Keras Smart-Room

Contoh prosesor populer yang dapat dipakai di antaranya:

  • Arduino UNO (ATmega328)
  • Arduino Nano (ATmega328)
  • ESP32 (Espressif)
  • ESP8266

ESP32 dan ESP8266 dapat dipakai jika kita memerlukan WiFi atau Bluetooth. Jika tidak perlu komunikasi nirkabel, cukup menggunakan Arduino berbasis ATmega328.

Contoh sensor yang dapat dipakai

  • LM35: sensor temperatur analog
  • DS18S20: sensor temperatur digital
  • BMP280: sensor temperatur dan tekanan udara
  • BME280: sensor temperatur, kelembaban dan tekanan udara
  • LDR (Light Dependent Resistor): sensor cahaya
  • Photodiode : sensor cahaya

Contoh Display yang dapat dipakai:

  • LCD 16×2
  • LCD 20×4
  • LCD matrix

Perancangan perangkat lunak

Pada tahap ini dilakukan hal-hal sebagai berikut

  • menentukan apakah akan menggunakan sistem operasi. pada sistem seperti ini sering dipakai sistem operasi waktu nyata (Real Time Operating System /RTOS ). Salah satu RTOS yang sering dipakai adalah FreeRTOS (https://www.freertos.org/)
  • membuat model diagram alir (flow chart)
  • membuat model aliran data (data flow diagram)
  • membuat model FSM (finite state machine) jika pada sistem terdapat proses yang memerlukan FSM
  • membuat model pengolahan sinyal dengan DSP (Digital Signal Processing), jika terdapat pengolahan sinyal secara digital. Umumnya melibatkan filter digital , equalizer digital, perekaman data digital.

Implementasi Perangkat Keras

Pada tahap ini dibuat papan rangkaian dengan PCB (Printed Circuit Board)

Implementasi Perangkat Lunak

Pada tahap ini dilakukan proses pembuatan perangkat lunak untuk mikrokontroler

Pengujian sistem

Pada tahap ini dilakukan pengujian untuk membandingkan antara perilaku sistem dengan spesifikasi yang diinginkan. Untuk itu diperlukan pengukuran-pengukuran untuk kemudian dibandingkan dengan angka-angka yang diinginkan pada spesifikasi.

Pengujian ini biasanya dilakukan secara kuantitatif, sehingga cukup obyektif.

Perangkat yang diperlukan untuk pengujian sistem di antaranya

  • Termometer digital atau analog sesuai dengan rentang temperatur dan ketelitian yang diinginkan
  • Higrometer digital atau analog sesuai dengan rentang kelembaban dan ketelitian pengukuran kelembaban.
  • Light Meter untuk mengukur pencahayaan ruangan
  • Voltmeter / Wattmeter untuk mengukur unjuk kerja tegangan/ arus/ daya pada rangkaian.

Validasi Sistem

Pada tahap ini dilakukan perbandingan antara tujuan sistem dengan perilaku sistem. Jika sistem yang dibuat sudah dapat menyelesaikan permasalahan di tujuan, maka sistem dapat dikatakan sudah berhasil divalidasi.

Validasi ini biasanya dilakukan secara kualitatif sehinggak agak sedikit subyektif.

Mikroprosesor untuk FreeRTOS

FreeRTOS adalah suatu sistem operasi untuk membuat sistem real time berbasis mikroprosesor. Sistem operasi ini cocok untuk sistem-sistem yang kecil dan sederhana. Untuk sistem yang lebih kompleks, diperlukan sistem operasi real-time yang lebih besar seperti eCOS, embedded Linux (or Real Time Linux) ataupun uCLinux.

Berikut ini beberapa mikroprosesor yang cocok untuk menjalankan sistem operasi FreeRTOS.

Prosesor di gambar di atas adalah sebagai berikut:

  • NXP LPCXpresso LPC1769
  • Espressif ESP8266
  • Esperssif ESP32
  • Arduino Nano (clone)
  • ST Micro STM32F103C8T dan programmernya ST-LINK-V2

Barang-barang yang ditampilkan di sini adalah prosesor yang ada di laboratorium dan sempat dicoba. Masih banyak lagi prosesor yang dapat menjalankan FreeRTOS yang belum dicoba.

Arduino Nano dapat menjalankan FreeRTOS mengingat porting FreeRTOS untuk Atmel AVR tersedia di situs FreeRTOS. Namun kemampuannya terbatas, mengingat memori di ATMega328 sangat terbatas.

Arduino Nano
Arduino Nano

Selanjutnya adalah board LPCXPresso dengan prosesor NXP LPC1769. Kemampuan prosesor ini cukup tinggi.

LPCXpresso dengan prosesor NXP LPC1769

STM32F103 kemampuannya menengah saja, tidak terlalu tinggi, namun kelebihan utama dari prosesor ini adalah tersedia dengan harga murah dari berbagai vendor. Artikel tentang modul ini banyak di Internet sehingga lumayan memudahkan bagi pemula.

Modul STM32F103C8T “Blue Pill”

STM32F103 dapat diisi proram dengan berbagai cara, namun yang paling mudah adalah menggunakan modul ST-LINK-V2 berikut ini.

ST-LINK-V2 untuk upload program ke STM32

Daya tarik utama dari ST-LINK-V2 adalah harganya yang murah, karena banyak versi clone / KW-nya.

Berikutnya adalah prosesor ESP8266 dan ESP32 dari Espressif. Porting FreeRTOS untuk prosesor ini banyak tersedia.

ESP8266
ESP8266
Modul ESP32 LOLIN32

Berikut ini tabel perbandingan kekuatan dari prosesor yang dipakai, dilihat dari clock, flash memory dan static RAM.

ModelClockFlash MemoryStatic RAM
ATMega32816 MHz32 kB2 kB
STM32F103C8T72 MHz64 kB20 kB
LPC1769100 MHz512 kB64 kB
ESP32240 MHzexternal (typical 4 MB)520 kB
ESP8266160 MHzexternal80 kB

Perbandingan clock kurang lebih mewakili kecepatan, walaupun sebenarnya perbandingan kecepatan tidak dapat hanya dibandingkan dari clock saja, namun juga mesti melihat arsitektur masing-masing mikroprosesor.

Referensi ports dan demo untuk FreeRTOS adalah sebagai berikut:

ESP8266 Sebagai Pengendali Relay 5 V

Berikut ini diuraikan rancangan teoritis cara mengendalikan relay 5 volt dari mikroprosesor ESP8266.

Relay umumnya memerlukan arus beberapa puluh milliampere, sedangkan output dari mikrokontroler biasanya hanya beberapa miliampere, sehingga output mikrokontroler perlu diperkuat agar dapat mengendalikan relay.

Ada beberapa variasi rangkaian penguat tersebut yang populer, di antaranya sebagai berikut:

  • Rangkaian transistor BJT (Bipolar Junction Transistor)
  • Rangkaian MOSFET
  • Rangkaian dengan IC ULN2803

Pada tulisan ini diuraikan rangkaian dengan transistor BJT.

Berikut adalah ide dasar rangkaian penguat dengan 1 transistor [Sumber]

Kendali relay dengan transistor
Kendali relay dengan transistor

Cara Kerja Rangkaian

Chip Output pada gambar tersebut adalah output dari mikrokontroler. Pada kasus ini digunakan mikrokontroler ESP8266, sehingga kita perlu cek datasheet ESP8266 untuk mengetahui sifat tegangan dan arus pada pin output ESP8266 tersebut.

Data ESP8266 diambil dari https://nurdspace.nl/ESP8266#Digital_IO_pins.

Berikut ini tabel sifat pin digital IO tersebut:

Variables Symbol Min Max Units
Input Low Voltage Vil -0.3 0.25xV10 V
Input High Voltage Vih 0.75xV10 3.6 V
Input leakage current IIL 50 nA
Output Low Voltage VOL 0.1xV10 V
Output High Voltage VOH 0.8xV10 V
Input pin capacitance Cpad 2 pF
VDDIO V10 1.7 3.6 V
Current Imax 12 mA
Temperature Tamb -20 100 C

Tegangan power supply ESP8266 diasumsikan 3.3 volt, pada tabel tersebut tegangan ini adalah VDDIO atau V10.

Output HIGH pada pin output adalah VOH yaitu 0.8 x V10 = 0.8 x 3.3 volt = 2.64 volt

Output LOW pada pin output adalah VOL yaitu 0.1 x V10 = 0.1 x 3.3 volt = 0.33 volt

Transistor BJT pada sistem ini hanya punya 2 kondisi: Off dan saturasi. Jika output dari mikrokontroler LOW , maka transistor OFF. Jika output dari mikrokontroler HIGH , maka transistor akan saturasi.

Analisis Output LOW

Jika output LOW, maka tegangan pada transistor antara basis dan emitter (Vbe) adalah 0.33 volt. Tegangan ini kurang dari Vbe yang diperlukan untuk mengaktifkan transistor (0.6 volt), sehingga transistor akan berada dalam keadaan OFF.

Analisis Output HIGH

Jika output HIGH, maka tegangan pada transistor antara basis dan emitter (Vbe) adalah 2.64 volt dikurangi tegangan jatuh pada Rb. Tegangan jatuh pada Rb rumusnya adalah Rb x Ib. Pada tahap ini kita perlu menentukan berapa Ib yang kita inginkan.

Dari mikrokontroler ESP8266 disebutkan bahwa Imax adalah 12 miliampere, artinya arus maksimal pada port output adalah 12 miliampere. Untuk amannya kita pakai saja arus 1 miliampere, sehingga Ib = 1 miliampere. Sebaiknya kita ambil nilai yang di bawah 12 mA supaya Ib tidak melampaui 12 mA walaupun nilai komponen berbeda karena toleransi.

Vbe pada transistor diasumsikan 0.6 volt.

Dengan asumsi ini maka rangkaian pengganti pada output HIGH adalah sebagai berikut:

Rangkaian pengganti
Rangkaian pengganti

V2 adalah memodelkan output ESP8266 pada keadaan HIGH yaitu 2.64 volt

Rb adalah resistor antara output ESP8266 dan transistor.

Vbe adalah memodelkan tegangan antara pin basis dan emiter pada transistor.

Dari data tersebut maka dapat dihitung berapa nilai Rb yang diperlukan.

V2 = Ib x Rb + Vbe

Rb = (V2 – Vbe ) / 1 mA = (2.64-0.6) / 1 mA = 2040 ohm

Nilai Rb yang diperlukan adalah 2040 ohm. Resistor 2040 ohm tidak ada di deret E12 , jadi kita dapat dekati dengan 1800 ohm atau 2200 ohm. Namun kita mesti hitung ulang arus basis Ib pada kedua alternatif itu.

V2 = Ib x Rb + Vbe

Ib = (V2-Vbe)/Rb

Jika Rb=1800 maka Ib= (2.64-0.6)/1800 = 1.13 mA

Jika Rb=2200 maka Ib= (2.64-0.6)/2200 = 0.927 mA

Kita ambil saja Rb = 1800 ohm, dengan Ib = 1.13 mA. Lebih besar sedikit dari target 1 mA, tapi masih jauh di bawah batas 12 mA.

Memilih Transistor

Kita coba dulu menggunakan model transistor NPN yang umum di pasaran, misal 2N3904.

Transistor NPN 2N3904
Transistor NPN 2N3904

Sifat penting 2N3904 untuk aplikasi relay:

  • Arus kolektor maksimum 200 mA
  • Penguatan arus hfe=30 ~ 300. Nilai ini termasuk toleransi pabrik dan juga tergantung dari temperatur transistor.

Perhitungan arus kolektor maksimal:

Ic = hfe x Ib = 30 x 1.13 = 33.9 mA

Maka jika arus relay yang diperlukan kurang dari 33.9 mA, maka rangkaian ini dapat dipakai dengan Rb = 1800 mA.

Jika diperlukan arus relay lebih dari 33.9 mA, maka kita dapat melakukannya dengan memperbesar Ib dengan mengurangi nilai Rb.

Misal dengan Ib = 6 mA , maka Ic = 30 x 6 = 180 mA

Jika dengan memperbesar Ib arus kolektor masih di bawah yang diperlukan, maka kita perlu menggunakan 2 buah transistor supaya penguatan total dapat diperoleh.

Peranan Dioda

Pada rangkaian pengendali relay tersebut ada sebuah dioda yang arahnya ke atas. Dioda ini berfungsi agar ketika transistor dimatikan, arus dari kumparan relay akan masuk ke dioda tersebut, sehingga tidak menghantam transistor. Jika transistor dihantam arus dari kumparan, maka transistor dapat rusak. Tipe dioda yang dipakai tidak kritis asalkan dapat dilalui arus sebesar arus relay (asumsi puluhan mA), kita bisa pakai yang umum di pasaran seperti 1N4001.

Dioda silikon 1N4001
Dioda silikon 1N4001

Sumber

Modul WiFi ESP-201 Berbasis ESP8266

Berikut ini modul WiFi ESP-201 yang baru saja datang,  belum sempat dicoba.

Modul ESP-201
Modul ESP-201 bagian atas

Modul ESP-201
Modul ESP-201 bagian bawah

Daftar pin pada modul ESP-201 (Ref: http://smarpl.com/content/esp8266-esp-201-module-first-impressions)

Pin pada ESP-201
Pin pada ESP-201

Penjual Online

Referensi Breakout Board ESP-201

Referensi ESP8266