Anda di halaman 1dari 10

LECTURE NOTES

Internet Of Things (IOT)

D5512 – Abba Suganda Girsang

Session 04
Basic Microcontroller

Code_Course – Name_Course
1. Elektronika Dasar

Komponen Elektronika adalah elemen dasar yang digunakan untuk membentuk suatu rangkaian
elektronika dan biasanya dikemas dalam bentuk diskrit dengan dua atau lebih terminal
penghubung. Setiap komponen elektronika memiliki fungsinya masing-masing dalam suatu
rangkaian elektronika, ada yang berfungsi sebagai penghambat, ada yang berfungsi sebagai
penguat, ada yang berfungsi sebagai penghantar, ada juga yang berfungsi sebagai penyaring dan
ada yang berfungsi sebagai pengendali. Komponen-komponen Elektronika tersebut juga memiliki
nilai dan tipenya masing-masing sehingga dapat menjalankan fungsinya sesuai dengan keinginan
para perancang rangkaian elektronika. Berdasarkan karakteristiknya, Komponen Elektronika dapat
diklasifikasikan menjadi dua kelompok utama, yaitu komponen elektronika aktif dan komponen
elektronika pasif. Adapun komponen pasif dan aktif dapat dilihat pada Gambar 4.1

Gambar 4.1 Komponen Elektronika Aktif dan Pasif

Code_Course – Name_Course
Komponen Elektronika Aktif adalah jenis komponen elektronika yang memerlukan arus
eksternal untuk dapat beroperasi. Dengan kata lain, komponen elektronika aktif hanya dapat
berfungsi apabila mendapatkan sumber arus listrik dari luar (eksternal).

Komponen-komponen elektronika yang digolongkan sebagai komponen Aktif adalah Dioda,


Transistor dan IC (Intragrated Circuit) yang terbuat dari bahan semikonduktor seperti silikon,
germanium, selenium dan metal oxides.

– Dioda. Dioda adalah Komponen Elektronika Aktif yang berfungsi untuk menghantarkan arus
listrik ke satu arah dan menghambat arus listrik dari arah sebaliknya. Dioda terdiri dari dua
Elektroda yaitu Anoda dan Katoda. Yang termasuk dalam keluarga Dioda diantaranya seperti LED
(Light Emitting Diode), DIAC, Dioda Zener, Dioda Penyearah, Dioda Foto, Dioda Schottky,
Dioda Tunnel dan Dioda Laser.

– Transistor. Transistor adalah Komponen Elektronika Aktif yang berfungsi sebagai Penguat,
Penyearah, Pengendali, Mixer dan Osilator. Komponen yang termasuk dalam keluarga Transistor
diantaranya seperti Transistor Bipolar (NPN & PNP), Transistor Foto, TRIAC, MOSFET, JFET
dan UJT.

– IC (Integrated Circuit/Sirkuit Terpadu). Integrated Circuit atau sering disingkat dengan IC adalah
Komponen Elektronika Aktif yang terdiri dari gabungan ratusan bahkan jutaan Transistor, Resistor
dan komponen lainnya yang diintegrasi menjadi sebuah Rangkaian Elektronika dalam sebuah
kemasan kecil. Berdasarkan fungsinya, IC dapat dikelompokan lagi menjadi IC Pewaktu (Timer),
IC Comparator (Pembanding), IC Logic gates (Gerbang Logika), IC Switching (Pengendali) dan
IC Amplifier (Penguat).

Contoh pada Komponen Dioda, seperti yang disebutkan sebelumnya bahwa Dioda merupakan
komponen elektronika aktif sehingga memerlukan sumber arus listrik dari luar (eksternal) untuk
mengoperasikannya. Sebuah Dioda yang dipasangkan pada suatu rangkaian elektronika yang
telah diberikan arus listrik tidak akan bekerja (beroperasi) untuk menghantarkan arus listrik apabila
tegangan yang diterimanya belum mencapai titik tegangan tertentu. Khusus untuk dioda yang
terbuat dari bahan silikon memerlukan tegangan 0,7V sedangkan untuk dioda yang terbuat dari
bahan germanium memerlukan 0,3V untuk dapat bekerja sesuai dengan fungsinya.

Code_Course – Name_Course
Komponen Elektronika Pasif adalah jenis Komponen elektronika yang tidak memerlukan
sumber arus listrik eksternal untuk pengoperasiannya. Komponen-komponen elektronika yang
digolongkan sebagai komponen pasif diantaranya seperti Resistor, Kapasitor dan Induktor.

– Resistor. Resistor atau Hambatan adalah Komponen Elektronika Pasif yang berfungsi untuk
menghambat dan mengatur arus listrik dalam suatu rangkaian Elektronika. Satuan Nilai Resistor
atau Hambatan adalah Ohm (Ω). Komponen-komponen yang termasuk dalam keluarga Resistor
diantaranya seperti Resistor bernilai tetap, resistor yang dapat diatur hambatannya (variable
resistor atau potensiometer), LDR (Light Dependent Resistor) dan Thermistor (PTC dan NTC).

– Kapasitor. Kapasitor (Capacitor) atau Kondensator (Condensator) adalah Komponen


Elektronika Pasif yang dapat menyimpan muatan listrik dalam waktu sementara dengan satuan
kapasitansinya adalah Farad. Komponen-komponen yang termasuk dalam keluarga Kapasitor
tersebut diantaranya adalah Kapasitor nilai tetap (Keramik, kertas, mika, tantalum dan elektrolit),
kapasitor yang nilai dapat diatur kapasitasnya (VARCO dan Trimmer).

– Induktor. Induktor atau dikenal juga dengan Coil adalah Komponen Elektronika Pasif yang
terdiri dari susunan lilitan Kawat yang membentuk sebuah Kumparan. Induktor akan menimbulkan
medan magnet saat dialiri arus listrik. Satuan Induktansi pada Induktor adalah Henry (H).
Komponen-komponen yang termasuk dalam keluarga Induktor diantaranya seperti air core
inductor, iron core inductor, ferrite core inductor, torroidal core inductor, laminated core inductor
dan variable inductor.

Contoh pada komponen Resistor. Tidak seperti Dioda, Resistor tidak memerlukan tegangan 0,3V
atau 0,7V untuk bekerja. Begitu Resistor diberikan tegangan, resistor mulai bekerja secara
otomatis tanpa harus menunggu hingga mencapai tegangan tertentu.

2. Node MCU-ESP2866

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

Code_Course – Name_Course
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. Dalam seri tutorial
ESP8266 embeddednesia pernah membahas bagaimana memprogram ESP8266 sedikit
merepotkan karena diperlukan beberapa teknik wiring serta tambahan modul USB to serial untuk
mengunduh program. 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 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

Code_Course – Name_Course
berdasarkan bahasa pemrograman eLua, yang kurang lebih cukup mirip dengan javascript.
Beberapa fitur tersebut antara lain

1. 10 Port GPIO dari D0 – D10


2. Fungsionalitas PWM
3. Antarmuka I2C dan SPI
4. Antarmuka 1 Wire
5. ADC

Gambar 4.2 berikut menjelaskan posisi pin -pin dari ESP-12E

1. RST : berfungsi mereset modul

2. ADC: Analog Digital Converter. Rentang tegangan masukan 0-1v, dengan skup nilai
digital 0-1024

3. EN: Chip Enable, Active High

4. IO16 :GPIO16, dapat digunakan untuk membangunkan chipset dari mode deep sleep

Code_Course – Name_Course
5. IO14 : GPIO14; HSPI_CLK

6. IO12 : GPIO12: HSPI_MISO

7. IO13: GPIO13; HSPI_MOSI; UART0_CTS

8. VCC: Catu daya 3.3V (VDD)

9. CS0 :Chip selection

10. MISO : Slave output, Main input

11. IO9 : GPIO9

12. IO10 GBIO10

13. MOSI: Main output slave input

14. SCLK: Clock

15. GND: Ground

16. IO15: GPIO15; MTDO; HSPICS; UART0_RTS

17. IO2 : GPIO2;UART1_TXD

18. IO0 : GPIO0

19. IO4 : GPIO4

20. IO5 : GPIO5

21. RXD : UART0_RXD; GPIO3

22. TXD : UART0_TXD; GPIO1

Ulasan secara detail mengenai spesifikasi chip ESP-12E diluar lingkup tulisan ini.

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

Code_Course – Name_Course
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.

3. Node MCU- Arduiono

General-purpose input/output (GPIO)

• Pin pada IC

• Berupa pin input atau pin output, yang perilakunya dapat dikontrol saat dijalankan.

• Diberi nomor berbeda dari notasi GPIO internal ESP8266 seperti yang ditunjukkan pada
tabel di bawah ini. Misalnya, pin D0 pada kit Dev NodeMCU dipetakan ke pin 16 GPIO
internal ESP8266.

• GPIO yang ditunjukkan dalam kotak biru (1, 3, 9, 10) sebagian besar tidak digunakan untuk
tujuan GPIO pada Dev Kit.

• ESP8266 adalah System on Chip (SoC) seperti chip prosesor.

• Prosesor ini memiliki sekitar 16 jalur GPIO, beberapa di antaranya digunakan secara
internal untuk berinteraksi dengan komponen lain dari SoC, seperti memori flash.

• Karena beberapa baris digunakan secara internal dalam SoC ESP8266, masih ada sekitar
11 pin GPIO yang tersisa untuk tujuan GPIO. 2 pin dari 11 pin umumnya dicadangkan
untuk RX dan TX, untuk berkomunikasi dengan PC host. Sehingga hanya menyisakan 9
pin GPIO yaitu D0 hingga D8.

Code_Course – Name_Course
• pin RX, TX, SD2, SD3 tidak banyak digunakan sebagai GPIO karena digunakan untuk
proses internal lainnya.

Pin Nama pada Kit


ESP8266 Nomor Pin GPIO Internal
NodeMCU

D0 GPIO16

D1 GPIO5

D2 GPIO4

D3 GPIO0

D4 GPIO2

D5 GPIO14

D6 GPIO12

D7 GPIO13

D8 GPIO15

D9 / RX GPIO3

D10 / TX GPIO1

D11 / SD2 GPIO9

D12 / SD3 GPIO10

• pin SD3 (D12) merespon fungsi GPIO/PWM/interrupt.

• pin D0 / GPIO16 hanya dapat digunakan sebagai GPIO baca / tulis, tidak ada fungsi khusus
yang didukung.

• ESP8266 memiliki ADC 10-bit internal dengan hanya satu saluran ADC untuk membaca
tegangan analog dari perangkat eksternal. Saluran ADC pada ESP8266 multipleks dengan
tegangan baterai. Kita dapat mengaturnya untuk mengukur tegangan sistem board atau
tegangan eksternal. Rentang tegangan input untuk pin ADC (eksternal) adalah 0 - 1.0V.
Pengaturan mode ADC, apakah tegangan sistem atau tegangan eksternal sedang diukur
tersedia dalam 107 byte "esp_init_data_default.bin" (0-127 byte) firmware. Byte ke-107

Code_Course – Name_Course
dari esp_init_data_default.bin (0 - 127 byte) adalah "vdd33_const". Harus diatur ke 0xFF
yaitu 255 untuk membaca tegangan sistem yaitu tegangan pada pin VDD ESP8266. Untuk
membaca tegangan eksternal pada pin ADC itu harus diatur ke tegangan catu daya pada
pin VDD ESP8266. Rentang tegangan kerja ESP8266 adalah antara 1,8V dan 3,6V, dan
unit "vdd33_const" adalah 0,1V, oleh karena itu, kisaran nilai "vdd33_const" adalah 18
hingga 36.

Code_Course – Name_Course

Anda mungkin juga menyukai