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)
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.
Skema rangkaian NodeMCU Devkit V1.0 KonektorSkema rangkaian NodeMCU Devkit V1.0 Catu DayaSkema rangkaian NodeMCU Devkit V1.0 SerialSkema rangkaian NodeMCU Devkit V1.0 Inti
Referensi
Situs Resmi NodeMCU https://www.nodemcu.com/index_en.html
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
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.
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
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.
ESP8266Modul ESP32 LOLIN32
Berikut ini tabel perbandingan kekuatan dari prosesor yang dipakai, dilihat dari clock, flash memory dan static RAM.
Model
Clock
Flash Memory
Static RAM
ATMega328
16 MHz
32 kB
2 kB
STM32F103C8T
72 MHz
64 kB
20 kB
LPC1769
100 MHz
512 kB
64 kB
ESP32
240 MHz
external (typical 4 MB)
520 kB
ESP8266
160 MHz
external
80 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:
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
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.
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
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
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.