Anda di sini

Elektronika

Pengenalan Mikrokontroler, Development Board, NodeMCU, ESP8266

Aditya Suranata - 24 September 2019 12:40:49 0

Materi ini menjabarkan tentang dasar mikrokontroler secara umum serta menjelaskan tentang berbagai pemanfaatan mikrokontroler pada pembuatan teknologi otomasi sebagai sarana pendukung kegiatan industri. Materi ini juga menjabarkan tentang proses bagaimana caranya mengkombinasikan antara hardware dan software yang didesain khusus untuk menghasilkan sebuah aplikasi yang digunakan untuk tujuan tertentu. Teknologi internet of things (IoT) juga dijelaskan secara konsep besar, perkembangannya disaat sekarang termasuk implementasi produk-produknya, serta mencoba sendiri bagaimana membuat perangkat yang menggunakan teknologi IoT.

Manfaat yang Diharapkan

Peserta diharapkan dapat mengetahui, memahami, mampu menjelaskan konsep dasar dari mikrokontroler serta dapat menciptakan berbagai bentuk aplikasinya dalam menunjang dan/atau mendukung kegiatan industri. Peserta juga diharapkan mampu mengimplementasikan sistem tertanam dan komponen pendukungnya untuk menghasilkan sebuah perangkat aplikasi tepat guna dengan teknologi IoT.

Pengenalan Mikrokontroler

Pada sesi ini dibahas mengenai apa itu mikrokontroler, bagaimana desain arsitekturnya, bagaimana caranya belajar mengembakan perangkat berbasis mikrokontroler, platform mikrokontroler yang umum digunakan, dan pengenalan NodeMCU sebagai salah satu kit mikrokontroler untuk belajar membuat perangkat IoT.

Kebanyakan aplikasi/penerapan IoT memerlukan lebih dari sekedar penambahan sensor pada suatu alat/objek fisik. Berbicara tentang 'perangkat pintar/smart object', mereka biasanya berbicara mengenai penambahan suatu mikrokontroler yang terhubung ke Internet (juga disebut dengan MCU/Micro-controller Unit).

Mikrokontroler dapat diibaratkan sebagai komputer kecil yang ditambahkan ke objek fisik atau ruang manapun untuk memberikan mereka 'otak'. MCU berisi satu atau lebih prosesor komputer, dilengkapi dengan memori dan peralatan input/output yang dapat diprogram - semua tertanam dalam satu sirkuit kecil yang terintegrasi.

MCU berbeda dengan mikroprosesor yang dapat ditemukan pada komputer personal (PC/Desktop/Laptop) karena mereka dedesain khusus untuk embedded application atau sistem tertanam, dimana kemampuan komputasi bukanlah tujuan utama dari penerapannya.

Meskipun MCU memiliki kemampuan yang lebih kecil daripada mikroprosesor standar yang digunakan oleh komputer, dikarenakan harganya yang rendah membuat MCU menjadi pilihan praktis untuk menambahkan kemampuan komputasi pada suatu objek, ruang, atau proses yang belum memilikinya.

Mari bayangkan suatu objek, ruang, atau proses seperti gudang, jembatan, atau mesin industri yang khususnya tidak berisi komputer. Untuk kasus seperti itu, menambahkan suatu mikrokontroler yang terhubung ke Internet akan menyediakan kemampuan komputasi yang memadai untuk meningkatkan objek tersebut tanpa perlu diberatkan dengan biaya dan kerumitan yang lebih tinggi dari prosesor komputer standar. Dengan kata lain, sebuah MCU cukup untuk mengatasi permasalahan atau meningkatkan fungsi suatu objek

Fitur Kunci dari Mikrokontroller

Agar dapat menentukan mikrokontroler mana yang dapat digunakan dengan paling maksimal untuk aplikasi yang akan dibuat, kita perlu mengetahui beberapa fitur kunci dari mikrokontroler dan apa saja fungsinya. Berikut adalah beberapa speksifikasi yang perlu diketahui dan harus perhitungkan ketika membaca dokumen data sheet dari suatu MCU:

  • Bits: Mikrokontroler biasanya dijual berdasarkan jumlah bit yang mereka tawarkan. Ini berdampak pada kecepatan yang mampu mereka lakukan untuk komputasi yang tidak sepele.
  • RAM: RAM adalah memori berkecepatan tinggi yang tidak menyimpan data ketika daya mati. Semua MCU memiliki sejumlah RAM, yang memungkinkannya untuk menyelesaikan berbagi aksi dengan cepat. Lebih banyak jumlahnya, lebih baik, namun jumlah yang besar tentunya meningkatkan biaya/harga dari MCU.
  • Flash: Flash adalah memori komputer yang tetap menyimpan data meskipun daya mati. Tentunya fitur ini cukup penting, dan sangat berguna untuk penyimpanan offline.
  • GPIO: GPIO singkatan dari pin untuk general-purpose input/output. Ini adalah pin-pin yang akan kita gunakan untuk menghubungkan sensor-sensor dan aktuator ke MCU dan Internet. Jumlah pin yang tersedia dapat beragam, mulai dari satu hingga ratusan, bergantung pada mikrokontrolernya.
  • Konektivitas: Ini adalah bagaimana boardnya (dan juga aplikasinya) dapat terhubung ke Internet, baik melalui Wi-Fi, Ethernet, atau cara lainnya. Ini adalah aspek yang penting dari aplikasi sensor yang saling terhubung, sehingga topik ini akan diangkat dengan lebih detail pada bagian selanjutnya.
  • Konsumsi daya: Konsumsi daya adalah hal yang sangat penting untuk penerapan sensor yang terhubung ke jaringan, khususnya ketika perangkatnya bergantung pada sumber daya dari baterai atau panel surya. Spesifikasi ini akan memberitahu kita seberapa rakuskah MCUnya secara bawaan dan apakah ia dapat mendukung teknik pemrograman yang sadar akan penggunaan daya.
  • Komunitas dan tools pengembangan: Tersedianya tools pemrograman dan pengembangan , dokumentasi, dan komunitas yang telah matang adalah salah satu aspek yang sangat penting untuk membantu kita membangun dan mengembangkan program yang akan dapat berjalan pada MCU yang kita pilih untuk aplikasi kita.

Sistem Operasi Mikrokontroler

Sekarang, mari bicara tentang sistem operasi yang berjalan di atas perangkat keras mikrokontroler. Seperti halnya personal komputer yang juga menjalankan sistem operasi seperti Windows, MCU juga menjalankan suatu sistem operasi.

Kita memiliki tiga pilihan utama:

  • Bare Metal: Artinya bahwa, dengan kata lain, tanpa sistem operasi. Ini adalah pendekatan asli untuk bekerja dengan mikrokontroler, dan masih sangat populer karena sifatnya yang biayanya tepat sasaran dan efisien. Kekurangan utamanya adalah pilihan ini menyediakan dukungan yang minim bagi pengembang perangkat lunaknya.
  • RTOS: Merukapan singkatan dari "Real-Time Operating System". Suatu sistem berbasis RTOS menyediakan garansi pasti dalam kaitannya dengan waktu dimana suatu operasi akan selesai. Ini sangat penting untuk mengkoordinasikan mesin-mesin fisik.
  • Linux: Lebih mudah diprogram dan dihubungkan ke Internet. Ia berprilaku lebih mirip dengan "komputer beneran" sebagaimana rata-rata orang mungkin mengetahuinya, yang mana sangat cocok untuk berbagai alasan yang sebelumnya disampaikan. Namun, karena hal ini, ia tidak menyediakan garansi ketepatan pewaktuan apapun.

Bare Metal

RTOS

Linux

Pendekatan asli dan yang paling sederhana

Memberikan jaminan untuk waktu pemrosesan dengan peristiwa input / output

Sistem operasi open-source berbasis UNIX yang sangat populer, aslinya diperuntukan bagi personal komputer

Program berjalan langsung tanpa sistem operasi

Program berjalan di dalam sistem operasi

Jauh lebih aksesibel dan mudah untuk diprogram

Kode langsung bicara dengan komponen komputasi

Memiliki kemampuan untuk menjeda tugas dan memiliki kemampuan untuk memproritaskan eksekusi tugas yang berprioritas tinggi

Komunitas yang matang yang berisi orang-orang yang dapat membantu dan memberikan dukungan

Dukungan pemrograman yang terbatas

Cepat untuk disetup namun memerlukan banyak waktu untuk men-debug (melacak kesalahan)

Lebih susah untuk mendapatkan performa real-time

Papan Pengembangan / Development Board

MCU umumnya dipasarkan dengan disertai suatu papan tambahan yang disebut dengan "development board". Development board menyediakan semua hal yang diperlukan untuk memprogram MCU. Ini adalah pilihan yang sempurna untuk mulai membangun sistem yang terhubung.

Development board adalah printer circuit board (PCB) yang berisi sebuah MCU dan komponen pendukungnya yang diperlukan untuk memprogram si MCU.

Isinya termasuk komponen-komponen seperti sumber daya, dukungan untuk menghubungkan berbagai sensor, dan terkadang bahkan sensor dan aktuator yang telah terpasang on-board.

Development board sangat berguna untuk melakukan prototyping/purwarupa sebelu fabrikasi final dari suatu solusi khusus dan sangat populer bagi berbagai insinyur yang bekerja di bidang pengembangan embedded system.

Development board memungkinkan pengguna untuk dengan cepat menghubungkan sensor dan aktuator (jika mereka tidak disertakan langsung dengan boardnya) dan perangkat lunak pendukungnya memfasilitasi pembuatan dan penerapan kode programnya.

Memilih Mikrokontroler untuk Sistem IoT kita

Terdapat banyak jenis development board dan mikrokontroler tersedia dari berbagai perusahaan seperti: TI, Samsung, Arduino, Raspberry Pi dan lainnya. Memilih yang mana yang cocok dengan kita bergantung pada beberapa faktor yang juga sangat beragam, tergantung dari sifat aplikasi yang akan kita kembangkan:

  • Kompatibilitas: Apakah MCUnya mendukung sensor dan aktuator yang ingin kita gunakan? Berdasarkan sensor dan aktuator, kita mungkin perlu banyak atau hanya beberapa port/pin GPIO. Kita mesti memastikan apakah kita punya cukup port yang tersedia.
  • Arsitektur: Apakah arsitekturnya cukup canggih untuk menangani kompleksitas dari program kita? Kebanyakan aplikasi menggunakan AVR, ARM, MIPS, atau x86. Memilih salah satunya bergantung pada kebutuhan funsional dari aplikasi kita dan seberapa banyak daya komputasi yang diperlukan oleh sistem kita.
  • Memori: Apakah MCUnya memiliki cukup memori - RAM dan Flash - untuk program kita? Sangat direkomendasikan untuk memilih MCU yang memiliki jumlah memori ekstra untuk pembaharuan dimasa yang akan datang. Ini akan banyak menghemat waktu, biaya, dan menghindari kepala pusing dalam perjalanan yang cukup panjang!
  • Ketersediaan: Apakah kita bisa mendapatkan MCUnya dengan mudah, dalam jumlah yang kita perlukan? Ini adalah faktor yang sangat penting untuk dipertimbangkan disaat awal proses pengembangan, khususnya apabila kita berencana untuk mengembangkan sistem kita lebih besar lagi nanti.
  • Daya: Sebarapa besar daya yang diperlukan MCUnya? Apakah ia nantinya harus dinyalakan dari sumber daya kabel atau kita bisa menggunakan baterai? Efisiensi daya sangatlah penting untuk dipertimbangkan untuk aplikasi IoT industri karena kita tentunya ingin meminimalisir keperluan untuk mengirim petugas pemeliharaan untuk menginspeksi infrastruktur yang letaknya jauh di pinggiran.
  • Biaya: Seberapa banyakah setiap unit alatnya menghabiskan biaya? Apakah harganya cocok dengan nilai yang akan dihasilkan? Sekali lagi, kita perlu memikirkan tentang mengembangkan projeknya lebih jauh lagi nanti. Pastikan bahwa anggaran IoT kita mendukung termasuk untuk pengadaaan lebih banyak lagi MCU yang kita pilih.
  • Dukungan pengembangan: Apakah dokumentasi yang berisi tata cara untuk berbagai aspek dan fitur dari MCU yang kita pilih tersedia dengan baik? Bagaimanakan kondisi komunitas yang menggunakan board ini? Faktor-faktor tersebut sangat krusial untuk dapat mengambil keputusan dan menggunakan MCU kita dengan sebagaimana mestinya. Komunitas online yang bagus dapat membantu membimbing kita saat kita menghadapi kebuntuan atau mendapatkan masalah dengan implementasi kita.

Pada akhirnya, kita bisa dan harus melakukan riset terlebih dahulu untuk dapat membuat keputusan yang tepat berdasarkan informasi. Namun, sebagaimana dengan keseluruhan teknologi baru ini, kita akan belajar jauh lebih banyak seiring kita melakukan eksperimen.

NodeMCU Development Board

NodeMCU merupakan development board yang juga menyediakan firmware berbasis eLua untuk chip WiFi ESP8266 dari vendor Espressif. Firmwarenya berbasis Espressif NON-OS SDK dan menggunakan file system berbasis spiffs. Repositori kodenya sendiri berisi 98.1% C-code.

Firmware NodeMCU adalah projek pendukung dari development kit NodeMCU yang sangat populer, yang juga menyertakan development board open-source siap pakai yang menggunakan chip ESP8266-12E.

ESP8266 Arduino Code

Arduino (web: arduino.cc) merupakan platform pengembangan perangkat keras mikrokontroler yang juga menyediakan perangkat lunak untuk memprogram berbagai macam mikrokontroler.

Sebagaimana Arduino.cc mulai mengembangkan board MCU baru yang berbasis prosesor non-AVR seperti ARM/SAM MCU seperti digunakan pada Arduino Due, mereka tentunya perlu memodifikasi Arduino IDE sehingga bisa dengan mudah merubah IDEnya untuk mendukung tool chain alternatif yang memungkinkan Arduino C/C++ dikompilasi ke jenis prosesor baru tersebut.

Beberapa penggemar kreatif ESP8266 telah mengembangkan Arduino core untuk chip SoC WiFi ESP8266 yang tersedia secara online di https://github.com/esp8266/Arduino. Inilah apa yang secara populer disebut dengan "ESP8266 Core untuk Arduino IDE" dan telah menjadi salah satu platform pengembangan perangkat lunak untuk berbagi modul berbasis ESP8266 dan development boardnya, termasuk NodeMCU.

Kelebihan Platform NodeMCU Relatif ke Arduino

  • Berbiaya rendah
  • Dukungan terintegrasi untuk jaringan WiFi
  • Ukuran board yang lebih kecil
  • Konsumsi energi yang lebih rendah

Kekurangan

  • Perlu mempelajari bahasa baru dan IDE baru
  • Pinout yang lebih sedikit
  • Dokumentasi yang masih sedikit langka

Pemrograman NodeMCU dapat dilakukan dengan mudah sebagaimana menggunakan Arduino. Perbedaan utamanya adalah pada bagian penomeran pin dari boardnya, seperti terlihat pada gambar berikut:

Terdapat 6 ekstra GPIO pin. Semuanya dapat diprogram sebagai PWM, I2C, 1-Wire, kecuali GPIO16 (D0). Projek NodeMCU sendiri menggunakan file system SPIFFS untuk menyimpan file di chip flash memory.

907
Daftar Artikel Terkait
Image

Aditya Suranata

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.

Artikel Menarik Lainnya
Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.