Setiap kali ketika orang berbicara mengenai jenis Arduino board, maka mereka akan berbicara tentang Arduino Uno. Uno adalah papan Arduino yang paling populer, tetapi itu bukanlah satu-satunya Arduino. Ada sekitar dua lusin Arduino board yang dapat Anda pilih untuk membangun proyek Anda. Jika Anda memasukan papan kloningan sebagai variasi Arduino, tentu Anda akan menemukan bahwa Arduino Uno hanyalah satu dari keluarga yang sangat besar.

[Jenis arduino board] Arduino family

Arduino Uno

Arduino menganggap Uno sebagai produk entry-level. Namun, pada kenyataannya Uno adalah konfigurasi Arduino yang paling populer di dunia. Sepak terjangnya sangat familier bagi siapa saja yang telah menggunakan Arduino. Selain itu, sebagian besar Arduino shield di desain agar sesuai dengan Arduino Uno.

Jenis arduino board arduino uno
[Jenis arduino board] Arduino Uno

Arduino Uno sering digunakan sebagai prototyping board, yang pada akhirnya akan menjadi produk akhir berdasarkan Arduino atau yang lebih kecil, masih di seputaran chip mikrokontroler ATMega328. Chip ini merupakan perangkat yang menjadi dasar Arduino Uno. 

Uno memiliki 14 pin I/O digital, 6 di antaranya mampu menghasilkan Pulse Width Modulator (PWM). Selain itu, Uno juga memiliki 6 pin input analog. Arduino Uno board berisi 32 KB memori flash untuk menyimpan program, setengah kilobyte digunakan oleh boot loader dan RAM statis 2 KB di Uno. ATMega328 memiliki clock 16 megahertz, untuk skema lengkap serta tata letak board sirkuit untuk Uno anda dapat melihatnya pada situs resmi Arduino.

Arduino Uno dapat dihidupkan secara langsung melalui port USB yang juga digunakan untuk berkomunikasi dengan komputer. Selain itu, Anda pun dapat menggunakan adaptor 7-12 volt. Sebenarnya, regulator tegangan bawaan Uno mampu menangani tegangan hingga 20 volt, namun pada tegangan yang lebih tinggi akan ada banyak energi panas terhamburkan sehingga ada sedikit energi terbuang. Sedangkan pada pin I/O digital dapat memasok arus hingga 20 miliampere DC.

Kloningan Uno dan official Uno sendiri tersedia dalam sejumlah konfigurasi berbeda. Pada beberapa perangkat, ATMega328 di simpan di dalam soket yang dapat di lepas, sehingga memungkinkan untuk di gunakan pada perangkat lain. Sedangkan ada juga konfigurasi Uno lain yang memiliki versi fixed, di mana chip ini tersolder langsung kepada board.

Jika Anda ingin mulai mempelajari Arduino, saya rekomendasikan untuk menggunakan Arduino Uno atau kloningannya, ini adalah cara termurah dan bagus untuk memasuki dunia mikrokontroler Arduino yang menyenangkan.

Arduino Mega

Arduino dapat mencakup banyak proyek yang berbeda-beda. Namun, adakalanya Anda membutuhkan lebih banyak pin I/O atau memiliki kemampuan yang lebih banyak untuk komunikasi serial. Maka, disarankan untuk menggunakan Arduino Mega.

jenis arduino board arduino mega
[Jenis arduino board] Arduino mega

Mega adalah kakak Uno. Jenis Arduino board ini diliputi oleh 54 pin I/O dan 15 pin dapat digunakan untuk output PWM. Selain itu, Mega memiliki 16 pin input analog.

Arduino Mega didasarkan pada Mikrokontroler ATmega2560 dan memiliki 256 kilobyte memori flash untuk mendukung kapasitas penyimpanan program yang jauh lebih besar daripada Uno. Arduino Mega memiliki 8 kilobyte SRAM dan sama seperti Uno yang beroperasi pada 16 megahertz.

Mega adalah perangkat yang lebih besar daripada Uno, akan tetapi pin-out tetap sama, pinout Uno adalah bagian dari pinout Mega. Sehingga memungkinkan untuk menggunakan shield yang sama yang dirancang untuk Uno pada Mega.

Seperti halnya Uno, Mega dapat dinyalakan menggunakan port USB atau melalui adaptor eksternal 7 -12 volt.

Jadi, jika Anda memiliki proyek yang terlalu besar untuk Arduino Uno. Maka, Mega adalah pilihan yang tepat unduk digunakan. Satu hal penting yang patut untuk diketahui, bahwa, perangkat Arduino Mega ini digunakan sebagai jantung dari perangkat printer 3D.

Arduino Nano

Pada skala yang berkebalikan keluarga Arduino memiliki Arduino Nano, Arduino berukuran kecil yang dapat digunakan pada kondisi ruangan terbatas. Meskipun memiliki ukuran yang kecil, Nano memiliki sejumlah pin input dan output, namun anehnya ia memiliki lebih banyak pin I/O dibandingkan dengan Arduino Uno.

Jenis arduino board arduini nano
[Jenis arduino board] Arduino nano

Pengurangan dimensi pada Arduino Nano ini dapat terjadi karena menggunakan board sirkuit 4-lapisan, berkebalikan dengan board 2-lapisan yang digunakan pada Uno dan Mega. Arduino Nano juga memiliki komponen pemasangan permukaan yang di pasang pada kedua sisi papannya. Tidak seperti Uno atau Mega, Nano menggunakan pin sebagai konektor soket. Port USB pada Nano adalah port USB Mini-B. Nano tidak kompatibel secara fisik dengan shield yang digunakan untuk Arduino Uno, karena memiliki ukuran yang jauh lebih kecil.

Nano memiliki 14 pin I / O digital, enam di antaranya dapat digunakan untuk PWM - yang memiliki kesamaan dengan Arduino Uno. Nano memiliki 8 pin input analog yang artinya dua pin lebih banyak daripada Uno. Arduino Nano ini memiliki flash memori yang lebih kecil, yaitu 16 kilobyte (meskipun ada beberapa Nano memiliki flash memori 32 kilobyte). Ada beberapa Nano yang hanya memiliki 1 Kb SRAM sementara yang lain memiliki 2 kilobyte.

Konfigurasi yang berbeda pada board Arduino Nano adalah karena adanya dua prosesor berbeda yang digunakan pada desain mereka. Beberapa Arduino Nano menggunakan ATmega168 sementara yang lain menggunakan ATmega328, yang sama digunakan pada Uno.  Jika Anda ingin membuat desain miniatur, maka Nano adalah pilihan yang sangat tepat.

Arduino Mikro

Jika Anda membutuhkan board yang lebih kecil lagi dari Nano maka anda dapat melihat Arduino Mikro. Jenis ini adalah yang terkecil dari Arduino resmi. Ukuran yang sangat kecil ini membuatnya mudah untuk masuk ke papan breadboard tanpa harus menyolder.

jenis arduino board arduino micro
[Jenis arduino board] Arduino Mikro

Arduino Mikro menggunakan prosesor ATmega32u4. Prosesor ini memiliki built-in komunikasi USB. Tidak seperti pada Arduino lainnya, Mikro tidak memiliki USB kit terpisah. 

Arduino mikro memiliki 20 pin I/O digital yang dapat digunakan untuk PWM dan 12 pin sebagai input analog. Mikro memiliki konektor micro USB pada bagian atas, dan dengan bentuknya yang kecil, memungkinkan untuk meletakkannya dengan mudah di atas papan breadboard atau papan sirkuit kecil.

Kesimpulan

Seperti yang telah anda ketahui pada artikel ini dari berbagai jenis arduino board yang berbeda. Perangkat ini menjadi serbaguna karena memiliki basis code yang sama antar satu perangkat dengan lainnya.

Selain keluarga Arduino Anda pun dapat mulai untuk mengenali jenis-jenis arduino sensor sebelum membelinya lalu mulai membangun proyek inovatif Anda.

Tunggu apalagi, segera pilih jenis arduino board anda dan mulai membangun proyek hari ini juga!!

Rekomendasi Artikel:

Apa itu NodeMCU? Papan sirkuit IoT yang murah meriah

Apakah anda pernah mendengar istilah "Arduino"? Namun, anda tidak mengetahui apa itu? Pada artikel ini, anda akan mempelajari apa itu arduino dan fungsinya.

Perkenalan Arduino

apa itu arduino dan fungsinya
[apa itu arduino dan fungsinya] Arduino family

Arduino adalah open-source hardware dan sofware yang mudah digunakan untuk membuat proyek elektronik. Semua papan Arduino memiliki satu kesamaan yaitu mikrokontroler. Mikrokontroler pada dasarnya adalah komputer yang sangat kecil.

Dengan Arduino, Anda dapat merancang dan membuat perangkat yang dapat berinteraksi dengan lingkungannya. Papan Arduino pada dasarnya adalah alat untuk mengendalikan elektronik. Mereka dapat membaca input dengan mikrokontroler onboard mereka (seperti. Lampu pada sensor, objek yang dekat dengan sensor) dan mengubahnya menjadi output (Menggerakkan motor, membunyikan alarm, menyalakan LED, menampilkan informasi pada LCD).

Namun, untuk melakukan ini, pertama-tama Anda harus memprogram Arduino board. Bagaimana Anda memprogram Arduino? Anda dapat menggunakan open source software yang disebut Arduino IDE yang akan dijelaskan lebih lanjut.

Dengan Arduino, makers dan electricians dapat dengan mudah membuat prototype dan membuat ide-ide mereka menjadi hidup.

Apa itu arduino dan fungsinya?

Referensi: Viral Hatrix

Dengan Arduino, Raspberry Pi, dan NodeMCU, Anda dapat membuat dengan sendiri rumah yang pintar, otomatis dengan menggunakan pintu smart RFID pengunci otomatis, kondisi lingkungan (mengukur temperature, kelembaban dan kualitas udara di rumah), motion detection , penyiraman tanaman otomatis, pencahayaan lampu , kamera secara live dan Anda pun dapat mengontrol peralatan rumah tangga Anda melalui aplikasi smartphone! Ini menjadikannya menjadi system home automation yang terintegrasi.

Itu hanya beberapa contoh proyek luar biasa dan keren yang dapat Anda lakukan dengan Arduino Anda! Mungkin Anda dapat melakukan lebih banyak hal dengan Arduino seperti stasiun cuaca, sistem anti-pencurian, dll. Arduino dapat digunakan sebagai otak untuk hampir semua proyek elektronik yang dapat Anda pikirkan. Apa pun yang dapat Anda lakukan dengan Arduino hanya terbatas pada imajinasi Anda!

Mengapa Menggunakan Arduino?

Ada banyak board elekronik dipasaran yang fungsinya sama.Namun, mengapa menggunakan Arduino? Ada banyak alasan yang membuat mikrokontroler ini istimewa. Keuntungan menggunakan Arduino itu diantaranya adalah:

Murah!!

Mudah digunakan dan cocok untuk pemula

Cross-Platform

Arduino IDE juga merupakan cross-platform yang berarti Anda dapat menjalankannya pada platform Windows, Mac OS dan juga Linux dibandingkan dengan sistem mikrokontroler lain yang hanya dapat dijalankan mengunakan Windows.

Variatif

Arduino memiliki banyak variasi untuk Anda pilih sehingga memungkinkan Anda memilih yang paling sesuai dengan proyek Anda. Jika anda memiliki kendala dimensi, Anda bisa mendapatkan Arduino Nano yang berukuran hanya 43,18 mm kali 18,54 mm.

Sebaliknua jiga Anda Membutuhkan lebih banyak ruang memori dan daya pemrosesan. Anda bisa mendapatkan Arduino Mega sendiri. Nanti akan dijelaskan lebih banyak mengenai jenis-jenis Arduino.

Apa Perbedaan fungsi Arduino dengan single board computer?

Perbedaan arduino dan raspberry pi

[apa itu arduino dan fungsinya] perbedaan arduino dan raspberry pi

 

Sebelum membahas tentang Arduino, mungkin beberapa dari Anda bingung dengan Arduino dan Single Board Computer (SBC) yang didasarkan pada mikroprosesor seperti Raspberry Pi. Mari kita hilangkan rasa kebingungan Anda dengan membandingkan Arduino dan salah satu SBC paling populer, Raspberry Pi.

Apa perbedaan diantara keduanya?

Saya harus pilih yang mana?

Jika Anda ingin board yang mudah digunakan untuk menangani tugas berulang yang sederhana seperti membaca cuaca, membuka pintu, mengendarai robot sederhana, menyalakan LED, dll. Arduino adalah pilihan yang tepa.

Namun, jika Anda menginginkan komputer yang beroperasi penuh dan dapat menjalankan fungsi yang lebih rumit serta kemampuan untuk menjalankan banyak tugas, SBC seperti Raspberry Pi 4 akan cocok untuk Anda.

Tentang apa itu Arduino?

Arduino memiliki dua komponen yang harus Anda ketahui, yaitu hardware dan software nya. Untuk bagian hardware, terdiri dari board fisik, sensor dan shield yang digunakan untuk berinteraksi dengan papan.

Hardware

Pada bagian ini, kita akan belajar tentang berbagai macam komponen pada Arduino board dan apa saja fungsinya. Kita akan mempelajari board Arduino UNO karena ini adalah papan paling populer di kalangan Arduino board. Selain itu, ini adalah board terbaik untuk memulai dengan elektronik dan coding. Beberapa board terlihat sedikit berbeda dari yang diberikan di bawah ini, namun sebagian besar Arduino memiliki mayoritas komponen  yang sama.

Komponen pada arduino dan fungsi nya

[apa itu arduino dan fungsinya] Komponen pada arduino

USB Power
Papan Arduino dapat diaktifkan dengan menggunakan kabel USB tipe serial dari komputer Anda. Yang perlu Anda lakukan adalah menghubungkan kabel USB kepada koneksi USB (1).

Power (Barrel Jack)
Board Arduino dapat diaktifkan langsung dari catu daya listrik AC dengan menghubungkannya ke Barrel Jack (2).

Voltage Regulator
Fungsi voltage regulator adalah untuk mengontrol tegangan yang diberikan ke board Arduino dan menstabilkan tegangan DC yang digunakan oleh microcontroller dan elemen lainnya.

Crystal Oscillator
Osilator kristal membantu Arduino dalam menangani masalah waktu. Bagaimana cara Arduino menghitung waktu? Jawabannya adalah, dengan menggunakan osilator kristal. Angka yang tercetak di atas kristal Arduino adalah 16.000H9H. Ini memberitahu kita bahwa frekuensinya adalah 16.000.000 Hertz atau 16 MHz.

Arduino Reset
Anda dapat mereset ulang board UNO dengan dua cara. Pertama, dengan menggunakan tombol reset (17). Kedua, Anda dapat menghubungkan tombol reset eksternal ke pin Arduino berlabel RESET (5)

Pin (3.3, 5, GND, Vin)

Analog pins
Board Arduino UNO memiliki enam pin input analog A0 hingga A5. Pin ini dapat membaca sinyal dari sensor analog seperti sensor kelembaban atau temperature dan mengubahnya menjadi nilai digital yang dapat dibaca oleh mikroprosesor.

Mikrokontroler utama
Setiap board Arduino memiliki mikrokontroler sendiri (11). Anda dapat menganggapnya sebagai otak pada board. IC utama (sirkuit terintegrasi) pada Arduino sedikit berbeda dari board ke board. Mikrokontroler biasanya dari Perusahaan ATMEL. Anda harus tahu IC apa yang dimiliki papan Anda sebelum memuat program baru dari Arduino IDE. Informasi ini tersedia di bagian atas IC. Untuk detail lebih lanjut tentang konstruksi dan fungsi IC, Anda dapat merujuk ke lembar data.

Pin ICSP
Sebagian besar, ICSP (12) adalah AVR, header pemrograman kecil untuk Arduino yang terdiri dari MOSI, MISO, SCK, RESET, VCC, dan GND. Ini sering disebut sebagai SPI (Serial Peripheral Interface), yang dapat dianggap sebagai "perluasan" dari output. 

Power LED indicator
LED ini akan menyala ketika Anda mencolokkan Arduino ke sumber daya untuk menunjukkan bahwa board Anda dinyalakan dengan benar. Jika lampu ini tidak menyala, maka ada yang salah dengan koneksi.

LED TX dan RX
Pada board Anda, Anda akan menemukan dua label: TX (kirim) dan RX (terima). Mereka muncul di dua tempat pada board Arduino UNO. Pertama, pada pin digital 0 dan 1, untuk menunjukkan pin yang bertanggung jawab untuk komunikasi serial. Kedua, TX dan RX memimpin (13). TX led berkedip dengan kecepatan berbeda saat mengirim data serial. Kecepatan flashing tergantung pada baud rate yang digunakan oleh board. RX berkedip selama proses penerimaan.

I / O Digital
Board Arduino UNO memiliki 14 pin I / O digital (15) (dimana 6 menyediakan output PWM (Pulse Width Modulation). Pin ini dapat dikonfigurasi untuk difungsikan sebagai input pin digital untuk membaca nilai logika (0 atau 1) atau sebagai digital pin keluaran untuk menggerakkan modul yang berbeda seperti LED, relay, dll. Pin berlabel "~" dapat digunakan untuk menghasilkan PWM.

AREF
AREF adalah singkatan dari Referensi Analog. Terkadang, digunakan untuk mengatur tegangan referensi eksternal (antara 0 dan 5 Volt) sebagai batas atas untuk pin input analog.

Sensor Arduino dan fungsinya

Jenis sensor arduini dan apa saja fungsinya

[apa itu arduino dan fungsinya] Arduino Sensor

Dengan beberapa baris kode pada Arduino Anda, Anda dapat bermain-main dan mengendalikan berbagai macam sensor dan membangun proyek yang mengagumkan. Sensor tersebut dapat mengukur cahaya, jarak ultrasonik, kelembaban , suhu, gas , tekanan , gerakan , suara , sentuhan , dan banyak lagi!

Apa itu Arduino shield dan fungsinya

Arduino shield dan masing-masing fungsinya yang berbeda

[apa itu arduino dan fungsinya] Contoh arduino shield

 

Arduino shield adalah papan sirkuit yang dibuat terpisah dan dapat dengan mudah dipasang di atas header Arduino Anda untuk memperluas kemampuannya. Shield tersebut dapat menambahkan fungsi Bluetooth, konektivitas wifi, GPS, driver motor. Dengan shield ini, Anda dapat menghindari semua kesulitan (jika anda berniat untuk membuatnya sendiri) dan dengan mudah memasang shield pada Arduino Anda. Mirip dengan sensor, shield memiliki berbagai fungsi dari konektivitas wifi , ethernet , mengemudi dan mengendalikan motor , kamera , penyimpanan , layar sentuh , Tampilan E-Ink , dan masih banyak lagi.

Software

Setelah mengetahui hardware Arduino, Anda akan memerlukan software dan pemprograman untuk membuat Arduino Anda menjadi hidup dan memungkinkannya untuk berinteraksi dengan berbagai sensor dan shield. Untuk memprogram Arduino Anda, Anda akan memerlukan perangkat lunak Arduino IDE.

Mengenai Arduino IDE

Fungsi arduino IDE untuk programming

[apa itu arduino dan fungsinya] Arduino IDE

 

Kesimpulan

Pada artikel ini anda telah mengenal Arduino secara detail mulai dari hardware, sensor hingga software. Sehingga anda teleh mengetahui apa itu Arduino dan fungsinya. Selain itu telah dijelaskan perbedaaannya dengan Single Board Computer seperti Raspberry Pi. Semoga dengan informasi ini anda dapat memulai untuk belajar Arduino dan membuat proyek-proyek yang inovatif buatan anda sendiri. Terima kasih telah membaca artikel ini, semoga memberikan manfaat untuk anda.

Kali ini akan di bahas mengenai salah satu produk Google Cloud Platform (GCP), yaitu Firebase. Selain itu akan dijelaskan bagaimana memulai firebase realtime database pada bagian setup awal pada console firebase.

Firebase adalah suatu layanan dari Google yang digunakan untuk mempermudah para pengembang aplikasi. Dua fitur yang menarik dari Firebase yaitu Firebase Remote Config dan Firebase Realtime Database. Selain itu terdapat fitur pendukung lain untuk aplikasi yang membutuhkan notifikasi yaitu Firebase Notification (source: wikipedia).

Tutorial ini akan membahas bagaimana membuat akun firebase dan setup awal sebelum menggunakannya. Syarat utama untuk membuka firebase console adalah memiliki account google yang mungkin sebagian besar telah memilikinya, selanjutnya dapat di akses melalui link ini, sehingga akan terlihat tampilan di bawah ini:

firebase realtime database

Pilih “ Tambahkan Project”, setelah itu akan di minta untuk memasukkan informasi nama project. Selanjutnya apakah anda ingin mengaktifkan Google Analytics atau tidak, dan terakhir masukkan lokasi negara anda.

Setelah semua setup selesai maka anda akan berada di tampilan dashboard Firebase console.

firebase realtime database

Ada beberapa paket yang dapat di pilih dalam menggunakan firebase database yaitu “Spark” dan “Blaze” Plan. Anda dapat menggunakan Spark Plan untuk yang tidak berbayar, namun jika project anda besar, maka dapat di upgrade kepada Blaze plan, di mana pembayarannya sesuai dengan seberapa besar penggunaannya (tidak termasuk Spark Plan yang masih gratis jika belum melebihi kuota). Untuk melihat perkiraan total harga sesuai dengan penggunaan anda dapat melihatnya dengan Blaze plan calculator.

firebase realtime database

Selanjutnya, navigasikan pada “Setelan project (setting)” untuk memilih lokasi server Google Cloud Platform (GCP).

Pada tab navigasi sebelah kiri ada beberapa pilihan untuk development, yang pertama adalah “Authentication”. Pilihan ini digunakan jika pada apps anda sebelum login pada main application, user harus login terlebih dahulu dengan menggunakan, email, nomor ponsel, google account, etc.

firebase realtime database

Di bawah pilihan “Authentification” pada main navigation adalah Database, pilihan ini yang akan digunakan untuk Realtime database. Ada dua pilihan untuk realtime database tersebut yaitu Cloud Firestore(membutuhkan aktivasi melalui GCP console) dan Realtime database. Kali ini kita akan memilih pilihan kedua, yaitu realtime database. Setelah menentukan pilihan, maka akan ada notifikasi untuk pengaturan keamanan. Terdapat dua mode yaitu terkunci dan mode pengujian. Pada mode pengujian, siapapun dapat mengakses database, sedangkan mode terkunci sebaliknya.

firebase realtime database

Tampilan data pada realtime database adalah seperti gambar di bawah ini:

firebase realtime database

Struktur data pada database ini adalah berupa JSON yang dapat di export menjadi seperti di bawah ini:

{
  "Device 1" : {
    "Fill level" : 50,
    "temperature" : 28
  }
}

Sekian penjelasan singkat untuk memulai setup awal menggunakan realtime database pada Firebase. Untuk aplikasi Firebase pada project Anda dapat membaca artikel dengan judul Sistem Pengelolaan Sampah Berbasis IoT pada blog ini.

Semoga bermanfaat.

Terima Kasih

Artikel kali ini akan membahas asal muasal lahirnya raspberry dan setup awal raspberry pi, sehingga dapat mengetahui gambaran umum mengenai perangkat mini computer sersebut. Salah satu yang penting adalah raspberry pi 4 setup vnc dan SSH untuk remote access dari laptop ataupun PC.

Raspberry adalah single board computer yang dikembangkan oleh Raspberry Pi Foundation.  Pada mulanya yayasan ini didirikan untuk memperkenalkan kemampuan low-level komputer untuk anak-anak di UK. Tujuan utama nya adalah untuk membangkitkan semangat revolusi komputer pada tahun 1980an, sehingga dapat menghasilkan generasi yang memiliki kemampuan programming hebat.

Raspberry Pi memiliki beberapa model, model terbaru adalah model 4 yang memiliki spesifikasi sebagai berikut:

Modul Raspberry Pi 4
[raspberry pi 4 setup vnc] Raspberry Pi 4

Komponen/ layout Raspberry pi 4

Skematik komponen penting Raspberry pi 4
Raspberry Pi 4 skematik

Mungkin anda telah familiar dengan fungsi komponen-komponen yang telah disebutkan diatas. Namun, kita akan mengupas lebih dalam pada komponen 4, yaitu pin GPIO yang memiliki 2 system numerasi, yaitu pin dan GPIO. Hal yang membedakan antara keduanya adalah ketika menggunakan library pada waktu memprogram raspberry pi (akan di bahas pada artikel lain lebih detail)

Skematik GPIO Raspberry PI 4
[raspberry pi 4 setup vnc] Raspberry Pi GPIO. Source: www.element14.com

Jika anda menggunakan class GPIO.Board, maka anda lihat pada nomor pin mana yang anda gunakan sedangkan jika anda menggunakan GPIO.BCM anda harus melihat nomor GPIO, contoh nya adalah pada python script di bawah ini:

import RPi.GPIO as GPIO   

GPIO.setmode(GPIO.BOARD) # penomoran sesuai dengan angka pin
   
GPIO.setmode(GPIO.BCM) # penomoran sesuai dengan GPIO  

Setup awal raspberry pi 4

Minimum alat-alat yang dibutuhkan untuk pertama kali menjalankan raspberry pi 4 adalah sebagai berikut:

Koneksikan komponen-komponen di atas kepada port yang tepat. Namun, sebelum memasukkan microSD Card. Anda harus terlebih dahulu melakukan instalasi operating system pada SD card tersebut.

Cara installasi raspberry pi OS.

Download raspbian terbaru pada link ini. Ada beberapa pilihan OS yang dapat anda pilih, dari yang minim hingga full feature tergantung kepada kebutuhan anda.

Setelah itu download Etcher pada situs ini. Setelah instalasi etcher selesai, jalankan program dan masukkan SD card anda pada komputer untuk memulai proses flashing.

Flashing SD Card image menggunakan Etcher
[raspberry pi 4 setup vnc] Etcher

Setelah proses flashing selesai, selanjutnya masukkan kembali SD card kepada raspberry pi dan selamat bereksplorasi dengan raspberry Pi.

Remote akses raspberry pi 4

Ada beberapa metode untuk mengakses raspberry pi secara remote, sehingga tidak dibutuhkan monitor untuk mendisplay tampilan OS raspberry pi (untuk pertama kali setup tetap membutuhkan monitor). Tool yang banyak digunakan untuk remote access, yaitu Putty dan VNC

Setup SSH menggunakan Putty

Putty adalah terminal emulator software untuk Windows dan Linux. Putty menyediakan user interface text (command line) untuk me-remote komputer yang dapat dijalankan melalui beberapa protokol, termasuk SSH dan Telnet. Untuk penjelasan lebih mengenai Putty dan download software dapat di lihat pada link ini.

Untuk mengakses Raspberry Pi menggunakan SSH dapat mengikuti configurasi di bawah ini, Hostname adalah IP address komputer yang hendak di remote (raspberry Pi).

Konfigurasi Putty
[raspberry pi 4 setup vnc] Konfigurasi Putty
Command line putty
[raspberry pi 4 setup vnc] Tamplian Command line Putty

Raspberry pi 4 setup VNC

Virtual Network Computing (VNC) adalah remote control software yang dapat mengendalikan komputer lain dengan melalui koneksi network. Software VNC yang populer adalah RealVNC dapat di download dengan gratis pada link ini. Mengetik dan menggerakan mouse dapat ditransmisikan dari satu komputer ke komputer lainnya, sehingga tampilan desktop (User Interface) raspberry pi anda dapat dilihat dari laptop/PC. Sebelum menjalankan program VNC, pastikan konfigurasi pada Raspberry Pi 4 setup VNC anda sudah tepat yaitu dengan “enable” SSH dan VNC.

Konfigurasi Raspberry Pi
[raspberry pi 4 setup vnc] Raspberry Pi Config

Setelah konfigurasi selesai, buka program VNC pada raspberry Pi anda (doube klik logo pada pojok atas desktop), lalu anda akan dapat mengetahui IP address. Atau anda dapat melihatnya melalui client list pada router.

Raspberry Pi IP address
[raspberry pi 4 setup vnc] Raspberry Pi IP Address

Selanjutnya adalah pada komputer utama (laptop/PC) yang digunakan untuk me-remote Raspberry Pi menggunakan RealVNC dengan konfigurasi seperti pada gambar di bawah ini:

Konfigurasi VNC
[raspberry pi 4 setup vnc] Konfigurasi VNC

Masukkan VNC Server IP berdasarkan Raspberry Pi, lalu masukkan username dan password anda. Setelah itu, silahkan melakukan koneksi pada Raspberry Pi anda.

Pada artikel ini anda telah mengetahui hal pertama kali yang perlu diketahui untuk memulai bereksplorasi dan berkreasi menggunakan Raspberry Pi yaitu setup awal dan asal usul singkatnya. Semoga informasi ini bermanfaat dan mempermudah anda.

Terima kasih telah membaca artikel ini.

Raspberry Pi 4 MQTT

Selamat datang kembali pada rangkaian tutorial mengenai Raspberry pi 4 MQTT server, Docker, InfluxDB dan Setup Grafana. Akhirnya kita telah memasuki bagian terakhir pada project ini. Pada bagian ini akan dibahas mengenai setup Grafana dashboard dengan menggunakan InfluxDB pada Raspberry pi yang digunakan sebagai MQTT server.

Oleh karena itu, tunggu apalagi, silahkan simak paparan berikut ini. Setup Grafana Raspberry Server

Setup Grafana Docker

Berdasarkan pada tutorial bagian ke-2, karena pada project ini menggunakan temporary folder. Maka, sebelum menjalankan container ID, pastikan terlebih dahulu untuk kembali setup environment, membuat log data diretory dan write permission akses.

export DATA_DIR=/tmp
mkdir -p ${DATA_DIR}/mosquitto/data ${DATA_DIR}/mosquitto/log ${DATA_DIR}/influxdb ${DATA_DIR}/grafana
sudo chown -R 1883:1883 ${DATA_DIR}/mosquitto
sudo chown -R 472:472 ${DATA_DIR}/grafana

Setelah itu verifikasilah apakah semua docker container yang akan digunakan telah berjalan atau belum dengan perintah:

Docker ps -a

Jika masih ada container memiliki statis “exited”, maka sebelum melangkah pada tahap selanjutnya, container tersebut harus dijalankan terlebih dahulu dengen perintah:

Docker start containerID

Status container yang diharapkan adalah seperti pada gambar di bawah ini:

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} docker ps -a

Sebelum melanjutkan pada tahap selanjutnya, jangan lupa untuk menyalakan MQTT client (microcontroller yang digunakan untuk mengambil data dan mengirimnya pada MQTT Server).

Setup MQTT.FX (optional)

Setelah seluruh persiapan telah selesai, maka dapat di perikas apakah data dari MQTT client telah di terima oleh MQTT server (Raspberry Pi) dengan menggunakan menggunakan MQTT.fx.

Install MQTT.FX tidak selalu harus pada raspberry Pi yang digunakan. Anda dapat menginstallnya pada laptop/PC selama itu masih terkoneksi pada router yang sama.

Launch program MQTT.FX, lalu, klik icon setting, selanjutnya masukkan Broker address beserta username dan password, save dan close.

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} MQTT FX setting

Highlight tab “Subscribe”, lalu pada drop downlist tulis MQTT topic yang di kirim oleh MQTT Client yaitu:

home/dht11/temperature
home/dht11/humidity
raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} MQTT.FX subscribe

Setelah click subscribe, maka anda dapat melihat data yang masuk pada windows sebelah kanan jika seluruh setup sudah benar.

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} MQTT Transaction

Setup Grafana Dashboard

Selanjutnya buka web-browser anda lalu masukkan ip address raspberry:3000.
Pada tampilan utama masukkan username:admin dan password:admin. Lalu akan masuk pada halaman utama Grafana.

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} Grafana home

Yang pertama dilakukan dalam setup Grafana adalah memilih sumber data, maka, klik icon “create a data source”. Pada list data source terdapat banyak pilihan, karena pada project ini menggunakan InfluxDB, sehingga pilih lah database tersebut.

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} Query source
raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} Database setting

Setelah semua selesai, maka klik “save % test” sehingga akan ada notifikasi “Data source is working”.

Selanjutnya klik “Build a dashboard”. Lalu anda harus menambahkan database yang telah disiapkan pada icon “Add Query”, pilihlah InfluxDB pada Query dropdown list. Setelah itu anda dapat berkreasi menurut selera masing-masing untuk memilih tipe grafik untuk menampilkan data.

raspberry pi 4 mqtt server setup grafana
[raspberry pi 4 MQTT} Grafana visualization

Gambar di atas adalah hasil akhir dashboard yang saya kembangkan. Jika anda telah berhasil, silahkan bagikan kreasi anda dalam membuat dashboard yang menawan. Terdapat banyak pilihan jenis grafik yang dapat anda gunakan untuk bereksperiman, anda dapat menyesuaikannya berdasarkan project permintaan client ataupun untuk sendiri.

Jika ingin melihat tutorial ini dalam bentuk video anda dapat melihatnya pada tautan di bawah ini:

Kesimpulan

Pada bagian terakhir ini pada rangkaian tutorial membuat raspberry pi sebagai MQTT server. Kita telah dapat menjalankan docker container yang dibutuhkan pada project ini, lalu menggunakan MQTT.FX untuk proses verifikasi data dari MQTT client kepada MQTT Broker, dan setup Grafana untuk menampilkan data pada dashboard yang cantik. Grafana merupakan pilihan yang baik jika anda memiliki project untuk memonitor berbagai macam pengukuran yang di kirim oleh sensor. Selain itu, fitur dashbard yang dapat anda save memungkinkan untuk digunakan untuk berbagai macam project berbeda.

Jika ada pertanyaan, kritik, saran ataupun ide lain anda dapat menulisnya pada kolom komentar di bawah ini.

Terima Kasih telah mengikuti tutorial ini, semoga membawa manfaat dan memberikan kemudahan bagi anda.

Wassalamu alaikum wr wb

Pada bagian kedua ini akan difokuskan pada setup raspberry Pi dengan memanfaatkan setup Docker untuk installasi InfluxDB, Mosquitto (MQTT) dan Grafana pada raspberry Server.

Setup Docker

Instalasi Docker cukup memiliki proses yang cukup panjang. Selain itu ada beberapa pre-requisite yang harus dipenuhi agar berjalan dengan baik. Inilah tahap pertama installasi Docker pada Raspberry Pi:

sudo apt-get update
###//Prerequisite
sudo apt-get install apt-transport-https ca-certificates software-properties-common –y
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Jika username yang digunakan pada Raspberry Pi adalah “pi”, maka, permission harus diberikan dengan perintah:

sudo usermod -aG docker pi

Proses ini sebenarnya dapat diabaikan. Namun, untuk memastikan software package yang terinstall sudah benar, import Docker CPG key perlu dilakukan untuk verifikasi:

sudo curl https://download.docker.com/linux/raspbian/gpg

Setup Docker Repo

Selanjutnya adalah setup repositories untuk Docker. Bukalah file source.list dengan menggunakan text editor. Lokasi file tersebut dapat di akses pada command line di bawah ini:

nano /etc/apt/sources.list

File tersebut berisi link repositories yang terdapat pada Raspbarry Pi. Pada bagian bawah tambahkan line di bawah ini, kemudian save.

deb https://download.docker.com/linux/raspbian/ stretch stable

Setelah itu update dan upgrade kembali linux package Raspberry Pi, karena sudah ada docker. Sebelum memeriksa apakah docker telah terinstall dengan benar, kita harus kembali update dan upgrade patch tersebut.

sudo apt-get update
sudo apt-get upgrade

Langkah selanjutnya adalah membuat folder baru untuk project ini. Pada folder baru tersebut, tambahkan lah 2 folder dan 1 file yang dapat anda download pada link di bawah ini.

[download_after_email id=437]

Folder dan file yang telah anda download tersebut berisi, diantaranya:

Folder 01-Mosquito

Pada folder ini terdapat konfigurasi file untuk MQTT broker(mosquito) yang meliputi lokasi data yang tersubscribe pada mosquito dari mqtt client dan user files yang berisi user name dan password mqtt. Pada konfigurasi ini user name dan password adalah admin/admin.

Folder 02-Bridge

Pada folder ini terdapat script Python“main.py”. Script tersebut berfungsi untuk menghubungkan antara MQTT topic yang tersubscribe dari MQTT Broker dan lalu menyimpannya pada influxDB database.

setup docker
[setup docker] Isi folder

Hal yang perlu diperhatikan pada script ini adalah: Pastikan memasukkannya dengan benar sesuai dengan perangkat yang digunakan. Pada 4 line pertama berkaitan dengan setup pada Grafana (akan dibahas lebih dalam pada tutorial selanjutnya). Sedangkan 6 line setelahnya adalah setup MQTT yang sesuai coding arduino pada tutorial sebelumnya dan regular expression untuk mengenali message yang tersubscribe pada MQTT broker yang pada akhirnya akan dimasukkan kedalam influxDB database.

INFLUXDB_ADDRESS = '192.168.2.144'
INFLUXDB_USER = 'auftechnique'
INFLUXDB_PASSWORD = 'auftechnique'
INFLUXDB_DATABASE = 'auftechnique_db'

MQTT_ADDRESS = '192.168.2.144'
MQTT_USER = 'admin'
MQTT_PASSWORD = 'admin'
MQTT_TOPIC = 'home/+/+'
MQTT_REGEX = 'home/([^/]+)/([^/]+)'
MQTT_CLIENT_ID = 'MQTTInfluxDBBridge'

Konfigurasi tersebut diperlukan ketika proses setup Grafana.

File docker-compose.yml

File ini berisi Image yang dibutuhkan beserta konfigurasi masing-masing. Sehingga hanya perlu memberi satu perintah ketika melakukan proses installasi image

Kembali pada proses instalasi Docker. Anda dapat mengecek versi dan informasi terkait dengan docker yang telah terinstal dengan perintah:

docker version
docker info

Hal yang terkadang cukup mengesalkan adalah ketika hendak mengesekusi perintah yang berhubungan dengan docker, ada beberapa command yang harus selalu menambahkan kata ‘sudo’ agar tereksekusi dengan baik.

Ada trick yang dapat membantu untuk mengabaikan perintah ‘sudo’ tersebut dengan cara:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Terkadang terdapat error message ketika pertama kali hendak menjalankan Docker.

Sebelum menjalankan docker, ada baiknya untuk me-restart raspberry pi.

Setelah raspberry pi booting kembali, kita dapat menjalankan docker dengan perintah:

docker run hello-world
setup docker
[setup docker] docker hello-world

Notifikasi keberhasilan instalasi docker akan muncul pada terminal windows anda. Langkah selanjutnya adalah setup environment variable “DATA_DIR”.

Anda dapat meng-export variable tersebut ke dalam temporary folder (/temp) jika anda tidak berniat untuk menjadikan project ini pada aktifitas production. Namun, jika anda ingin menyimpan semua data akusisi atau menjadikan project ini di pakai pada production, anda dapat menyimpannya pada folder yang lain.

export DATA_DIR=/tmp
mkdir -p ${DATA_DIR}/mosquitto/data ${DATA_DIR}/mosquitto/log ${DATA_DIR}/influxdb ${DATA_DIR}/grafana

Pada saat membuat raspberry pi sebagai MQTT server menggunakan docker, pastikan bahwa setup direktori untuk menyimpan/mengambil data akusisi yang dilakukan oleh MQTT server dan Grafana pada backend telah memiliki write access untuk menghindari permission issue.

sudo chown -R 1883:1883 ${DATA_DIR}/mosquitto
sudo chown -R 472:472 ${DATA_DIR}/grafana

Langka selanjutnya adalah dengan menginstall docker-compose, sehingga dapat mempermudah proses installasi image yang dibutuhkan.

Ada beberapa cara untuk instalasi docker-compose. Namun, setelah beberapa kali mencobanya pada raspberry pi, cara yang termudah adalah instalasi melalui Pyhton package (PIP).

Ada beberapa dependencies yang harus terpenuhi dengan cara ini sebelum memulai proses instalasi docker-compose, yaitu:

sudo apt-get install -y libffi-dev libssl-dev
sudo apt-get install -y python3 python3-pip
sudo apt-get remove python-configparser
sudo pip3 install docker-compose

Setelah seluruh dependency terpenuhi, navigasikanlah pada parent folder project ini di mana terdapat file docker-compose.yml, lalu eksekusi perintah:

docker-compose up –d

Image pulling/installation proses akan berurutan berdasarkan urutan yang terdapat dalam file ‘docker-compose.yml’. File tersebut berisi seluruh docker image yang dibutuhkan pada project ini. Lalu, docker compose akan mengesekusinya satu per satu.

Pastikan seluruh image yang terdapat pada ‘docker-compose.yml’ terinstall pada container dengan mengeksekusi perintah:

docker container ls –a

Perintah tersebut akan menunjukkan semua list container pada local repository raspberry pi. Container yang tidak dibutuhkan pada project ini misalkan “hello-world”, anda dapat menghapusnya dengan cara:

docker rm containerID

Docker command yang berguna untuk diketahui adalah:

docker run xxx

Docker run akan menarik image dari docker hub repository (online) jika belum terinstall pada local repository, lalu menjalankan container baru. Mengesekusi perintah run pada docker akan membuat container ID yang baru. Sehingga akan terus menambah list container.

“XXX” adalah nama image yang terdapat pada docker, contohnya grafana, influxDB, dll.

Sebagai best practice untuk saya pribadi, daripada selalu menambah container baru yang pada akhirnya sulit untuk memaintainnya, perintah “start” lebih saya sukai, ketika telah memiliki container berisi image yang dibutuhkan.

docker start containerID

Dengan perintah ini, docker hanya akan menjalankan container berdasarkan IDnya tanpa ada penambahan container yang baru.

Perintah penting lainnya yg sangat diperlukan adalah adalah memastikan semua container yang dibutuhkan telah berjalan dengan baik sesuai perintah:

docker ps
setup docker
[setup docker] docker ps

Jika ada salah satu container yang dibutuhkan memiliki status “stopped” (dapat di lihat setelah eksekusi “docker container –ls –a”) atau tidak terdapat pada list setelah eksekusi “docker ps”. Maka, container tersebut harus dijalankan terlebih dahulu dengan perintah:

docker start containerID

Setelah memastikan status container yang diperlukan “up”, buka lah web browser pada raspberry pi ataupun pada semua perangkat yang terhubung dengan router yang sama dengan alamat IP address raspberry Pi serta port: 3000. Contoh: http://192.168.2.144:8000

Setelah itu tampilan login Grafana dashboard akan terlihat. Secara default, userID dan password adalah admin/admin

setup docker
[setup docker] grafana dashboard

Bagian di bawah ini hanyalah tambahan, tidak termasuk dalam tahapan-tahapan tutorial bagian ke-2 ini.

Mengganti default password mosquitto (optional)

cd 01-mosquitto
echo -n "" > users
docker run --rm -v `pwd`/mosquitto.conf:/mosquitto/config/mosquitto.conf -v `pwd`/users:/mosquitto/config/users eclipse-mosquitto mosquitto_passwd -b /mosquitto/config/users [USER] [PASSWORD] 

###Ubahlah kata yang terdapat dalam tanda kurung.
###contoh password: [USER]= auftechnique ; [PASSWORD] = auftechnique

Alternatif install docker image (tidak menggunakan docker compose)

cd -
cd 01-mosquitto
docker run -d -p 1883:1883 -v PWD/mosquitto.conf:/mosquitto/config/mosquitto.conf -v PWD/users:/mosquitto/config/users -v DATA_DIR/mosquitto/data:/mosquitto/data -v $DATA_DIR/mosquitto/log:/mosquitto/log --name mosquitto eclipse-mosquitto:1.5

cd -
docker run -d -p 8086:8086 -v $DATA_DIR/influxdb:/var/lib/influxdb --name influxdb influxdb:1.7

cd 02-bridge
docker build -t auftechnique/mqttbridge .
docker run -d --name mqttbridge auftechnique/mqttbridge

cd -
docker run -d -p 3000:3000 -v $DATA_DIR/grafana:/var/lib/grafana --name=grafana grafana/grafana:5.4.3

Jika anda tertarik untuk melihat video tutorial bagian ke-2 ini, anda dapat menyimak di sini:

[setup docker]

Kesimpulan

Pada tutorial ini telah di bahas mengenai setup docker, docker-compose, pull docker image, docker container serta beberapa command penting docker pada raspberry pi yang dijadikan sebagai MQTT server.

Keuntungan menggunakan docker ini adalah karena kemudahannya dalam membuat, mengembangkan dan menjalankan aplikasi di dalam container. Container ini memiliki library dan dependency yang independen di mana kesemuanya telah tersedia dalam satu paket.

Sekian tutorial pada bagian yang kedua ini. Pada bagian terakhir akan di bahas mengenai setup Grafana dashboard secara lebih dalam.
Link bagian terakhir klik disini

Terima kasih telah mengunjungi postingan ini, semoga membawa manfaat dan jangan lupa untuk terus mengikuti rangkaian tutorial-tutorial berikutnya.

Wassalamu alaikum wr wb

Setup MQTT client menggunakan arduino based microcontroller

Pengukuran sangatlah penting untuk mengetahui dan memahami apa yang terjadi dengan lingkungan di sekitar, salah satunya  temperature. Sebetulnya di negara tropis seperti Indonesia, perubahan temperature tidaklah signifikan sepanjang tahun. Namun, lain halnya jika kita ingin meningkatkan effisiensi penggunaan listrik agar dapat lebih berhemat, terutama dalam penggunaan pendingin ruangan.

Oleh karena itu, pada tutorial kali ini kita akan membuat pengukuran temperature&humidity menggunakan open source hardware dan software yang terhubung melalui MQQT server, lalu di simpan dalam time series database dan ditampilkan ke dalam dashboard yang menawan.

Ada sekian banyak IoT dashboard yang dapat digunakan di luar sana, ada yang berbayar dan ada yang tidak. Kali ini kita akan mencoba mengembangkan IoT dashboard menggunakan MQTT-InfluxDB-Grafana dan Raspberry pi 4 sebagai MQTT server serta Robotdyn Wifi D1R2 sebagai client yang mengirimkan data. Semua installasi software akan memanfaatkan Docker karena kemudahannya yang dapat menjalankan aplikasi dengan menggunakan container.

Diagram sederhana dari keseluruhan sistem dapat ditunjukkan pada gambar di bawah ini:

setup MQTT client
Diagram sederhana

Perangkat yang digunakan pada tutorial kali ini adalah:

Setup MQTT Client

Pada bagian pertama ini, akan di bahas mengenai wiring diagram dan Arduino sketch untuk system yang akan dikembangkan. Dalam pembuatan skema diagram elektronik, kita akan menggunakan software Fritzing.

Pada awal nya software Fritzing dapat di download dengan free, akan tetapi saat ini sudah tidak lagi karena para developer membutuhkan waktu dan tenaga untuk memelihari software ini terkait dengan fitur baru ataupun bugs. Namun, anda jangan sedih hati, karena terdapat versi Linux yang masih bisa didapatkan dengan free.

Jika anda menginginkan pembahasan lebih dalam mengenai Fritzing yang meliputi cara pemakaian dan tutorial, silahkan tinggalkan pesan pada kolom komentar postingan ini.

Kembali kepada topik project bagian pertama ini, koneksi rangkaian elektronik sistem yang akan kita bangun adalah sebagai berikut:

Skema rangkaian elektronik tersebut dapat di lihat pada gambar di bawah ini: (menggunakan wemos D1R2, karena ketiadaan library Robotdyn D1R2 pada software Fritzing)

Langkah selanjutnya adalah coding sketch pada Arduino IDE.
Sebelum memulai coding, harus dipastikan bahwa library yang dibutuhkan sudah tersedia seperti: DHT, ESP8266Wifi dan PubSubClient. Untuk library Wemos D1R2 sudah terwakili jika anda telah menginstall ESP8266 Board.

setup MQTT client
Daftar library

Arduino code

Import library yang dibutuhkan pada IDE yang anda gunakan. Yaitu DHT, Pubsubclient dan ESP8266.

#include <DHT.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

Pendefinisian variable:

Pin yang digunakan untuk transmitting data sensor pada microcontroller adalah D5 dan tipe sensor temperature yang digunakan adalah DHT11. Topic MQTT yang akan kita subscribe kepada broker ada 3, yaitu humidity, temperature dan status (optional). Untuk menghemat penggunaan kapasitas memory pada SD Card yang digunakan, client dapat diperintahkan untuk mengirim topic message setiap 60 detik (60000 ms). Sedangkan untuk MQTT Client ID akan dijelaskan lebih lanjut pada tutorial lanjutan yaitu dengan membuat Python script yang digunakan untuk menghubungkan antara client dan server.

Untuk koneksi internet, anda dapat memasukkan SSID dan password sesuai dengan perangkat anda. MQTT_SERVER adalah IP address Raspberry Pi anda, dapat di cek ketika telah terhubung dengan router wifi.

Untuk alasan keamanan tambahan, anda dapat memasukkan password dan user name pada MQTT server raspberry sesuai dengan keingininan anda. Secara default, password dan username yang digunakan adalah “admin”. Cara untuk mengubah password tersebut akan dijelaskan pada bagian selanjutnya.

#define DHTPIN D5
#define DHTTYPE DHT11
#define MQTT_TOPIC_HUMIDITY "home/dht11/humidity"
#define MQTT_TOPIC_TEMPERATURE "home/dht11/temperature"
#define MQTT_TOPIC_STATE "home/dht11/status"
#define MQTT_PUBLISH_DELAY 60000
#define MQTT_CLIENT_ID "wemosdht11"
const char* WIFI_SSID = "ssid anda";
const char* WIFI_PASSWORD = "password anda";
const char *MQTT_SERVER = "192.168.2.144"; // MQTT IP address anda
const char *MQTT_USER = "admin" ; // NULL untuk tidak ada autentifikasi
const char *MQTT_PASSWORD = "admin" ; // NULL untuk tidak ada autentifikasi
float humidity;
float temperature;
long lastMsgTime = 0;
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient mqttClient(espClient);

Setelah seluruh variable terdefinisikan, kita menuju pada programming utama.
Pada bagian fungsi setup, kita akan mengeksekusi empat kategori, yaitu pengecekan MAC Address (anda dapat mengabaikannya jika tidak diperlukan), konektifitas pada router, men-setting MQTT server dan inisialisasi pengambilan sensor data.

void setup() {
  Serial.begin(115200);
  while (! Serial);
  delay(500);
   Serial.println();
   Serial.print("MAC: ");
   Serial.println(WiFi.macAddress());
  setupWifi();
  mqttClient.setServer(MQTT_SERVER, 1883);
  dht.begin();
}

Pada bagian fungsi loop, terdapat tiga perintah utama, yaitu memastikan MQTT terkoneksi dengan baik, membaca sensor data dan mempublikasikannya kepada MQTT broker.

void loop() {
  if (!mqttClient.connected()) {
    mqttReconnect();
  }
  mqttClient.loop();
  long now = millis();
  if (now - lastMsgTime > MQTT_PUBLISH_DELAY) {
    lastMsgTime = now;

    // Membaca sensor data DHT11
    humidity = dht.readHumidity();
    temperature = dht.readTemperature();
    Serial.print("temperature:");
    Serial.println(temperature);
    if (isnan(humidity) || isnan(temperature)) {
      Serial.println("DHT11 sensor belum siap");
      return;
    }
    // Mempublikasikan sensor data
    mqttPublish(MQTT_TOPIC_TEMPERATURE, temperature);
    mqttPublish(MQTT_TOPIC_HUMIDITY, humidity);
  }
}

User defined function wifi dan IP address client yang digunakan pada fungsi setup.

void setupWifi() {
  Serial.print("Menyambungkan ke ");
  Serial.println(WIFI_SSID);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("WiFi tersambung");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

User defined function yang digunakan pada fungsi loop untuk menyambungkan ulang pada MQTT Server. Hal ini diperlukan untuk memastikan konektivitas dengan MQTT broker masih tersambung, sebelum mengirimkan data pada broker.

void mqttReconnect() {
  while (!mqttClient.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Mencoba koneksi.
    if (mqttClient.connect(MQTT_CLIENT_ID, MQTT_USER, MQTT_PASSWORD, MQTT_TOPIC_STATE, 1, true, "disconnected", false)) {
      Serial.println("connected");
      // Seleah terkoneksi, publikasi hasil…
      mqttClient.publish(MQTT_TOPIC_STATE, "connected", true);
    } else {
      Serial.print("gagal, rc=");
      Serial.print(mqttClient.state());
      Serial.println(" coba lagi dalam 5 detik");
      delay(5000);
    }
  }
}

Arduino sketch lengkap dapat di download pada link di bawah ini:

[download_after_email id=429]

Setelah coding selesai, anda dapat meng-compile sketch tersebut lalu menguploadnya kepada microcontroller. Pastikan pemilihan port dan baud rate sudah benar serta gunakanlah kabel USB data berkualitas.

setup MQTT client
serial monitor

Untuk memastikan microcontroller menerima sketch dengan tepat. Anda dapat melihatnya pada serial monitor. Anda dapat melihat komunikasi dengan router berhasil. Namun, anda belum dapat berhasil komunikasi melalui protokol MQTT karena tutorial bagian 2 belum selesai.

Oleh karena itu, jangan lupa untuk tetap mengikuti rangkaian tutorial ini dan tetap menyimak dengan seksama.

Source Code:

Anda dapat mendowload source code lengkap pada link di bawah ini:

[wpsl_locker id="1619"]
Download file Anda
[/wpsl_locker]

Kesimpulan:

Kesimpulan pada tutorial bagian pertama ini, kita telah dapat membuat rangkaian elektronik sederhana dengan menggunakan software Fritzing. Lalu, membuat Arduino sketch pada IDE yang selanjutnya di upload kepada microcontroller. Pada bagian kedua kita akan fokus setup Raspberry Pi untuk dijadikan sebagai MQTT broker.

Terima kasih telah mengikuti bagian pertama ini, semoga membawa manfaat bagi siapa saja yang membacanya.

Jika ada masukan ataupun kritik anda dapat menulishkannya pada kolom komentar.
Sampai bertemu kembali pada bagian kedua.
Bagian kedua : klik disini

Assalamu alaikum wrwb

Anda dapat melihat video tutorial bagian pertama ini pada link berikut:

Raspberry Pi Object Detection- Tensorflow pada Raspberry pi
Raspberry Pi Object Detection- Tensorflow pada Raspberry pi

Tutorial ini berisi bagaimana cara installasi Raspberry Pi Object Detection agar dapat mendeteksi object menggunakan raspberry pi 4 dengan camera.

Tutorial instalasi Tensorflow pada Raspberry Pi4 ini berdasarkan Edje Electronics.

Sepanjang saya mencari tutorial mengenai tensorflow, tutorial dari Edje Electronics adalah yang paling mudah diikuti dan di mengerti. Maka dari itu alangkah lebih baik untuk melihat tutorial yang disajikan oleh Edje Electonics dan subscribe channel nya untuk mengetahui project-project selanjutnya yang ia buat.

Sebelum memulai tutorial, alat-alat yang saya gunakan, yaitu:

  1. Raspberry pi4, 4gb ram tokopedia
  2. 32 GB SD card, pre-installed Raspbian Stretch tokopedia
  3. USB webcam Logitech tokopedia

Tutorial ini di tulis pada tanggal 14/10/2019

Pendahuluan

Tutorial ini berisi bagaimana cara installasi Tensorflow Object Detection API pada Raspberry Pi 4 agar dapat mendeteksi objek. Dengan mengikuti alur selangkah-demi selangkah, diharapkan anda dapat menggunakan Raspberry Pi untuk mendeteksi suatu object dari camera secara langsung dengan menggunakan kamera USB ataupun Picamera. Anda dapat menyesuaikan tutorial ini kepada object yang ingin anda deteksi secara spesifik.

Raspberry Pi Object Detection - Contoh deteksi botol aqua
Raspberry Pi Object Detection - Contoh deteksi botol aqua

Update raspberry pi

Buka command terminal, lalu eksekusi perintah:

sudo apt-get update
sudo apt-get dist-upgrade 

Install TensorFlow

pip3 install tensorflow

Tensorflow membutuhkan paket tambahan “LibAtlas” agar berfungsi dengan baik

sudo apt-get install libatlas-base-dev 

Install beberapa dependencies yang dibutuhkan untuk menjalankan tensor flow seperti tertera dalam repositories Tensorflow instruksi installasi. Diantaranya:

sudo pip3 install pillow lxml jupyter matplotlib cython 
sudo apt-get install python-tk 

Selesai untuk instalasi Tensorflow, selanjutnya adalah OpenCV

Install OpenCV

OpenCV digunakan untuk mendeteksi object yang relative mudah dan sedikit error.

Agar OpenCV dapat bekerja dengan baik pada Raspberry Po. Ada beberapa dependencies yang harus di install menggunakan “apt-get”, yaitu:

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt-get install libxvidcore-dev libx264-dev 
sudo apt-get install qt4-dev-tools libatlas-base-dev 

Install Protobuf

Tensorflow object detection menggunakan Protobuff, yaitu Google Protocol Buffer data format.

sudo apt-get install protobuf-compiler

Untuk memastikan terinstall dengan benar, maka perlu di cek dengan cara protoc –-version

Sehingga akan muncul tulisan libprotoc 3.6.1  atau versi yang terbaru.

Setup struktur folder Tensorflow dan Variable PYTHONPATH

Kita telah menginstall semua packages yang dibutuhkan untuk menjalankan Tensorflow, selanjutnya kita membutuhkan setup direktori Tensorflow. Kita akan membuat direktori tensorflow1:

mkdir tensorflow1
cd tensorflow1  

Lalu, download repository tensorflow dari Github:

git clone --recurse-submodules https://github.com/tensorflow/models.git

Selanjutnya adalah memodifikasi PYTHONPATH environment. Hal ini berguna agar PYTHONPATH selalu ter-setup setiap kali terminal window terbuka.

sudo nano ~/.bashrc

Arahkan kursor ke bagian akhir file, dan pada baris terakhir tambahkan baris:

export PYTHONPATH=$PYTHONPATH:/home/pi/tensorflow1/models/research:/home/pi/tensorflow1/models/research/slim

Setelah itu, simpan dan keluar dari file tersebut. Keluar command terminal dan buka kembali.

Selanjutnya, kita membutuhkan Protoc untuk mengkompilasikan file Protocol Buffer (.proto) yang digunakan oleh Object Detection API. File tersebut ada dalam direktori “/research/object_detection/protos”, namun kita harus mengesekusi perintahnya dari direktori /research:

cd /home/pi/tensorflow1/models/research
protoc object_detection/protos/*.proto --python_out=.  

Perintah di atas mengkonversikan seluruh file yang memiliki ekstensi “.proto” menjadi “_pb2.py”.

Selanjutnya, pergi ke direktori “object_detection”

cd /home/pi/tensorflow1/models/research/object_detection

Sekarang, kita akan download object detection model dari TensorFlow detection model zoo. Model zoo ini adalah koleksi dari Google untuk model yang telah di training dan memiliki kecepatan komputasi dan akurasi yang berbeda. Raspberry Pi memiliki processor yang relative lemah, oleh karena itu kita membutuhkan model yang menggunakan kekuatan processing yang kecil. Walaupun model berjalan dengan cepat, namun, memiliki tingkat akurasi yang rendah. Untuk tutorial kali ini kita akan menggunakan SSDLite-MobileNet, dimana model tersebut adalah yang paling cepat.

Google selalu mengeluarkan model terbaru dengan kecepatan dan performa yang lebih baik seiring waktu. Oleh sebab itu, dapat mengunjungi nya secara berkala.

Download SSDLite-MobileNet dengan cara:

wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 
tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 

Ok, sekarang model di dalam direktori “object_detection” telah siap untuk digunakan. Selanjutnya adalah tahap terakhir, yaitu mendeteksi objek

Mendeteksi Object

Akhirnya kita sampai pada bagian yang sangat menyenangkan yaitu mendeteksi object menggunakan kamera pada Raspberry Pi. Skrip Python pada tutorial ini adalah “Object_detection_picamera.py”. Secara umum, script ini memerintahkan untuk mengarahkan path kepada model dan labelmap, lalu memasukan model ke dalam memori, initialisasi Picamera dan memulai deteksi objek pada video frame dari Picamera.

Pastikan kita telah mengaktifasikan Camera pada Raspberry Pi Configuration.

Raspberry pi mendeteksi object konfigurasi pada pi
Raspberry Pi Object Detection - Raspberry Pi config

Download “Object_detection_picamera.py” ke dalam direktori object_detection dari github EdjeElectronics dengan cara:

wget https://raw.githubusercontent.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/master/Object_detection_picamera.py

Jalankan Script:

python3 Object_detection_picamera.py

Secara default, script akan mengesekusi perintah menggunakan Picamera, jika kita menggunakan USB camera, maka commandnya menjadi:

python3 Object_detection_picamera.py --usbcam

Voila!!! Sekarang anda dapat mendeteksi object.

Untuk mendeteksi objek sesuai dengan yang diinginkan anda dapat lihat pada link ini.

Kita dapat menggunakan kustom model yang telah di training sesuai dengan object yang hendak kita deteksi. Dengan cara memasukkan frozen inference graph ke dalam direktori object_detection dan mengubah path model tersebut di dalam script. Setelah kita memiliki model tertentu, simpan file tersebut di dalam directory object_detection dan label_map.pbtxt di dalam direktori object_detection/data. Tutorial untuk ini dapat di lihat dari video Edje Electronic yang lain di link youtube.

Terima kasih telah membaca tutorial singkat ini.

Semoga bermanfaat untuk anda.

Pada tutorial kali ini kita akan di bahas bagaimana sensor ultrasonic bekerja, dan digunakan pada Arduino Board untuk mengukur jarak dengan sensor tersebut.

Sensor ultrasonic memancarkan suara pada 40 kHz melalui media udara. Jika ada suatu obyek yang menghalangi jalur nya, maka gelombang suara ini akan terpantul dan kembali kepada modul sensor tersebut. Dengan mengetahui waktu dan kecepatan udara, maka kita dapat menghitung jarak antara letak sensor dan benda di depan nya.

Jenis Ultrasonic sensor

Kali ini saya akan membahas mengenai ultrasonic sensor dan model yang telah saya gunakan, diantaranya:
1. HC-SR04
2. US - 015
3. JSN-Sr04t
Perbandingan antara ketiga sensor diatas dapat di lihat pada tabel di bawah ini:

mengukur jarak dengan ultrasonic sensor
[Mengukur jarak] Perbandingan Spesifikasi Ultrasonik Sensor

Komponen dan skema

Komponen-komponen yang digunakan:
1. Arduino Uno
2. Ultrasonic Sensor
3. Breadboard
4. Kabel Jumper

Ke empat modul ultrasonic tersebut memiliki 4 pin, yaitu: Ground, Vcc, Trig dan Echo. Pin Ground dan Vcc pada modul sensor dikoneksikan pada pin Ground dan 5 Volts pin Arduino, sedangkan Trig dan Echo dipasangkan dengan pin I/O manapun pada Arduino.

mengukur jarak dengan ultrasonic sensor
Skema koneksi ultrasonic dan arduino

Source Code

#include <Ultrasonic.h>
 ///////////Anda dapat mengubah nomer pin berdasarkan preferensi///////////
Ultrasonic ultrasonic(11, 12); /// Ini adalah nomer pin (Trigger, Echo) yang terpasang pada arduino

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("Jarak dalam cm: ");
  Serial.println(ultrasonic.distanceRead());
  delay(1000);
}

Code di atas menggunakan library Ultrasonic yang dapat di akses melalui:
Ultrasonic Library
Dengan mengunakan library ini, coding yang panjang untuk mendefinisikan pengukuran jarak ultrasonic menjadi singkat. Library tersebut dapat digunakan untuk ketiga jenis sensor yang ada di atas.

Pada tutorial ini anda telah dapat mengukur jarak dengan menggunakan ultrasonic sensor. Semoga artikel ini bermanfaat untuk anda jika ingin mengaplikasikan sensor ini pada project-project yang lebih kreatif.

Terima kasih telah membaca tutorial dari saya, selalu stay tuned pada halaman utama web ini agar anda dapat melihat tutorial-tutorial lain lainnya. A Bientot!!!


Pendahuluan

Halo para pembaca budiman, kali ini kita akan membahas mengenai bagaimana mengukur temperature dan kelembaban udara dengan menggunakan Nodemcu board.

Nodemcu sangat banyak digunakan oleh para maker dan inovator untuk memulai project yang berkaitan dengan Internet of Things (IoT) karena harga yang sangat terjangkau dan ukuran yang praktis.

Perangkat yang dibutuhkan

Sebelum memulai penjelasan singkat ini, ada beberapa module atau sensor yang harus anda persiapkan diantaranya adalah:
1. Micro usb cable (untuk programming board)
2. NodeMCU (module microcontroller)
3. DHT11 (sensor temperature dan kelembaban)

Sketsa rangkaian

Setelah semua terkumpul, selanjutnya adalah mengkoneksikan kabel jumper dari nodeMCU ke sensor DHT11 seperti pada konfigurasi gambar di bawah ini:

mengukur temperature humidity nodemcu
Rangkaian sirkuit

Untuk programming modul Nodemcu ini, diperlukan arduino IDE untuk menulis sketch dan meng-uploadnya kepada microcontroller.

Perlu diperhatikan bahwa module ini termasuk kepada ESP8266 family, sehingga sebelum memulai programming harus dipastikan bahwa library dan daftar board sudah terpasang pada arduino IDE anda. Anda dapat mengikuti tutorial pada link ini.

Kode program

Script yang di tulis pada arduino IDE adalah:

// Import library yang diperlukan
#include "DHT.h"

// Tentukan pin untuk data
#define DHTPIN D8

// type sensor menggunakan DHT11
#define DHTTYPE DHT11  

// Initialisasi sensor
DHT dht(DHTPIN, DHTTYPE); 

void setup() {  
  // Start Serial
  Serial.begin(115200);
  delay(10);
  
  // Init DHT 
  dht.begin();
}
void loop() {   
  // Membaca temperature dan kelembaban
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  delay(1000);

  // Menampilkan data di serial Monitor
  Serial.print("Temperature :");  
  Serial.print(t);  
  Serial.println("C");  
  Serial.print("Humidity :");  
  Serial.print(h);  
  Serial.println("%"); 
  delay(10);
  
  // Update setiap 1000ms (1 detik) agar pembacaan stabil dahulu
  delay(1000); 
}

Setelah upload code diatas lalu arahkan ke Tools>Serial Monitor (Ctrl+Shift+M). Jangan lupa untuk memastikan Upload speed "115200", Board "NodeMCU 1.0 (ESP-12E Module), dan PORT "COM..." berdasarkan com port yang terdeteksi oleh Arduino IDE.

Hasil dari pengukuran akan seperti gambar di bawah ini

mengukur temperature humidity nodemcu
Serial monitor

Pada tutorial kali ini, anda telah memahami konsep sederhana bagaimana cara mengukur temperature dan humidity dengan menggunakan nodemcu.

Jika anda ingin mengikuti tutorial lebih lanjut mengenai IoT anda dapat melihat pada link ini.

Sekian tutorial kali ini dan selamat menikmati dan semoga bermanfaat untuk anda.

Terima kasih

Copyright since @ 2020
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram