Arduino

Arduino

Arduino adalah platform mikrokontroler open-source populer yang biasa digunakan untuk membuat perangkat elektronik interaktif. Arduino merupakan platform elektronik yang sangat serbaguna dan dapat digunakan untuk berbagai proyek, mulai dari yang sederhana seperti menyalakan lampu hingga proyek yang lebih kompleks misalnya robot dan mesin-mesin otomatis.

Arduino terdiri dari dua bagian utama yaitu perangkat keras Arduino yang berupa papan sirkuit elektronik dan perangkat lunak Arduino yang digunakan untuk membuat instruksi atau program. Perangkat keras Arduino terdiri dari mikrokontroler, konektor-konektor berupa pin, port USB dan soket power supply. Sedangkan perangkat lunak nya adalah Arduino IDE (Integrated Development Environment) yang digunakan untuk menulis program untuk Arduino.

Pembuatan proyek elektronik dengan Arduino secara garis besar terdiri dari 2 proses utama yaitu:

1. Perakitan komponen dan modul elektronik seperti sensor-sensor, motor dan komponen lainnya yang dihubungkan dengan Arduino

2. Pemrograman, yaitu menuliskan instruksi atau langkah-langkah tugas yang akan dikerjakan oleh arduino dengan menggunakan bahasa pemrograman komputer.

Sebelum kita masuk ke dua proses diatas, kita perlu mengenal Arduino lebih dalam lagi agar nantinya mudah untuk mengaplikasikannya.

Bagian-Bagian Utama Arduino

Ada banyak jenis atau tipe Arduino yang beredar saat ini, dimana setiap jenis tersebut memiliki fitur yang berbeda-beda. Dalam pembelajaran ini kita akan menggunakan Arduino Uno sebagai perangkat utama. Arduino Uno terdiri dari beberapa komponen pokok yaitu:

Mikrokontroler

Mikrokontroler adalah sebuah chip komputer sederhana yang merupakan otak dari sebuah Arduino. Mikrokontroler ini bertugas untuk melakukan pemrosesan data input dari sensor atau komponen lainnya, melakukan kalkulasi dan komputasi lalu menampilkan hasilnya lewat output. Arduino Uno menggunakan chip ATMega 328p sebagai CPU.

Pin Digital

Pin Digital pada Arduino berfungsi sebagai GPIO (General Purpose Input Output) atau disebut juga pin input dan output serbaguna. Pin Digital ini dapat digunakan untuk membaca nilai-nilai hasil pembacaan input dari sensor dan juga dapat digunakan untuk melakukan kontrol pada output

Pin Analog Input (Analog In)

Pin analog input memiliki kemampuan membaca input dari sensor-sensor analog yang bekerja dengan cara merubah tegangan listrik. Misalnya, potensiometer, LDR dll.

Power Pin

Power pin berfungsi untuk memberikan daya listrik untuk menyalakan sensor-sensor yang terhubung dengan Arduino. power pin ini menyediakan tegangan kerja sebesar 5 volt dan 3.3 volt yang cukup untuk menghidupkan beberapa jenis sensor dan lampu LED.

Soket USB

Supaya Arduino dapat bekerja dengan baik, maka Arduino harus di program dahulu dengan menggunakan Arduino IDE. Pemrograman dilakukan dengan menggunakan komputer atau laptop yang sudah terinstal Arduino IDE sebelumnya. Setelah program berhasil dibuat, maka program harus di unggah kedalam mesin Arduino dengan cara menghubungkan Arduino dengan komputer lewat kabel USB. Soket USB pada Arduino digunakan untuk menghubungkan Arduino dengan komputer agar dapat di program.

Soket Power Supply

Terakhir, Arduino membutuhkan daya listrik untuk dapat bekerja dengan baik terutama jika sudah berbentuk proyek yang telah jadi. Untuk itu, arduino juga memiliki soket power supply sebagai tempat masuknya daya listrik dari adaptor maupun baterai. Soket power supply ini bekerja pada tegangan antara 5 – 12 Volt dan direkomendasikan untuk menggunakan tegangan antara 5-9 volt saja untuk memperpanjang masa pakainya.

Demikian materi kita kali ini, pada materi berikutnya kita akan membahas seluk beluk software atau aplikasi yang digunakan untuk memprogram Arduino yaitu, Arduino IDE.

Sekian dari saya, terima kasih.

Computational Thinking (Cara Berfikir Komputasional)

Computational Thinking (Cara Berfikir Komputasional)
Photo by olia danilevich: https://www.pexels.com/photo/man-using-3-computers-4974914/

Ilmu komputer adalah salah satu cabang dari bidang sains yang mempelajari tentang komputasi, pengembangan perangkat keras (hardware) dan perangkat lunak (software). ilmu komputer umumnya lebih menekankan pengembangan algoritma, artificial intelligence (AI) dan pemrograman atau rekayasa perangkat lunak. Seorang ilmuwan komputer selalu dituntut untuk bisa memecahkan berbagai masalah yang berhubungan dengan dunia komputer dan komputasi dengan efisien. Oleh karena itu, mereka selalu dituntut untuk bisa berpikir secara sistematis dan logis agar bisa menyelesaikan masalah-masalah terkait teknologi komputer ini.

Computational Thinking adalah pendekatan pemecahan masalah yang terinspirasi dari cara berpikir para ilmuwan komputer. Seorang ilmuwan komputer biasanya akan menerapkan langkah-langkah kerja secara sistematis dalam mengembangkan perangkat lunak maupun perangkat keras komputer, sehingga komputer dapat bekerja dengan efisien dan sesuai dengan keinginan pembuatnya. Dalam era di mana teknologi semakin berkembang pesat dan berpacu sangat cepat seperti saat ini, kemampuan untuk berpikir secara komputasional menjadi semakin penting untuk mengatasi berbagai masalah dan tantangan, bukan hanya di dunia komputer tapi juga dalam berbagai aspek kehidupan sehari-hari. Dalam tulisan ini, kita akan mengenali apa itu konsep Computational Thinking atau cara berfikir komputasional dan melihat bagaimana penerapannya dapat memberikan manfaat nyata dalam kehidupan sehari-hari.

Fondasi Berfikir dalam Computatonal Thinking

Computational Thinking adalah pendekatan berpikir yang sistematis dan logis dalam memecahkan masalah, dengan menerapkan prinsip-prinsip ilmu komputer. Dalam penerapannya, para ilmuwan komputer menggunakan 4 fondasi berfikir komputasional yang dikenal dalam ilmu informatika, yaitu Abstraksi, Algoritma, Dekomposisi dan Pola. Penjelasan tentang 4 fondasi ini dapat kita pahami satu persatu dibawah ini:

1. Abstraksi

Abstraksi adalah proses menghilangkan detail yang tidak relevan atau bagian-bagian yang tidak penting dari suatu masalah untuk membuat masalah tersebut lebih mudah dipahami dan diselesaikan. Dalam Computational Thinking, abstraksi digunakan untuk membuat masalah lebih mudah dipecah menjadi masalah yang lebih kecil dan lebih mudah dikelola. Abstraksi juga digunakan untuk membuat solusi masalah lebih efisien dan efektif.

Ada beberapa cara untuk melakukan abstraksi. Salah satu cara yang paling umum adalah dengan menggunakan representasi/gambaran abstrak dari data. Representasi abstrak atau gambaran umum dari data dapat berupa diagram, grafik, atau tabel. Representasi abstrak dari data dapat membantu kita untuk melihat pola dan hubungan antara data yang tidak dapat dilihat dengan jelas jika kita hanya melihat data dalam bentuk aslinya.

Abstraksi adalah keterampilan yang penting dalam Computational Thinking. Keterampilan abstraksi dapat membantu kita untuk memahami masalah yang kompleks, sehingga kita dapat memecah masalah menjadi masalah yang lebih kecil, dan membuat solusi masalah yang efisien dan efektif.

2. Algoritma

Algoritma adalah serangkaian langkah yang terstruktur untuk menyelesaikan suatu masalah. Algoritma dapat digunakan untuk memecahkan masalah secara sistematis dan efisien.

Dalam Computational Thinking, algoritma digunakan untuk memecahkan masalah yang kompleks. Algoritma dapat membantu kita untuk memahami masalah dengan lebih baik, memecah masalah menjadi masalah yang lebih kecil, dan membuat solusi masalah yang efisien dan efektif.

3. Dekomposisi

Dekomposisi adalah proses memecahkan masalah yang kompleks menjadi masalah yang lebih kecil dan lebih mudah dikelola. keterampilan dekomposisi Ini adalah salah satu keterampilan yang sangat penting dalam computational thinking. Dengan keterampilan dekomposisi, masalah yang besar dan kompleks (rumit) akan terbagi menjadi blok-blok kecil yang dapat diselesaikan satu persatu dengan mudah.

.4. Pola

Adalah kemampuan untuk mengenali kemiripan maupun pola. Pola dapat ditemukan dalam data, kode, dan sistem. Pengenalan pola adalah keterampilan yang penting dalam Computational Thinking karena dapat membantu kita untuk memahami masalah, membuat solusi yang lebih baik, dan membuat prediksi berdasarkan kemiripan data atau sistem yang telah ada sebelumnya.

Kemampuan berfikir secara komputasional atau computational thinking harus senantiasa diasah dengan rutin dengan cara menyelesaikan berbagai permasalahan mulai dari yang sederhana sampai ke permasalahan yang lebih rumit.

Penerapan Computational Thinking dalam Kehidupan Sehari-hari

Computational thinking, jika diterapkan, dapat mempermudah kita menyelesaikan berbagai permasalahan dalam kehidupan sehari-hari dengan cara yang terstruktur dan efisien. Computational thinking dapat diterapkan untuk:

Pemecahan Masalah Personal:

  1. Menghadapi tantangan sehari-hari, seperti mengatur jadwal atau mengelola keuangan pribadi, dapat dipecahkan dengan mendekomposisi atau mengurai masalah menjadi tugas-tugas yang lebih sederhana.
  2. Menerapkan algoritma dalam rutinitas harian untuk meningkatkan efisiensi dan produktivitas.

Pengambilan Keputusan:

Menggunakan analisis data untuk membuat keputusan yang lebih cerdas, seperti dalam memilih produk atau layanan yang sesuai dengan kebutuhan kita. Menerapkan abstraksi untuk memfokuskan pada informasi yang relevan dan mengabaikan yang tidak penting.

Pengembangan Keterampilan:

Dalam memperlajari hal-hal baru, Computational Thinking membantu kita memecah materi menjadi bagian-bagian kecil yang lebih mudah dipahami dan memberikan pola berpikir yang jelas dalam proses pembelajaran.

Pemecahan Masalah Kompleks:

Dalam menghadapi masalah besar, seperti isu lingkungan atau sosial, Computational Thinking membantu dalam merumuskan solusi yang terukur dan berorientasi pada data.

Kreativitas dan Inovasi:

Computational Thinking dapat meningkatkan kreativitas dan inovasi karena dapat memunculkan berbagai macam kemungkinan baru selama proses berfikir sehingga muncul ide-ide baru yang bisa jadi belum pernah terpikir sebelumnya.

Computational Thinking adalah keterampilan kritis yang harus dikuasai setiap siswa dalam era digital seperti saat ini. Dengan menerapkan pendekatan berpikir yang sistematis ini, kita dapat mengatasi berbagai masalah dengan lebih baik, mengoptimalkan peluang, dan mengambil keputusan yang lebih cerdas dalam berbagai aspek kehidupan kita, terutama dibidang informatika. Oleh karena itu, ayo terus mengembangkan dan mengasah keterampilan Computational Thinking kita agar dapat meraih keberhasilan di masa depan yang semakin canggih.

Physical Computing

Physical Computing
Physical Computing

Physical computing merupakan bidang yang menggabungkan dunia fisik dengan teknologi digital. Melalui interaksi antara sensor, perangkat keras, dan perangkat lunak. Physical computing memungkinkan kita untuk menciptakan sistem yang merespons dan berinteraksi dengan dunia nyata. Dalam tulisan ini, kita akan menjelajahi konsep dan potensi menarik yang dimiliki oleh physical computing, serta beberapa contoh proyek yang menarik dari bidang ini.

Apa itu Physical Computing?

Physical computing adalah disiplin yang memanfaatkan perangkat keras (seperti sensor, aktuator, dan mikrokontroler) dan perangkat lunak untuk membangun sistem interaktif yang merespons lingkungan fisik. Konsep dasar dari physical computing adalah menghubungkan dunia fisik dengan dunia digital melalui interaksi yang bersifat real-time.

Pada dasarnya, physical computing memungkinkan benda-benda di sekitar kita menjadi “cerdas”. Contohnya, sebuah lampu yang dapat menyala secara otomatis ketika ada gerakan di dekatnya, atau sebuah tanaman yang memberi tahu pemiliknya ketika butuh disiram melalui pesan ke ponsel.

Komponen Physical Computing

a. Sensor: Sensor adalah perangkat yang mengubah sinyal fisik menjadi sinyal digital yang dapat dimengerti oleh komputer. Sensor dapat mendeteksi berbagai hal seperti suhu, cahaya, gerakan, suara, dan banyak lagi. Sensor ini menjadi “indra” bagi sistem physical computing.

b. Mikrokontroler: Mikrokontroler adalah otak dari sistem physical computing. Ia adalah perangkat keras yang mengambil data dari sensor, memprosesnya, dan memberikan instruksi pada aktuator. Mikrokontroler seperti Arduino dan Raspberry Pi sangat populer dalam proyek physical computing karena kecil, hemat energi, dan dapat diatur dengan mudah.

c. Aktuator: Aktuator adalah perangkat yang melakukan tindakan berdasarkan instruksi dari mikrokontroler. Contoh aktuator termasuk motor, LED, relay, dan banyak lagi. Aktuator memungkinkan sistem physical computing untuk berinteraksi dengan dunia fisik.

d. Perangkat Lunak: Perangkat lunak memungkinkan pengaturan, analisis, dan tampilan data yang dihasilkan oleh sistem physical computing. Dengan perangkat lunak, kita dapat mengendalikan bagaimana sistem merespons input dari sensor dan mengarahkan aksi dari aktuator.

Contoh Proyek Physical Computing

Image by Csaba Nagy from Pixabay

a. Stasiun Cuaca Interaktif: Dengan menggunakan sensor suhu, kelembaban, dan cahaya, kita dapat membuat weather station yang secara otomatis menampilkan data cuaca dan memberikan saran berpakaian sesuai kondisi.

b. Smart Garden (Kebun Pintar): Proyek ini memanfaatkan sensor tanah untuk mengukur tingkat kelembaban tanah, sensor cahaya untuk menentukan intensitas cahaya, dan aktuator untuk mengatur penyiraman tanaman secara otomatis.

c. Smart Home (Rumah Pintar): Proyek ini memungkinkan sebuah rumah memiliki sistem kontrol, monitoring dan otomatisasi yang sangat canggih yang dapat dipantau lewat smartphone

.

Kesimpulan

Physical computing adalah bidang menarik yang memungkinkan kita untuk menciptakan sistem interaktif yang merespons dan berinteraksi dengan dunia fisik. Dengan memanfaatkan sensor, mikrokontroler, aktuator, dan perangkat lunak, kita dapat membuat proyek-proyek kreatif dan inovatif yang dapat meningkatkan cara kita berinteraksi dengan teknologi. Dari proyek sederhana hingga instalasi seni yang kompleks, physical computing membuka pintu menuju kreativitas tanpa batas di dunia fisik dan digital.

Pengantar Informatika

Pengantar Informatika

Informatika adalah salah satu bidang ilmu yang menjadi pilar utama dalam era digital yang kita hadapi saat ini. Tanpa disadari, hampir semua aspek kehidupan modern telah dipengaruhi oleh kemajuan informatika. Dari komunikasi, transportasi, hingga bidang kesehatan dan keuangan, informatika telah menjadi tulang punggung yang mendukung perkembangan masyarakat. Dalam tulisan ini, kita akan menjelajahi peran informatika dalam dunia modern dan dampak positifnya.

Apa itu Informatika?

Informatika, secara sederhana, adalah ilmu yang berkaitan dengan pengolahan, pengelolaan, dan pemanfaatan informasi menggunakan teknologi komputer. Bidang ini meliputi aspek pemrograman, analisis data, kecerdasan buatan (AI), keamanan cyber, jaringan komputer, dan berbagai topik lainnya yang terkait dengan teknologi informasi.

Kemajuan informatika telah menyebabkan revolusi digital yang telah mengubah cara kita hidup dan bekerja. berbagai perangkat pintar, seperti smartphone dan tablet, telah membawa akses internet ke hampir seluruh populasi dunia. Revolusi ini telah mengubah cara kita berkomunikasi, berbelanja, mendapatkan informasi, dan melakukan aktivitas sehari-hari lainnya. Selain itu, mulai dikenal pula teknologi Internet of Things (IoT) yang memungkinkan benda-benda disekitar kita terhubung lewat internet sehingga mempermudah pemantauan dan pengendalian terhadap benda-benda tersebut.

Peran Informatika Dalam Kehidupan

1. Dalam Dunia Bisnis

Photo by cottonbro studio: https://www.pexels.com/photo/person-holding-black-android-smartphone-5076516/

Dalam dunia bisnis, informatika berperan penting dalam meningkatkan efisiensi dan produktivitas. Sistem manajemen basis data (database) memungkinkan perusahaan menyimpan dan mengakses informasi dengan mudah, sedangkan solusi e-commerce atau pasar digital memungkinkan perluasan jangkauan pasar secara global. Analisis data dan AI juga membantu dalam pengambilan keputusan bisnis yang lebih cerdas dan akurat. Informatika telah banyak merubah kebiasaan manusia dalam praktek jual-beli yang sebelumnya dilakukan dengan bertatap muka menjadi jual-beli online yang lebih praktis dan santai.

2. Pendidikan dan Pembelajaran

Dalam dunia pendidikan, Informatika telah merubah cara kita belajar dan mendapatkan informasi. Sebelumnya, informasi-informasi tentang ilmu pengetahuan dan sains hanya bisa diakses lewat buku cetak atau perpustakaan. Kini, akses ke sumber daya belajar menjadi semakin mudah dengan adanya berbagai materi digital seperti e-book, platform pembelajaran online (e-learning), dan sumber daya edukatif lainnya yang dapat diakses dari mana saja dan kapan saja tanpa harus beranjak dari tempat duduk kita. Informatika juga telah diterapkan dalam sistem pembelajaran adaptif, yang membantu siswa belajar sesuai dengan tingkat pemahaman mereka.

Photo by Julia M Cameron: https://www.pexels.com/photo/boy-in-yellow-crew-neck-t-shirt-and-gray-pants-sitting-on-carpet-4144148/

3. Kesehatan dan Medis

Di sektor kesehatan, informatika membantu diagnosa dan perawatan pasien. Teknologi medis seperti pencitraan medis, perangkat bantu berbasis AI, dan catatan kesehatan elektronik telah mengubah cara dokter merawat pasien. Ditambah lagi dengan adanya teknologi Internet of Things (IoT), tenaga medis dapat melakukan pemantauan kondisi fisik pasien dari jarak jauh tanpa harus melakukan pemeriksaan secara langsung sehingga mempercepat penanganan dan pertolongan pertama pada pasien. Selain itu, informasi medis yang mudah diakses juga memungkinkan masyarakat untuk lebih sadar akan kesehatan mereka dan mengambil langkah-langkah pencegahan yang tepat.

Kesimpulan

Informatika telah menjadi fondasi utama dari dunia digital yang kita kenal hari ini. Perannya yang tak terelakkan membentang dari berbagai sektor, merubah cara kita hidup, bekerja, dan berinteraksi. Dalam beberapa tahun ke depan, perkembangan di bidang informatika akan terus membawa inovasi dan perubahan positif bagi masyarakat. Dengan menjaga kesadaran tentang etika dan tanggung jawab dalam pemanfaatan teknologi ini, kita dapat membangun masa depan yang lebih cerah dan berkelanjutan.

Membaca Database Firebase dan Menampilkannya di Aplikasi Android

Membaca Database Firebase dan Menampilkannya di Aplikasi Android

Pada 2 tulisan sebelumnya kita sudah membahas tentang mengukur suhu ruangan dengan DHT 11 dan mengirimkan data hasil pembacaan sensor ke firebase, maka pada tulisan ini saya akan menyambung tulisan lagi untuk melengkapi project ini dengan menampilkan data yang tersimpan di firebase ke aplikasi android yang kita buat sendiri.

pada tulisan kali ini, kita akan menggunakan situs kodular membuat aplikasi android sederhana yang akan digunakan untuk membaca nilai yang tersimpan di firebase. Baiklah, tanpa berpanjang lebar lagi, langsung saja kit ake materi pokok nya

Kodular

Kodular adalah situs yang menyediakan platform pembuatan aplikasi android dengan mudah tanpa menggunakan text-based programming. Untuk membuat aplikasi android di kodular, kita hanya perlu melakukan drag and drop komponen untuk membuat tampilan aplikasi android. Untuk melakukan programming terhadap komponen yang telah disusun, kodular menyediakan sistem programming model block yang juga digunakan dengan metode drag and drop.

Tampilan Designer Tab pada Kodular
Tampilan Block Tab pada Kodular

Memulai Kodular

Untuk mulai menggunakan situs aplikasi kodular, ikutilah langkah-langkah berikut ini:

1. Buka browser dan ketikkan https://www.kodular.io/ lalu klik tombol “Create Apps”

2. Kita akan diarahkan ke halaman sign in. Pada halaman ini pilih sign in dengan menggunakan akun google.

3. lalu pilih akun gmail yang kamu miliki sebagai akun untuk log in ke kodular.

4. Setelah berhasil log in, kalian akan diarahkan ke halaman creator. Pada halaman ini akan terlihat project-project yang sudah pernah dibuat sebelumnya.

5. Untuk membuat project baru, maka klik tombol “Create project” pada bagian kiri atas halaman Kodular Creator.

6. Berikan nama untuk project yang akan kita buat.

7. Pada “Configure your project”, biarkan saja semua konfigurasi tetap default dan langsung klik finish.

8. Kita akan diarahkan ke tab Designer untuk membuat tampilan aplikasi android yang akan kita buat.

Membuat Aplikasi Android

Aplikasi android yang akan kita buat di situs kodular ini adalah aplikasi yang berfungsi untuk membaca data yang terdapat pada realtime database nya firebase. Untuk mempermudah pembuatan aplikasi silahkan ikuti langkah-langkah berikut ini.

1. Buatlah tampilan android sederhana seperti dibawah ini:

2. untuk komponen image, kalian bisa download asset nya disini lalu nanti upload di properties “Background Image” pada komponen Image2.

3. Pada komponen Firebase_Database1, kita akan diminta untuk memasukkan Firebase token dan firebase URL.

Firebase token bisa didapatkan dengan cara:

  • Buka web firebase dan masuk ke console.
  • Pilih project firebase yang telah kita buat sebelumnya.
  • Klik icon gear yang terdapat pada sebelah kiri atas layar lalu klik project settings
  • pada menu project settings, copy isian web API lalu paste kan ke firebase token di kodular

Firebase URL bisa didapatkan dengan cara

  • Buka web firebase dan masuk ke console.
  • Pilih project firebase yang telah kita buat sebelumnya.
  • Klik Realtime Database
  • Copy link yang terdapat didalam Realtime Database lalu pastekan ke Firebase URL di kodular

4. Masuk ke tab block dan ikuti gambar dibawah ini

Sampai disini, aplikasi kita sudah bisa di download dalam bentuk apk dengan cara klik export >> android APK. Copy aplikasi yang telah kita buat tadi ke HP kita lalu install

Jika pembuatan aplikasi berhasil, maka tampilan aplikasi yang kita buat akan terlihat seperti ini:

Jika kalian masih merasa kesulitan membuat aplikasi nya, silahkan download file aia dibawah ini lalu masukkan ke kodular dengan klik tombol import project pada halaman project.

Project aia

Demikianlah Membaca Database Firebase dan Menampilkannya di Aplikasi Android dengan menggunakan kodular, semoga tulisan ini bermanfaat. Sampai jumpa pada tulisan-tulisan berikutnya

Mengirim data sensor DHT11 dari ESP8266 ke firebase

Mengirim data sensor DHT11 dari ESP8266 ke firebase

Sebelumnya kita telah berhasil Mengukur Suhu dan Kelembaban Ruangan dengan menggunakan Sensor DHT11 dan ESP8266 (Part 1). Sekarang kita lanjutkan dengan tahapan berikutnya yaitu mengirim data sensor DHT11 dari ESP8266 ke firebase.

Tujuan dari proyek ini adalah untuk mengirim dan menyimpan data dari sensor DHT11 supaya nantinya data tersebut bisa dibaca oleh perangkat atau aplikasi lain yang juga terhubung dengan google firebase.

Seperti yang kita ketahui bersama, ESP8266 adalah mikrokontroller yang memliki fitur jaringan wireless sehingga sangat cocok digunakan untuk proyek-proyek IoT yang membutuhkan kontrol perangkat dari jarak jauh. Oleh karena itu, tulisan kali ini akan dibagi menjadi beberapa bagian yaitu:

Tulisan ini merupakan tulisan ke -2 dari 3 bagian yang tersedia dengan judul Mengirim data sensor DHT11 dari ESP8266 firebase. Langsung saja, berikut ini tutorialnya.

Google Firebase

Google firebase adalah platform pengembangan aplikasi yang membantu para developer untuk membangun serta mengembangkan aplikasi yang di dukung oleh google. firebase memiliki berbagai service yang dapat digunakan untuk berbagai kebutuhan aplikasi digital.

Dalam tulisan ini, kita akan mencoba untuk membuat database sederhana dengan menggunakan realtime database yang merupakan salah satu fitur yang terdapat di dalam google firebase.

Adapun Langkah mulai menggunakan Google Firebase adalah sebagai berikut:

Membuat Project Firebase

buka firebase.google.com lalu klik “sign in” dengan memasukkan akun google dan password kita (aplikasi google saya berbahasa Inggris, silahkan disesuaikan)

Berikutnya, setelah berhasil login, klik tombol “Get started”

pada laman berikutnya, kita pilih “add project”

Selanjutnya, beri nama project yang akan kita buat lalu klik continue

Berikutnya, saya menonaktifkan google analytics untuk project ini lalu klik tombol “Create project”

Setelah itu, kita tunggu proses pembuatan project nya, klik continue dan kita akan masuk ke halaman utama project firebase seperti gambar dibawah ini

Sampai disini kita telah berhasil membuat project firebase yang kita inginkan, namun masih perlu beberapa penyesuaian dan aktivasi fitur realtime database yang nantinya akan digunakan untuk menyimpan data hasil pembacaan sensor dari NodeMCU ESP8266.

Membuat Realtime Database

Setelah kita berhasil membuat project, langkah berikutnya kita akan membuat Realtime Database dengan cara klik menu build > Realtime Database

Kita akan diarahkan ke laman Realtime Database. Klik tombol “Create Database” untuk membuat database baru.

Berikutnya, kita pilih server “Singapore (asia-southeast1)” karena lebih dekat dengan lokasi kita, lalu klik next.

pada menu ‘Set up database”, pilih “Start in locked mode”. Setelah itu klik enable.

Sampai disini kita sudah berhasil membuat database, langkah berikutnya adalah memberi ijin untuk read/write database dengan cara klik tab “Rules”, ubah kedua tulisan “false” menjadi “true”.

Berikutnya, kita kembali ke menu build > autentication, lalu arahkan mouse ke “Sign in method” lalu pilih tombol “Anonymous”

Geser slider menjadi enable lalu save

Sampai disini Realtime Database sudah dapat menerima data dari NodeMCU ESP8266. Langkah berikutnya adalah melakukan programming di Arduino IDE.

Menambahkan Firebase ke Sketch DHT11

Buka kembali sketch/program DHT 11 yang pernah dibuat sebelumnya pada tulisan sebelumnya di Mengukur Suhu dan Kelembaban Ruangan dengan menggunakan Sensor DHT11 dan ESP8266.

Buka Library manager di sebelah kiri layar (saya menggunakan Arduino IDE 2.1.0), cari library “Firebase Arduino Client Library for ESP8266 and ESP32”. Jika sudah ketemu, Klik install (perhatikan gambar)

Setelah library berhasil diinstal, kita lanjutkan menulis sketch dengan menambahkan beberapa library supaya ESp8266 bisa terhubung ke firebase.

Tambahkan library ESP8266WIF.I.h dan buatlah variabel untuk menyimpan data SSID dan password wifi

#include "DHT.h"
#include <ESP8266WiFi.h>
#define WIFI_SSID "nama_wifi" // isikan nama 
#define WIFI_PASSWORD "password_wifi"

Berikutnya, tambahkan library firebase dan buatah variabel untuk menyimpan data API key dan URL database dari firebase kita:

#include <Firebase_ESP_Client.h>
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"
#define API_KEY "API_dari_firebase"
#define DATABASE_URL "link_realtime_database"

Untuk mendapatkan API key, kita harus membuka firebase terlebih dahulu lalu buka project settings. Perhatikan gambar berikut:

Sedangkan link database bisa di copy dari menu Realtime Database

Langkah berikutnya adalah membuat firebase data objectdengan mengetikkan:

FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long sendDataPrevMillis = 0;
bool signupOK = false;

pada void setup() tambahkan:

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED){
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  config.api_key = API_KEY;
  config.database_url = DATABASE_URL;

  /* Sign up */
  if (Firebase.signUp(&config, &auth, "", "")){
    Serial.println("ok");
    signupOK = true;
  }
  else{
    Serial.printf("%s\n", config.signer.signupError.message.c_str());
  }

  /* Assign the callback function for the long running token generation task */
  config.token_status_callback = tokenStatusCallback; //see addons/TokenHelper.h
  
  Firebase.begin(&config, &auth);
  Firebase.reconnectWiFi(true);

Terakhir, pada void loop tambahkan:

if (Firebase.ready() && signupOK && (millis() - sendDataPrevMillis > 15000 || sendDataPrevMillis == 0)){
    sendDataPrevMillis = millis();
    if (Firebase.RTDB.setFloat(&fbdo, "DHT/Kelembaban", h)){
      Serial.println("PASSED");
      Serial.println("PATH: " + fbdo.dataPath());
      Serial.println("TYPE: " + fbdo.dataType());
    }
    else {
      Serial.println("FAILED");
      Serial.println("REASON: " + fbdo.errorReason());
    }

    if (Firebase.RTDB.setFloat(&fbdo, "DHT/Suhu", t)){
      Serial.println("PASSED");
      Serial.println("PATH: " + fbdo.dataPath());
      Serial.println("TYPE: " + fbdo.dataType());
    }
    else {
      Serial.println("FAILED");
      Serial.println("REASON: " + fbdo.errorReason());
    }
  }

Sampai disini Sketch atau program telah selesai dikerjakan, langkah berikutnya adalah melakukan upload ke ESP8266.

Keseluruhan code dapat kamu lihat di bawah ini:

#include "DHT.h"
#include <ESP8266WiFi.h>
#define WIFI_SSID "nama_wifi"
#define WIFI_PASSWORD "password_wifi"

#include <Firebase_ESP_Client.h>
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"

#define API_KEY "API_Key dati project setting"
#define DATABASE_URL "link yang ada di realtime database" 

#define DHTPIN 4    
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);

//firebase data object
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;

unsigned long sendDataPrevMillis = 0;
bool signupOK = false;

void setup() {
  Serial.begin(115200);
  dht.begin();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED){
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  config.api_key = API_KEY;
  config.database_url = DATABASE_URL;

  /* Sign up */
  if (Firebase.signUp(&config, &auth, "", "")){
    Serial.println("ok");
    signupOK = true;
  }
  else{
    Serial.printf("%s\n", config.signer.signupError.message.c_str());
  }

  /* Assign the callback function for the long running token generation task */
  config.token_status_callback = tokenStatusCallback; //see addons/TokenHelper.h
  
  Firebase.begin(&config, &auth);
  Firebase.reconnectWiFi(true);
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
    if (isnan(h) || isnan(t)) {
    Serial.println(F("gagal membaca DHT11"));
    return;
  }

  Serial.print(F("Kelembaban: "));
  Serial.print(h);
  Serial.print(F("%  Suhu Udara: "));
  Serial.print(t);
  Serial.println(F("°C "));

  if (Firebase.ready() && signupOK && (millis() - sendDataPrevMillis > 15000 || sendDataPrevMillis == 0)){
    sendDataPrevMillis = millis();
    if (Firebase.RTDB.setFloat(&fbdo, "DHT/Kelembaban", h)){
      Serial.println("PASSED");
      Serial.println("PATH: " + fbdo.dataPath());
      Serial.println("TYPE: " + fbdo.dataType());
    }
    else {
      Serial.println("FAILED");
      Serial.println("REASON: " + fbdo.errorReason());
    }

    if (Firebase.RTDB.setFloat(&fbdo, "DHT/Suhu", t)){
      Serial.println("PASSED");
      Serial.println("PATH: " + fbdo.dataPath());
      Serial.println("TYPE: " + fbdo.dataType());
    }
    else {
      Serial.println("FAILED");
      Serial.println("REASON: " + fbdo.errorReason());
    }
  }
}

Jika upload berhasil maka data akan terkirim ke Realtime Database seperti yang terlihat dibawah ini

Tampilan Firebase
Tampilan serial monitor

Demikianlah tulisan saya hari ini, tulisan yang lebih banyak gambarnya daripada teks nya.
pada tulisan berikutnya kita akan ke judul selanjutnya yaitu: Membuat aplikasi android sederhana untuk menampilkan pembacaan DHT11 dengan kodular

Mengukur Suhu dan Kelembaban Ruangan dengan menggunakan Sensor DHT11 dan ESP8266 (Part 1)

Mengukur Suhu dan Kelembaban Ruangan dengan menggunakan Sensor DHT11 dan ESP8266 (Part 1)

Setelah berhasil melakukan Pengukuran Suhu dan Kelembaban dengan DHT 11 dan Arduino, kali ini kita akan mencoba untuk melakukan hal yang sama dengan mikrokontroler NodeMCU ESP8266.

Seperti yang kita ketahui bersama, ESP8266 adalah mikrokontroller yang memliki fitur jaringan wireless sehingga sangat cocok digunakan untuk proyek-proyek IoT yang membutuhkan kontrol perangkat dari jarak jauh. Oleh karena itu, tulisan kali ini akan dibagi menjadi beberapa bagian yaitu:

Tulisan ini merupakan tulisan pertama dari 3 bagian yang tersedia dengan judul Mengukur Suhu dan Kelembaban Ruangan dengan menggunakan Sensor DHT11 dan ESP8266. Langsung saja, berikut ini tutorialnya.

Bahan-bahan

pada tutorial ini kita menggunakan sensor DHT 11, NodeMCU ESP8266 dan beberapa helai kabel jumper.

NodeMCU ESP82661 Buah
Sensor DHT111 Buah
Kabel JumperSecukupnya

Skema Rangkaian

Setelah bahan-bahan tersedia, kita lanjutkan ke proses perangkaian komponen. Perhatikan gambar skema dibawah ini dengan seksama agar tidak salah colok kabel

Program / Sketch

Hubungkan NodeMCU ESP8266 ke komputer lewat kabel USB dan pilih board (saya menggunakan NodeMCU 1.0(ESP-12E Module)) dan port dengan benar lalu upload program dibawah ini:

#include "DHT.h"

#define DHTPIN 4    
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
    if (isnan(h) || isnan(t)) {
    Serial.println(F("gagal membaca DHT11"));
    return;
  }

  Serial.print(F("Kelembaban: "));
  Serial.print(h);
  Serial.print(F("%  Suhu Udara: "));
  Serial.print(t);
  Serial.println(F("°C "));
}

Jika rangkaian telah dirakit dengan benar dan sketch atau program juga telah diketik dengan benar maka kita bisa melihat hasilnya pada layar serial monitor seperti dibawah ini.

perhatikan juga baudrate yang ada pada serial monitor harus sama dengan yang ada pada sketch yaitu 115200.

Jika tampilan serial monitor sudah menunjukkan nilai kelembaban dan suhu, maka bisa dikatakan peragaaan yang kamu kerjakan telah berhasil.

Ok, segitu aja tulisan untuk bagian pertama ini, kita lanjut ke bagian ke-2 yaitu : Mengirim data sensor DHT11 dari ESP8266 firebase.
Sekian dan terima kasih

Pengukuran Suhu dan Kelembaban dengan DHT 11 dan Arduino

Pengukuran Suhu dan Kelembaban dengan DHT 11 dan Arduino

Salah satu kemudahan yang kita dapatkan dari development board Arduino adalah kemampuannya untuk membaca berbagai kondisi lingkungan dengan bantuan bermacam-macam sensor. Sensor-sensor ini dapat dengan mudah dihubungkan dengan Arduino dan mudah pula di program dengan bantuan berbagai library yang telah tersedia secara default di Arduino IDE maupun dari berbagai sumber di internet.

Pada tulisan ini saya akan mencoba untuk memberi tutorial tentang cara mengukur suhu dan kelembaban ruangan dengan menggunakan Arduino dan sensor DHT-11. Hasil pengukuran pada tutorial ini akan ditampilkan pada serial monitor sehingga kita bisa melihat hasilnya secara langsung.

DHT-11

DHT11 adalah salah satu jenis sensor yang sering digunakan bersama-sama arduino. Sensor ini digunakan untuk mengukur suhu dan kelebaban udara disekitarnya. Spesifikasi umum dari sensor DHT 11 adalah sebagai berikut:

  • Tegangan kerja antara 3-5 Volt
  • Rentang pengukuran suhu antara 0-50 derajat celcius
  • Rentang pengukuran kelembaban antara 20-90% RH (kelembaban Relatif)
  • Kebutuhan Arus 0.5 mA – 2.5 mA
DHT11

Perakitan

Bahan-bahan

Arduino Uno1 Buah
DHT 111 Buah
BreadBoard1 Buah
kabel JumperSecukupnya

Skema Rangkaian

ArduinoDHT 11
5VVCC
GNDGND
Pin 2Dout

Sketch / Program

Setelah rangkaian berhasil dibuat, maka langkah berikutnya adalah menulis dan mengupload program yang telah ditulis ke Arduino.

Ketiklah program dibawah ini dengan menggunakan Arduino IDE, lalu lakukan proses upload ke Arduino dengan menghubungkan Arduino lewat USB. Jangan lupa tentukan tipe Arduino dan port yang di gunakan pada menu tools.

#include "DHT.h"

#define DHTPIN 2    
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
    if (isnan(h) || isnan(t)) {
    Serial.println(F("gagal membaca DHT11"));
    return;
  }

  Serial.print(F("Kelembaban: "));
  Serial.print(h);
  Serial.print(F("%  Suhu Udara: "));
  Serial.print(t);
  Serial.println(F("°C "));
}

Jika program atau sketch telah berhasil dibuat dan telah di upload, maka langkah berikutnya adalah membuka menu serial monitor. Pada serial monitor akan terlihat hasil pembacaan kelembaban dan temperatur dalam satuan % dan celcius seperti yang terlihat dibawah ini.

Nah, itu tadi langkah-langkah untuk mengukur suhu udara dan kelembaban dengan menggunakan DHT11 dan Arduino. Semoga bermanfaat dan sampai ketemu pada tulisan-tulisan berikutnya….

Pulse Width Modulation (PWM)

Pulse Width Modulation (PWM)

Apa itu PWM?

PWM adalah teknik mengontrol denyutan atau pulsa pada sinyal digital untuk menirukan sinyal analog. Teknik PWM ini biasa digunakan untuk mengatur kecepatan motor, tingkat kecerahan pada LED dan sebagainya dalam rangkaian digital.

Pada tulisan sebelumnya tentangi sinyal Analog dan Digital saya sudah membahas tentang sinyal analog dan digital. Sinyal digital adalah jenis sinyal yang hanya memiliki 2 output yaitu HIGH atau kondisi on (biasanya 5 volt) dan LOW atau kondisi off (0 volt) sehingga pada dasar nya hanya bisa membuat output hidup dan mati saja mirip seperti saklar biasa untuk menghidupkan lampu dan kita tidak bisa membuat output dengan kondisi antara 5 – 0 volt dengan menurunkan tegangan secara bertahap seperti pada sinyal analog. perhatikan video dibawah ini dengan seksama.

Sinyal Analog
Sinyal Digital

Berdasarkan video diatas, kita dapat dengan mudah mengontrol output menjadi terang dan redup dengan menaikkan/menurunkan tegangan pada sinyal analog namun kita tidak bisa melakukan hal yang sama terhadap sinyal digital karena sifat gelombangnya.

untuk mengatasi hal itu maka digunakanlah teknik PWM untuk mengatur intensitas output pada rangkaian digital.

Cara Kerja PWM

PWM bekerja dengan cara memodifikasi duty cycle atau siklus kerja dari sinyal digital tersebut. untuk lebih memahami apa itu duty cycle, perhatikan grafik dibawah ini:

50% duty cycle
50% duty cycle dan 25% duty cycle (kotak merah)
25% duty cycle dan 10% duty cycle (kotak merah)
50% duty cycle dan 70% duty cycle (kotak merah)

Setelah kita perhatikan gambar diatas, kita dapat menyimpulkan bahwa semakin besar persentase duty cycle maka sinyal akan berada pada kondisi HIGH (5 volt) dalam waktu yang lebih lama dan sebaliknya jika persentase duty cycle semakin kecil maka sinyal akan HIGH dalam waktu yang lebih pendek. Kita bisa menggunakan pengetahuan ini untuk mengontrol output pada rangkaian digital.

Pada dasarnya, sebuah LED pada sebuah rangkaian digital selalu berkedip-kedip dengan frekuensi tinggi yang tidak bisa dilihat oleh mata kita. Dengan memodifikasi duty cycle ini, kita dapat membuat LED berada di kondisi HIGH lebih lama sehingga LED terlihat lebih terang misalnya pada duty cycle 75%. Untuk membuat LED menjadi lebih redup, kita tinggal merubah persentase duty cycle menjadi 50% atau dibawahnya, dimana pada duty cycle ini LED berada di kondisi HIGH yang lebih pendek sehingga cahaya yang terlihat oleh mata kita lebih sedikit.

Segitu saja penjelasan saya tentang PWM dan cara kerjanya, semoga penjelasannya gampang dipahami. Dengan adanya microcontroller board seperti Arduino maupun NodeMCU, penggunaan PWM menjadi semakin mudah dan berikut ini adalah contoh penggunaan teknik PWM dengan fungsi analogWrite() pada Arduino.

Teknik PWM dengan menggunakan fungsi analogWrite()

Analog dan Digital

Analog dan Digital

Untuk lebih memahami cara kerja Arduino atau mikrokontroler lainnya yang sejenis, kita perlu memahami 2 jenis sinyal elektronik yaitu sinyal analog dan sinyal digital. Pada tulisan ini saya akan mencoba untuk menjelaskan keduanya.

Analog dan Digital

Signal analog adalah jenis signal elektronik yang bersifat continyu atau tidak terputus-putus dengan amplitudo yang berubah-ubah seiring waktu karena perubahan tegangan. Signal analog dapat dengan mudah dimanipulasi atau di kontrol dengan cara merubah tegangan dalam rangkaian. Untuk mempermudah penjelasan ini, perhatikan video berikut:

Simulasi rangkaian analog

Sinyal digital adalah sinyal elektronik berupa signal terputus-putus (berbentuk pulsa atau denyutan) HIGH dan LOW dengan frekuensi yang sangat cepat sehingga memiliki bentuk gelombang kotak naik dan turun setiap saat. Signal digital ini tidak terpengaruh oleh perubahan tegangan. Signal akan bernilai HIGH jika ada tegangan misalnya 5 volt dan bernilai LOW jika tidak ada tegangan (0 Volt). Sinyal ini dapat dimanipulasi atau di kontrol dengan teknik PWM. Perhatikan video dibawah ini:

Simulasi signal digital

Baiklah sampai disini dulu tulisan ini, mungkin masih banyak kekurangan disana sini. semoga bermanfaat.