Smart Alarm Rumah Berbasis ESP8266 dengan PIR Motion Sensor

Smart Alarm Rumah Berbasis ESP8266 dengan PIR Motion Sensor

Keamanan rumah merupakan salah satu aspek penting dalam kehidupan sehari-hari. Salah satu solusi sederhana yang dapat diterapkan adalah sistem alarm pendeteksi gerakan. Dengan sistem ini, keberadaan orang atau pergerakan mencurigakan dapat terdeteksi secara otomatis dan langsung memberikan peringatan.

Pada blog post ini, kita akan membahas cara membuat Smart Alarm Rumah menggunakan ESP8266 dan PIR Motion Sensor. Sistem akan memberikan notifikasi ke HP melalui web browser serta menampilkan status sistem melalui LED indikator dan notifikasi pada web browser.

Seperti proyek-proyek sebelumnya, ESP8266 akan dijalankan dalam mode Access Point (AP) dan menggunakan Async Web Server, sehingga sistem dapat digunakan tanpa koneksi internet.

Alat dan Bahan yang Dibutuhkan

Nama KomponenGambar Komponen
NodeMcu esp8266
Sensor PIR (HC-SR501)
Buzzer
LED
Resistor
Kabel Jumper
Breadboard

Skema Koneksi Komponen

ESP8266PIR
D2OUT
3V3VCC
GNDGND
ESP8266LED / Buzzer
D3LED Merah (+)
D4Buzzer (+)

Library yang Digunakan

Pastikan library berikut sudah terpasang pada Arduino IDE:

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h

Code

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>


const char* ssid = "SmartAlarm_AP";
const char* password = "12345678";

AsyncWebServer server(80);

bool motionDetected = false;

String alarmStatusText() {
  String text = "";

  if (motionDetected == true) {
    text = "ALARM AKTIF";
  } else {
    text = "AMAN";
  }

  return text;
}

String htmlPage() {
  String html = "";
  html += "<!DOCTYPE html><html><head>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>Smart Alarm Rumah</title>";
  html += "</head><body>";
  html += "<h1>Smart Alarm Rumah</h1>";
  html += "<p>Status: ";
  html += alarmStatusText();
  html += "</p>";
  html += "<script>";
  html += "if ('Notification' in window) {";
  html += "Notification.requestPermission();";
  html += "}";
  html += "</script>";
  html += "</body></html>";
  return html;
}

void setup() {
  

  pinMode(PIR_PIN, INPUT);
  pinMode(LED_ALARM, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/html", htmlPage());
  });

  server.begin();
}

void loop() {
  int pirValue = digitalRead(PIR_PIN);

  if (pirValue == HIGH) {
    motionDetected = true;
    digitalWrite(LED_ALARM, HIGH);
    digitalWrite(BUZZER_PIN, HIGH);
  } else {
    motionDetected = false;
    digitalWrite(LED_ALARM, LOW);
    digitalWrite(BUZZER_PIN, LOW);
  }

  delay(500);
}

Cara Menggunakan Sistem

  1. Rangkai PIR sensor, LED, dan buzzer sesuai dengan skema koneksi.
  2. Unggah program ke ESP8266 menggunakan Arduino IDE.
  3. Nyalakan sistem dan tunggu sensor PIR melakukan kalibrasi awal.
  4. Hubungkan HP atau laptop ke jaringan WiFi SmartAlarm_AP.
  5. Buka browser dan akses alamat IP 192.168.4.1.
  6. Izinkan notifikasi pada browser untuk menerima peringatan alarm.

Monitoring Level Air Tangki Berbasis ESP8266

Monitoring Level Air Tangki Berbasis ESP8266

Mengetahui kondisi ketersediaan air di dalam tangki atau tandon merupakan hal yang penting, terutama untuk kebutuhan rumah tangga maupun sistem otomatis seperti pompa air. Tanpa sistem monitoring, kita sering kali baru menyadari air habis atau meluap ketika masalah sudah terjadi.

Pada blog post ini, kita akan membahas cara membuat Sistem Monitoring Level Air Tangki menggunakan ESP8266. Sistem ini mampu memberikan indikasi kondisi penuh dan kosong melalui LCD 16×2 dan LED, serta dapat dipantau melalui web browser tanpa koneksi internet.

Sistem monitoring level air ini bekerja dengan mendeteksi ketinggian air di dalam tangki menggunakan sensor level air. Berdasarkan hasil pembacaan sensor, ESP8266 akan menentukan kondisi tangki, apakah dalam keadaan kosong, setengah, atau penuh.

Informasi tersebut ditampilkan secara lokal melalui LCD 16×2 dan LED indikator, serta dapat dipantau melalui halaman web menggunakan HP atau laptop yang terhubung langsung ke WiFi ESP8266.

Alat dan Bahan yang Dibutuhkan

Nama KomponenGambar Komponen
NodeMcu esp8266
Water Level Sensor
LED Merah dan Hijau
Resistor 220 ohm
LCD 16×2 I2C
Kabel Jumper
Breadboard

Gambar Rangkaian

NodeMcu Esp8266LCD I2C
Pin D5SCL
Pin D6SDA
Vin / VuVCC
GNDGND
NodeMcu Esp8266Water Level Sensor
Pin D2S
GNDGND (-)
Vin /VuVCC (+)
NodeMcu Esp8266LED Merah / Hijau
Pin D3Anoda (+) Merah
Pin D4Anoda (+) Hijau
GNDkatoda (-) Merah & Hijau

Cara Kerja Sistem

Cara kerja sistem monitoring level air ini dapat dijelaskan sebagai berikut:

  1. Sensor level air mendeteksi keberadaan air di dalam tangki.
  2. ESP8266 membaca status sensor sebagai input digital.
  3. Sistem menentukan kondisi air berdasarkan input sensor.
  4. LED indikator menyala sesuai kondisi air (penuh atau kosong).
  5. Informasi kondisi air ditampilkan pada LCD 16×2.
  6. ESP8266 menyediakan halaman web untuk memantau kondisi tangki.

Library yang Digunakan

Pastikan library berikut sudah terpasang pada Arduino IDE:

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h
  • LiquidCrystal_I2C.h

Code

#include <ESP8266WiFi.h>
html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
html += "<title>Monitoring Level Air</title>";
html += "</head><body>";
html += "<h1>Monitoring Level Air Tangki</h1>";
html += "<p>Status Air: ";
html += waterStatusText();
html += "</p>";
html += "</body></html>";
return html;
}


void setup() {
lcd.init();
lcd.backlight();


pinMode(LEVEL_PIN, INPUT);
pinMode(LED_FULL, OUTPUT);
pinMode(LED_EMPTY, OUTPUT);


WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password);


server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/html", htmlPage());
});


server.begin();
}


void loop() {
int sensorValue = digitalRead(LEVEL_PIN);


if (sensorValue == HIGH) {
waterDetected = true;
digitalWrite(LED_FULL, HIGH);
digitalWrite(LED_EMPTY, LOW);
} else {
waterDetected = false;
digitalWrite(LED_FULL, LOW);
digitalWrite(LED_EMPTY, HIGH);
}


lcd.setCursor(0, 0);
lcd.print("Level Air:");
lcd.setCursor(0, 1);
lcd.print(waterStatusText());
lcd.print(" ");


delay(1000);
}

Cara Menggunakan Sistem

  1. Pasang sensor level air di dalam tangki sesuai ketinggian yang diinginkan.
  2. Rangkai semua komponen sesuai dengan skema koneksi.
  3. Unggah program ke ESP8266 menggunakan Arduino IDE.
  4. Nyalakan sistem dan pastikan LED serta LCD berfungsi dengan baik.
  5. Hubungkan HP atau laptop ke jaringan WiFi WaterLevel_AP.
  6. Buka browser dan akses alamat IP 192.168.4.1 untuk melihat status level air.

Tutorial Monitoring Suhu & Kelembapan dengan ESP8266

Tutorial Monitoring Suhu & Kelembapan dengan ESP8266

Pada tutorial lanjutan ini, kita akan membuat sistem Monitoring Suhu dan Kelembapan menggunakan sensor DHT11 atau DHT22. Data suhu dan kelembapan akan ditampilkan secara real-time melalui Web Browser (menggunakan Async Web Server mode AP) serta ditampilkan secara lokal pada LCD.

Sama seperti tutorial sebelumnya, ESP8266 akan bekerja dalam mode Access Point (AP) sehingga sistem dapat digunakan tanpa koneksi internet dan tanpa router.

Fitur

Sistem monitoring ini dirancang untuk memberikan informasi kondisi lingkungan secara langsung dan mudah diakses. Fitur-fitur yang akan terdapat pada sistem ini bisa kita cek dibawah ini.

  • Monitoring suhu dan kelembapan menggunakan sensor DHT11 / DHT22
  • ESP8266 beroperasi sebagai WiFi Access Point (AP)
  • Data sensor ditampilkan pada Web Browser secara asynchronous
  • Data suhu dan kelembapan ditampilkan secara lokal pada LCD

Alat Dan Bahan

Nama KomponenGambar Komponen
NodeMcu esp8266
Sensor DHT 11
LCD 16×2 I2C
Kabel Jumper
Breadboard

Gambar Rangkaian

ESP8266DHT-11
pin D2pin Data
pin vin /vupin VCC (+)
pin GNDpin GND
ESP8266LCD I2C
pin D5SCL
pin D6SDA
pin vin /vuVCC
pin GNDGND

Cara Kerja Alat

  1. ESP8266 akan membaca data suhu dan kelembapan dari sensor DHT secara berkala.
  2. Data hasil pembacaan akan ditampilkan pada LCD sebagai monitoring lokal.
  3. ESP8266 akan membuat jaringan WiFi sendiri (Mode AP).
  4. Pengguna menghubungkan HP atau laptop ke WiFi ESP8266.
  5. Data suhu dan kelembapan ditampilkan pada halaman web melalui Web Server.

Library yang Digunakan

Pastikan library berikut ini sudah terinstal di Arduino IDE kamu:

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h
  • DHT.h
  • LiquidCrystal_I2C.h

Code

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN D2
#define DHTTYPE DHT11

LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "DHT_Monitor_AP";
const char* password = "12345678";

AsyncWebServer server(80);

float temperature = 0;
float humidity = 0;

String htmlPage() {
  String html = "";
  html += "<!DOCTYPE html><html><head>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>DHT Monitor</title>";
  html += "</head><body>";
  html += "<h1>Monitoring Suhu & Kelembapan</h1>";
  html += "<p>Suhu: " + String(temperature) + " &deg;C</p>";
  html += "<p>Kelembapan: " + String(humidity) + " %</p>";
  html += "</body></html>";
  return html;
}

void setup() {
  lcd.init();
  lcd.backlight();

  dht.begin();

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/html", htmlPage());
  });

  server.begin();
}

void loop() {
  humidity = dht.readHumidity();
  temperature = dht.readTemperature();

  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");

  lcd.setCursor(0, 1);
  lcd.print("Hum : ");
  lcd.print(humidity);
  lcd.print(" %");

  delay(2000);
}

Petunjuk Pengerjaan dan Uji Coba

  1. Rangkai sensor DHT11/DHT22 dan modul LCD sesuai dengan tabel koneksi yang telah dijelaskan. Pastikan setiap pin terhubung dengan benar, terutama jalur VCC dan GND, agar sensor dan LCD dapat bekerja dengan normal.
  2. Hubungkan papan ESP8266 ke komputer menggunakan kabel USB, kemudian buka Arduino IDE. Pilih tipe board dan port yang sesuai, lalu unggah (upload) program monitoring suhu dan kelembapan ke ESP8266 hingga proses selesai tanpa error.
  3. Setelah upload berhasil, lepaskan ESP8266 dari komputer (opsional), lalu pastikan papan sudah mendapatkan sumber daya. Selanjutnya, aktifkan fitur WiFi pada HP atau laptop.
  4. Cari jaringan WiFi dengan nama DHT_Monitor_AP, kemudian hubungkan perangkat ke jaringan tersebut. Tunggu hingga perangkat berhasil terhubung.
  5. Buka aplikasi browser (Chrome, Firefox, atau sejenisnya), lalu ketik alamat IP 192.168.4.1 pada kolom alamat dan tekan Enter.
  6. Perhatikan halaman web yang tampil. Nilai suhu dan kelembapan akan ditampilkan secara real-time melalui web, sementara informasi yang sama juga dapat dilihat langsung pada layar LCD yang terpasang pada rangkaian.

Membuat alat pengukur suhu ruangan dengan menggunakan sensor DHT-11 & Arduino

Membuat alat pengukur suhu ruangan dengan menggunakan sensor DHT-11 & Arduino

Assalamu’alaikum.

Pada tulisan ini, saya akan membagikan sebuah tutorial project sederhana berbasis Arduino. Kita akan membuat sebuah alat pengukur suhu ruangan dengan menggunakan sensor DHT-11 dan hasil pembacaan sensornya akan tertampil pada layar LCD 16×2.

Project ini cocok diaplikasikan untuk memonitoring suhu & kelembaban ruangan-ruangan tertentu yang harus sering di awasi suhu & kelembabannya, misalnya ruangan penetas telur dan ruangan-ruangan sejenis.

Kamu juga dapat melihat versi video dari tutorial ini di bawah ini:

Ok, kita lanjutkan tulisannya dulu ya…

Alat & Bahan

AlatKebutuhan
Arduino UNO1 buah
Sensor DHT 111 buah
LCD 16×2 I2C1 buah
Kabel secukupnya
breadboard1 buah

Gambar Rangkaian

Instalasi Library DHT-11 dan LCD 16×2 I2C

untuk bisa mengendalikan sensor DHT 11 dan LCD 16×2 dengan mudah, kita perlu menginstal library untuk kedua modul tersebut dengan mengikuti langkah-langkah berikut ini:

Bukalah aplikasi Arduino IDE, lalu buka library manager yang terdapat disebelah kiri layar

Carilah dan instal masing-masing library dibawah ini. Gunakan kotak pencarian agar library gampang ditemukan

DHT Sensor Library by Adafruit

LiquidCrystal_I2C by Frank de Barabander

Coding /sketch

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.backlight();
}
void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Gagal Membaca Sensor"));
    return;
  }
  Serial.print("Suhu Ruangan: ");
  Serial.print(t);
  Serial.print(" Celcius, Kelembaban: ");
  Serial.print(h);
  Serial.println(" %");
  lcd.setCursor(0, 0);
  lcd.print("Suhu: ");
  Led.print(t);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Kelembaban");
  lcd.print(h);
  lcd.print(" %");
}

Setelah rangkaian & Coding dibuat dengan benar, langkah berikutnya adalah mengupload coding yang telah kita ketik sebelumnya ke microcontroler Arduino kita lalu dilanjutkan dengan pengujian.

keseluruhan proses pembuatan alat ini bisa kita lihat pada video dibawah ini.

Demikian tulisan saya kali ini, semoga bermanfaat, dan jangan lupa di subscribe akun youtube nya supaya makin semangat bikin konten berikutnya.

Antarmuka sensor DHT-11 dengan menggunakan Arduino

Antarmuka sensor DHT-11 dengan menggunakan Arduino

DHT 11

DHT 11 adalah sejenis sensor yang memiliki kemampuan untuk mengukur suhu dan kelembaban ruangan. Sensor ini sangat mudah digunakan bersama Arduino dan memiliki kemampuan membaca suhu antara 0 s/d 50 derajat Celcius. Berikut ini adalah spesifikasi lengkap dari sensor ini:

Tegangan kerja3-5 Volt DC
Arus maksimal2.5 mA
rentang pengukuran suhu0-50 °C toleransi +- 2 °C
Rentang pengukuran kelembaban20-80% toleransi 5%

Pinout pada DHT 11

Modul DHT 11 terdiri dari 3 pin yaitu seperti gambar dibawah ini:

pin VCC digunakan untuk memberi supply listrik untuk sensor. Sesuai spesifikasi sensor, DHT 11 dapat disupply dengan menggunakan tegangan antara 3.3 – 5 volt. pemberian supply bisa langsung dari pin 5V pada Arduino atau menggunakan sumber tenaga lain seperti baterai dan powerbank.

pin OUT digunakan untuk mengirimkan sinyal ke Arduino. Sinyal dari pin ini akan diproses oleh Arduino yang outputnya berupa pembacaan suhu dan kelembaban ruangan.

pin GND adalah pin ground

Rangkaian Sensor DHT 11 dengan Arduino

Untuk dapat membaca suhu dan kelembaban, maka sensor DHT 11 harus dihubungkan ke microcontroller Arduino. Rangkaian sensor ini dengan DHT 11 relatif sangat mudah, perhatikan tabel dan gambar dibawah ini

DHT 11Arduino
pin VCCpin 5V
pin OUTpin 8
pin GNDpin GND

Menginstal Library DHT

Untuk dapat mengendalikan sensor DHT 11 dengan baik, kita perlu menginstal library DHT kedalam aplikasi Arduino IDE. Penggunaan library ini akan mempermudah kita dalam memprogram sensor DHT 11.

Langkah-langkat instalasi library DHT ikuti langkah-langkah berikut:

Program / Sketch

Setelah library berhasil diinstal, langkah berikutnya adalah menulis dan mengupload program ke dalam Arduino. Program dibawah ini akan menampikan hasil pembacaan sensor pada serial monitor. S

#include "DHT.h"

#define DHTPIN 8
#define DHTTYPE DHT11


DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("Antarmuka DHT 11"));

  dht.begin();
}

void loop() {
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Gagal membaca sensor"));
    return;
  }

  Serial.print("kelembaban: ");
  Serial.print(h);
  Serial.print("%  Temperatur: ");
  Serial.print(t);
  Serial.print("°C ");
  Serial.print(f);
  Serial.println("°F ");
}

Setelah program selesai ditulis, hubungkan Arduino dengan PC atau laptop, pastikan board dan port sudah disetting dengan benar sebelum mengupload. Bukalah Serial monitor dan perhatikan hasil pembacaan sensor. Jika pada layar serial monitor tampil tulisan “Gagal membaca sensor”, Periksalah kembali sambungan kabel antara Arduino dengan sensor DHT 11.

Penjelasan program

#include "DHT.h"

menambahkan (include) library DHT yang kita instal sebelumnya

#define DHTPIN 8
#define DHTTYPE DHT11

#define DHTPIN 8 : mendefinisikan pin 8 Arduino sebagai pin yang terhubung dengan DHT 11

#define DHTTYPE DHT11 : mendefinisikan jenis sensor DHT yang dipakai, dalam hal ini kita menggunakan DHT 11. Apabila sensor yang digunakan adalah sensor DHT22, maka diganti menjadi #define DHTTYPE DHT22.

dht.begin()

mengaktifkan sensor DHT11

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

mendeklarasikan variabel dengan tipe data float (desimal) untuk menyimpan data pembacaan sensor. variabel h akan menyimpan hasil pembacaan kelembaban, t akan menyimpan data suhu dalam Celcius, f akan menyimpan data suhu dalam Fahrenheit.

if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Gagal membaca sensor"));
    return;
  }

Arduino akan menjalalankan fungsi if dengan logika jika hasil pembacaan sensor yang tersimpan di salah satu variabel h, t atau f bukan berupa angka (isnan = is not a number) maka Arduino akan menampilkan teks “Gagal membaca sensor” di layar serial monitor.

  Serial.print("kelembaban: ");
  Serial.print(h);
  Serial.print("%  Temperatur: ");
  Serial.print(t);
  Serial.print("°C ");
  Serial.print(f);
  Serial.println("°F ");

Menampilkan hasil pembacaan sensor ke layar serial monitor. Hasil pembacaan sensor yang tampil di layar adalah kelembaban, suhu dalam celcius, dan suhu dalam Fahrenheit.

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