Smart Home Security Alarm (copy) — Arduino Mega simulation

Sistem keamanan rumah dan alarm multi-bahaya menggunakan Arduino Mega dengan sensor PIR, DHT11, Keypad, LCD, dan Buzzer.

An interactive Arduino Mega circuit simulation you can run free in your browser on Velxio, by s160425118.

Components

Sketch code

#include <LiquidCrystal.h>
#include <DHT.h>

// ==================================================
// DHT11
// ==================================================
#define DHTPIN A0
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

// ==================================================
// LCD 16x2
// RS, E, D4, D5, D6, D7
// ==================================================
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// ==================================================
// PIN KOMPONEN
// ==================================================
const int pirPin = 7;
const int buzzerPin = 6;

const int ledPIRPin = 30;
const int ledTempPin = 31;
const int ledsafe = 17;

// ==================================================
// STATUS ALARM
// ==================================================
bool alarmAktif = true;

// ==================================================
// SETUP
// ==================================================
void setup() {

  // PIR
  pinMode(pirPin, INPUT);

  // Buzzer
  pinMode(buzzerPin, OUTPUT);

  // LED
  pinMode(ledPIRPin, OUTPUT);
  pinMode(ledTempPin, OUTPUT);
pinMode(ledsafe, OUTPUT);
  // Serial Monitor
  Serial.begin(9600);

  // LCD
  lcd.begin(16, 2);
  lcd.clear();

  // DHT11
  dht.begin();

  // Kondisi awal
  digitalWrite(buzzerPin, LOW);
  digitalWrite(ledPIRPin, LOW);
  digitalWrite(ledTempPin, LOW);

  lcd.setCursor(0, 0);
  lcd.print("SYSTEM ARMED");

  lcd.setCursor(0, 1);
  lcd.print("Initializing...");

  Serial.println("SYSTEM ARMED");
  Serial.println("DHT11 Starting...");

  // Beri waktu DHT11 untuk mulai
  delay(2000);

  lcd.clear();
}

// ==================================================
// LOOP
// ==================================================
void loop() {

  // ------------------------------------------------
  // Baca PIR
  // ------------------------------------------------
  int pirState = digitalRead(pirPin);

  // ------------------------------------------------
  // Baca suhu DHT11
  // ------------------------------------------------
  float temp = dht.readTemperature();
  digitalWrite(ledsafe, HIGH);
  // ------------------------------------------------
  // DEBUG SERIAL
  // ------------------------------------------------
  Serial.print("Suhu: ");

  if (isnan(temp)) {
    Serial.println("ERROR");

    lcd.setCursor(0, 0);
    lcd.print("Suhu: ERROR     ");
  }
  else {

    Serial.print(temp);
    Serial.println(" C");

    lcd.setCursor(0, 0);
    lcd.print("Suhu: ");

    lcd.print(temp, 1);
    lcd.print((char)223);
    lcd.print("C     ");
  }

  // ==================================================
  // KONDISI 1
  // SUHU > 38 C
  // ==================================================
  if (!isnan(temp) && temp > 38.0) {

    lcd.setCursor(0, 1);
    lcd.print("TEMP ALARM!     ");

    
    Serial.println("Buzzer : On");

    // LED suhu ON
    digitalWrite(ledTempPin, HIGH);

    // LED PIR OFF
    digitalWrite(ledPIRPin, LOW);
    digitalWrite(ledsafe, LOW);
    // Buzzer ON
    

More projects by s160425118