Pada artikel ini kita akan melihat 6 contoh IoT dashboard dan platform yang beredar dipasaran. Namun, sebelum itu ada baiknya kita membahas perbedaan antara IoT platform dan IoT dashboard.

Perbedaan antara IoT platform dah dashboard

Platform IoT adalah sistem hardware dan software untuk mengelola perangkat IoT untuk mengumpulkan, menyimpan, memvisualisasikan, dan menganalisis data dari perangkat tersebut. Ada banyak platform IoT di pasaran, dan fungsinya pun bervariasi. Meskipun semua platform IoT akan memiliki dashboard untuk menampilkan data. Namun, pada kenyataannya beberapa platform hanya memiliki dashboard, yang hanya mampu menampilkan data dari perangkat.

Anda akan sering menemukan istilah Dashboard dan Platform yang digunakan secara bergantian. IoT Dashboard dapat dianggap sebagai dasar dari IoT platform. Pada prakteknya dashboard biasanya dapat menampilkan data dan mengontrol perangkat.

Di lain pihak, platform IOT memiliki fitur yang lebih lengkap, yaitu:

Pada bagian selanjutnya kita akan membahas mengenai contoh IoT dashboard dan platform.

Contoh IoT Platform

Thingspeak

ThingSpeak adalah platform IoT yang memungkinkan Anda menganalisis dan memvisualisasikan data dalam MATLAB tanpa harus membeli lisensi dari Mathworks. Platform ini memungkinkan Anda untuk mengumpulkan dan menyimpan data sensor pada server cloud, lalu mengembangkan aplikasi IoTnya. Thingspeak kompatibel dengan Arduino, Modul ESP8266, BeagleBone, Raspberry Pi, mobile dan web apps, Twitter, Twilio, dan MATLAB untuk mengirimkan data dari sensor ke ThingSpeak. Sebagian besar penggunaan Thingspeak terfokus kepada sensor logging, pelacakan lokasi, pemicu dan peringatan, serta analisis data.

contoh IoT Dashboard
[Contoh IoT Dashboard] Thingspeak

Fitur-fitur yang terdapat pada Thingspeak:

Thingsboard

Thingsboard adalah 100% open source IoT platform yang dapat menjadi host untuk solusi SaaS atau PaaS. Platform ini menyediakan manajemen perangkat, pengumpulan, pemrosesan, dan visualisasi data. Protokol standar yang didukungnya adalah MQTT, CoAP, dan HTTP serta dapat mendukung cloud atau lokal server. Thingsboard memberikan lebih dari 30 widget yang dapat disesuaikan, sehingga memungkinkan Anda untuk membuat dasboard khusus untuk end-user.

contoh IoT Dashboard
[Contoh IoT Dashboard] Thingsboard

Fitur-fitur kunci platform ini adalah:

Thinger.io

Thinger.io adalah platform opensource untuk IoT yang menyediakan infrastruktur cloud yang scalable untuk menghubungkan perangkat IoT. Anda dapat mudah mengendalikannya dengan menggunakan konsol admin atau mengintegrasikannya proyek Anda dengan menggunakan REST API yang disediakannya. Platform ini mendukung semua jenis board seperti Arduino, ESP8266, Raspberry Pi, dan Intel Edison.

contoh IoT Dashboard
[Contoh IoT Dashboard] thinger.io

 Fitur utama platform open source IoT Thinger.io :

Contoh IoT Dashboard

Freeboard.io

Freeboard adalah "engine" berbasis turn-key dari HTML untuk dashboard. Selain menyediakan tata letak yang terlihat bagus, freeboard menyediakan arsitektur plugin untuk membuat sumber data (mengambil data) dan widget (menampilkan data). Freeboard kemudian menghubungkan antara keduanya. Fitur lainnya adalah kemampuan untuk berjalan sepenuhnya pada browser sebagai aplikasi web statis satu halaman tanpa memerlukan server. Fitur ini membuatnya sangat menarik sebagai front-end untuk perangkat embedded yang mungkin memiliki keterbatasan untuk melayani halaman web yang kompleks dan dinamis.

contoh IoT Dashboard
[Contoh IoT Dashboard] Freeboard.io

Node-Red

Node Red adalah alat pemrograman berbasis browser yang memungkinkan Anda untuk menghubungkan antar blok kode untuk menyelesaikan tugasnya. Dengan menggunakan node dan flow memudahkan anda dalam menulis kode yang dapat terhubung kepada API, perangkat keras, atau layanan online. Node adalah blok kode yang telah ditentukan dan flow adalah koneksi node, yang biasanya merupakan input, pemrosesan, ataupun output node. Node Red dapat dijalankan secara lokal pada komputer Anda, perangkat seperti Raspberry Pi, atau bahkan pada server cloud.

contoh IoT Dashboard
[Contoh IoT Dashboard] NodeRed

Grafana

Grafana memungkinkan anda untuk melakukan query, visualisasi, alert dan memahami metrik anda dimanapun data di simpan. Secara sederhana, Grafana adalah alat yang dapat mengubah time-series database (TSDB) data kepada grafik dan visualisasi yang menawan.

contoh IoT Dashboard
[Contoh IoT Dashboard] Grafana

Jika anda ingin mencobah salah satu dari tutorial contoh IoT dashboard untuk granafa, anda dapat mengikuti link tutorial ini secara step by step dengan menggunakan raspberry pi.

Perbedaan menggunakan IoT platform dan solusi mengerjakan sendiri

Platform IoT, secara sederhana, adalah ekosistem yang telah digabungkan dan disatukan untuk memfasilitasi pembuatan produk dan solusi IoT yang tidak merepotkan dan tidak memakan waktu. Platform IoT adalah lingkungan IoT yang sudah siap yang dapat digunakan sebagai produk bisnis.

Di sisi lain, solusi IoT DIY (mengerjakan sendiri) adalah ketika Anda sebagai System Integrator, menggabungkan pikiran, pengalaman, dan pola pikir Anda untuk menciptakan inovasi teknologi yang membantu untuk menyusun solusi IoT Anda sendiri.

Jika Anda hanya membutuhkan solusi yang sederhana, keterbatasan anggaran, tidak memerlukan branding dan Anda bekerja dengan perangkat yang sudah siap serta dengan protokol yang luas , maka pilihlah solusi yang sudah jadi.

Untuk kasus yang lebih kompleks, anda dapat mempertimbangkan untuk membangun solusi Anda sendiri.

Kesimpulan

Kita telah mengetahui perbedaan antara IoT dashboard dan IoT platfrom. Hal ini sangat penting jika anda ingin membangun suatu IoT ekosistem. Selain itu kita telah melihat 6 contoh IoT dashboard dan platform, sehingga dapat mempertimbangkan solusi yang paling tepat untuk proyek anda. Jika anda ingin membuat branding sendiri, anda dapat menggunakan solusi membangunnya dari awal. Namun, perlu di pertimbangkan waktu, tenaga dan biaya yang dikeluarkan untuk membangunnya.

Setelah memahami ini semua, langkah selanjutnya adalah bagaimana membuat IoT Dashboard. Pada artikel tersebut, wawasan Anda akan semakin luas, lalu dapat menentukan yang mana paling cocok dengan project Anda.

Bagaimana membuat IoT dashboard? Penggunaan internet saat ini tidak dapat dibatasi. Mulai dari komputer pribadi, ponsel dan router. Namun, saat ini memasuki era baru yaitu Internet of Things (IoT) dimana hampir setiap peralatan yang kita gunakan terhubung ke internet seperti mobil, jam tangan, peralatan rumah tangga, bahkan binatang peliharaan pun dapat dipakaikan kalung yang dapat mengirimkan data keberadaannya. Dari semua peralatan tersebut, diperlukan sesuatu yang dapat mengintrepretasikan data-data yang terkirim agar mudah di baca dan dipahami. Oleh karena itu, diperlukan cara bagaimana membuat IoT dashboard atau platform yang dapat memvisualisasikan seluruh data yang di kirim oleh perangkat tersebut.

Pada artikel kali ini, kita akan melihat bagaimana menggunakan data yang dihasilkan oleh peralatan IoT. Lalu, mengapa diperlukan untuk menganalisa data tersebut? Dan pada akhirnya apa saja yang digunakan untuk membangun sistem IoT secara menyeluruh.

Mengapa membuat IoT dashboard?

Ada beberapa alasan untuk menampilkan data dari Internet of Things sehingga diperlukan untuk membuat IoT dashboard:

Hal-hal sebelum membuat IoT dashboard

Sebelum membuat IoT dashboard, anda harus bertanya pada diri sendiri beberapa pertanyaan penting yang harus di jawab:

Pada artikel ini kita akan me-review platform data processing IoT dan mempertimbangkan beberapa protokol. Selain itu, kita akan melihat beberapa perbedaan dalam mengoneksikan perangkat kepada platform dan dashboard. Hal tersebut akan membantu kita dalam menangai beberapa solusi yang ada di pasar ini.

Perlu diperhatikan bahwa artikel mengenai topik ini yang ada di Internet dapat dibagi menjadi dua jenis. Yang pertama adalah cara membuat platform dalam hal UI, dan yang kedua adalah cara membangun platform dalam hal infrastruktur.

Jika Anda telah mencoba membangun arsitektur aplikasi IoT seorang diri, Anda pasti merasakan betapa rumitnya hal tersebut, walaupun diagram di bawah ini sangat sederhana. Semua hal ini menghabiskan waktu dan uang yang membutuhkan ratusan jam kerja untuk memperbaiki, menguji, dan menggunakan.

membuat IoT dashboard
[membuat IoT dashboard] Contoh arsitektur IoT

Untuk membangun aplikasi IoT, Anda perlu membuat struktur yang mencakup: perangkat, variabel, dasbor, dan peringatan.

Tipe koneksi IoT, arsitektur dan jaringan

Sistem IoT memiliki arsitektur tiga tingkat, yaitu: perangkat, gateway, dan sistem data. Data bergerak di antara level-level tersebut melalui empat jenis saluran transmisi.

Jenis koneksi

  1. Perangkat ke Perangkat => kontak secara langsung antara 2 perangkat pintar
  2. Perangkat ke Gateway => Transfer data antara sensor dan gateway
  3. Gateway ke Sistem data => Transfer data dari gateway menuju data cloud
  4. Antara sistem data.

Jenis Jaringan

Nanonetwork ialah satu set perangkat kecil (berukuran beberapa mikrometer saja) melakukan tugas yang sangat sederhana seperti penginderaan, komputasi, penyimpanan, dan aktuasi. Sistem seperti ini biasa diterapkan pada bidang biometrik, militer, dan nanoteknologi lainnya.

NFC (Near-Field Communication) adalah jaringan low-speed untuk menghubungkan perangkat elektronik pada jarak 4 cm dari satu dan yang lainnya. Biasa digunakan pada aplikasi sistem pembayaran tanpa kontak, ID card, dan kunci kartu.

BAN (Body Area Network), yaitu jaringan untuk menghubungkan perangkat komputasi yang dapat dikenakan pada tubuh manusia. Dapat ditempatkan di dekat tubuh pada posisi yang berbeda, atau bahkan tertanam di dalam tubuh.

PAN (Personal Area Network) ialah jaringan untuk menghubungkan perangkat dalam jangkauan radius kira-kira satu atau beberapa kamar.

LAN (Local Area Network) adalah jaringan yang mencakup area satu gedung.

CAN (Campus / Corporate Area Network) - jaringan yang menyatukan area lokal, yang masih dalam area geografis terbatas (perusahaan, universitas).

MAN (Metropolitan Area Network) yaitu jaringan luas untuk area metropolitan tertentu yang menggunakan teknologi transmisi gelombang mikro.

WAN (Wide Area Network) - jaringan yang ada di wilayah geografis berskala besar dan menyatukan berbagai jaringan yang lebih kecil, termasuk LAN dan MAN.

Protokol

Pada bagian ini, kita akan melihat protokol utama apa saja yang dapat berfungsi dengan dashboard IoT.

MQTT (Message Queue Telemetry Transport) adalah protokol ringan yang paling populer untuk mengirim aliran data dari sensor menuju aplikasi dan middleware. Protokol ini berfungsi di atas TCP / IP yang mencakup tiga komponen, yaitu: subscriber, publisher, and broker. Publisher mengumpulkan data dan mengirimkannya kepada subscriber. MQTT cocok digunakan untuk perangkat kecil, murah, memori kecil dan berdaya rendah.

DDS (Data Distribution Service) adalah standar IoT untuk komunikasi antar mesin secara real-time, terukur, dan berkinerja tinggi. Anda dapat menggunakan DDS pada perangkat komputer kecil ataupun pada cloud.

AMQP (Advanced Message Queuing Protocol) adalah protokol lapisan aplikasi untuk lingkungan middleware berorientasi pesan(message) yang disetujui sebagai standar internasional. 

Bluetooth adalah teknologi komunikasi jarak pendek yang terintegrasi di dalam sebagian besar smartphone dan perangkat seluler. Bluetooth sangat terkenal bagi pengguna ponsel.

Kesimpulan

Dalam membuat IoT dashboard, ada banyak hal yang harus diperhatikan agar sistem dapat berfungsi dengan baik. Pada artikel selanjutnya kita akan membahas mengenai beberapa contoh IoT dashboard yang ada di pasaran. Sehingga, kita bisa menentukan solusi paling tepat untuk memecahkan masalah yang di hadapi dengan menggunakan sistem IoT.

Kali ini saya akan menjabarkan beberapa jenis arduino sensor yang sering digunakan oleh para makers dan hobbiest untuk membangun project yang inovatif. Oleh karena itu, mari kita simak satu per satu.

Temperature dan kelembaban

jenis arduino sensor dht11 DHT11 adalah langkah awal untuk anda yang baru mulai mempelajari jenis arduino sensor. Dengan harga yang sangat murah Anda dapat mengukur temperature dan kelembaban udara. Sensor ini menggunakan prinsip kerja kelembaban kapasitif dan thermistor untuk mengukur kondisi udara di lingkungan sekitar dan mengeluarkan signal digital pada pin data. DHT11 ini sangat mudah digunakan, namun membutuhkan timing yang tepat dalam pengambilan data karena ada keterbatasan kemampuannya mengambil data. Kekurangan yang terdapat pada sensor ini adalah dibutuhkannya waktu 2 detik untuk setiap pengambilan data.

Sensor ini memiliki kakak seperguruan :), yaitu DHT22 yang memiliki tingkat keakurasian yang lebih baik dan rentang pengukuran temperature yang lebih tinggi, namun memiliki harga yang sedikit lebih mahal.

Untuk praktek cara menggunakan sensor ini Anda dapat membaca artikel ini.

Ultrasonic Sensor

jenis arduino sensor ultrasonic HC-SR04 adalah jenis arduino sensor Ultrasonic untuk mengukur jarak yang sering digunakan oleh pemula. Sensor ini adalah jenis arduino sensor yang digunakan untuk mendeteksi jarak dari ujung sensor menuju objek dihadapannya dengan menggunakan gelombang ultrasonic (sonar). Sensor ini sangat ideal untuk proyek robotik yang mengharuskan robot bergerak untuk menghindari objek dengan cara mendeteksi seberapa dekat dengan rintangan yang ada di dekatnya,. Dengan begitu Anda dapat memprogrammnya agar tidak terjadi benturan.

HC-SR04 menggunakan sonar ultrasonic non-kontak untuk mengukur jarak sensor menuju objek. Sensor ini terdiri dari dua pemancar ultrasonik (seperti pada speaker suara), yang satu berfungsi sebagai pemancar, dan yang lainnya sebagai penerima. Pemancar mengeluarkan suara ultrasonik berfrekuensi tinggi, yang dapat memantul dari benda padat di dekatnya, setelah itu penerima akan menyerap setiap suara gema yang kembali menuju sensor. Gema ini kemudian di proses oleh sirkuit kontrol untuk menghitung perbedaan waktu antara sinyal yang di kirim dan di terima. Perbedaan waktu tempuh suara ini selanjutnya dapat digunakan dengan menggunakan persamaan matematika sederhana, untuk menghitung jarak antara sensor dan objek.

Contoh penggunaan dan coding dapat di lihat disini.

Sensor Cahaya

jenis arduino sensor photoresistor Modul sensor cahaya dilengkapi dengan LDR (Light Dependent Resistor). LDR ini memiliki resistensi variabel yang berubah-ubah bergantung pada intensitas cahaya yang jatuh di atasnya. Hal ini memungkinkan sensor untuk mengukur intensitas cahaya di sekitar lingkungannya.

Pada kondisi pencahayaan gelap, resistansi sensor sangatlah tinggi, terkadang dapat mencapai 1MΩ, akan tetapi, ketika sensor LDR terkena cahaya, resistansi akan turun secara dramatis, bahkan hingga beberapa ohm, tergantung pada intensitas cahaya. LDR memiliki sensitivitas yang bervariasi berdasarkan panjang gelombang cahaya, selain itu sensor ini pun merupakan perangkat non-linier.

Sensor suara

jenis arduino sensor suaraSensor suara adalah board kecil yang menggabungkan mikrofon (50Hz-10kHz) dan beberapa sirkuit pemprosesan untuk mengubah gelombang suara menjadi sinyal listrik.

Sinyal listrik ini dialirkan kepada LM393 High Precision Comparator untuk mengubahnya menjadi digital yang tersedia pada pin OUT.

Modul ini memiliki potensiometer untuk menyesuaikan sensitivitas keluaran sinyal . Anda dapat menetapkan threshold dengan menggunakan potensiometer; Sehingga ketika amplitudo suara melebihi nilai threshold, maka, modul akan menghasilkan sinyal yang rendah. Namun, jika pada kondisi sebaliknya modul tersebut akan menghasilkan sinyal yang tinggi.

Sensor kelembaban tanah

jenis arduino sensor soil moisture Cara kerja sensor kelembaban tanah cukup sederhana. Probe yang berada pada bagian luar memiliki bentuk seperti garpu dengan dua konduktor terbuka, yang bertindak sebagai variable resistor (seperti potensiometer) yang memiliki resistansi bervariasi sesuai dengan kadar air di dalam tanah.

Nilai resistansi ini berbanding terbalik dengan kelembaban tanah:

Sensor akan menghasilkan tegangan output sesuai dengan hambatan, sehingga kita dapat menentukan tingkat kelembaban tanah tersebut.

PIR Sensor Pendeteksi Gerakan

jenis arduino sensor PIR Sensor PIR (Passive Infrared) ini sangat ideal untuk mendeteksi pergerakan. Pada dasarnya, sensor ini mengukur cahaya inframerah dari objek yang masuk dalam jangkauan "penglihatannya".

Sehingga, sensor ini dapat mendeteksi pergerakan berdasarkan perubahan cahaya inframerah di lingkungan sekitarnya. Sensor ini sangat ideal digunakan untuk mendeteksi apakah ada orang yang bergerak masuk atau keluar dari jangkauan sensor tersebut.

Sensor Pendeteksi Gas

Sensor pendeteksi gas ini sensitif terhadap gas yang mudah terbakar seperti LPG, Butane, Propana, Metana, Alkohol dan Hidrogen. Resistensi sensor akan berbeda bergantung pada jenis gas di lingkungan sekitarnya.

jenis arduino sensor gas Sensor ini memiliki potensiometer internal yang memungkinkan Anda untuk menyesuaikan batas threshold digital sensor (D0). 

Tegangan yang dihasilkan sensor akan berubah sesuai dengan kadar asap / gas yang ada di atmosfer. Selanjutnya sensor akan mengeluarkan tegangan yang sebanding dengan konsentrasi asap / gas.

Dengan kata lain, hubungan antara tegangan dan konsentrasi gas adalah sebagai berikut:

Output dapat berupa sinyal analog (A0) yang dapat dibaca oleh input analog Arduino atau output digital (D0) yang dapat dibaca dengan input digital Arduino.

Sensor Pendeteksi Hujan

jenis arduino sensor hujanCara kerja sensor ini cukup mudah. Permukaan sensor yang memiliki rangkaian sirkuit tembaga bertindak sebagai variable resistor (sama seperti prinsip kerja potensiometer) dimana resistansi akan bervariasi berdasarkan jumlah air yang berada pada permukaan.

Resistansi ini berbanding terbalik dengan jumlah air pada permukaan sensor:

Jenis Arduino sensor ini menghasilkan tegangan output sesuai dengan hambatan yang di ukur sehingga kita dapat menentukan apakah cuaca di luar ruangan hujan atau tidak.

Line Tracking Sensor

jenis sensor arduino line tracking Sensor Line tracking adalah jenis sensor inframerah yang dipantulkan, sensor ini biasa digunakan pada robot untuk mengikuti garis tertentu dan di pasang pada bagian bawah chasiss robot. Sensor ini bekerja dengan cara mendeteksi cahaya pantulan yang berasal dari LED inframerah yang berasal dari dirinya sendiri, lalu, dengan mengukur jumlah cahaya inframerah yang dipantulkan itu, sensor ini dapat mendeteksi transisi dari cahaya terang ke gelap (sesuai dengan jalur garis yang ditentukan).

Sensor Kemiringan

Sensor kemiringan memungkinkan untuk mendeteksi orientasi atau kemiringan perangkat Anda. Sehingga sensor ini dapat mendeteksi apakah perangkat tersebut benar-benar dalam kondisi tegak atau ada sedikit kemiringan.

jenis arduino sensor tilt Fungsi tersebut sangat berguna untuk digunakan, misalnya, pada mainan, robot dan peralatan lain yang kerjanya bergantung pada kemiringan.

Cara kerja sensor ini adalah:

Dengan cara ini, sensor tersebut berfungsi seperti sakelar yang dihidupkan atau dimatikan tergantung pada kemiringannya. Sehingga, hal tersebut akan memberikan informasi digital kepada Arduino, baik dalam keadaan sinyal yang tinggi ataupun rendah.

Kesimpulan

Jenis Arduino sensor yang dipaparkan pada artikel ini hanya ada 10 jenis, namun anda dapat menemui masih banyak lagi sensor yang kompatibel dengan Arduino. Setelah membaca semua jenis arduino sensor di atas (,saya sarankan anda untuk membeli paket starter kit arduino dari marketplace pilihan anda, seperti pada link tokopedia ini jika anda belum memiliki Arduino. Namun, jika anda sudah memilikinya anda dapat memilih seller lain yang hanya menjual paket Arduino sensor.

Jika Anda tertarik membuat project Arduino dan keluarganya. Anda dapat melihat referensi untuk membuat IoT sistem manajemen sampah dengan menggunakan cloud firebase database untuk menyimpan data.

Selain itu, project menarik lainnya pun bisa Anda kombinasikannya dengan Raspberry Pi sehingga dapat membuat IoT Dashboard dengan memanfaatkan Grafana Open source untuk memonitor temperature dan humidity. Tampilan Grafana tampak lebih professional, mudah digunakan dan sangat flexible

Tunggu apa lagi, ayo membangun proyek yang menarik dan inovatif bersama Arduino.

Artikel rekomendasi:

Apa itu nodemcu? Jenis IoT Board yang murah dan populer
Python Data Visualisasi dengan Seaborn
Mendeteksi Object Dengan Tensorflow
IoT D
engan Python dan Raspberry Pi
Mendeteksi Object Dengan Raspberry Pi

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:

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