#define PIR_PIN D1
#define RELAY_PIN D6
unsigned long waktu=0;
unsigned long waktuReset=0;
int counter=0;
void setup() {
Serial.begin(9600);
pinMode(PIR_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
Serial.println(digitalRead(PIR_PIN));
if(digitalRead(PIR_PIN)==HIGH){
digitalWrite(RELAY_PIN, HIGH);
counter=0;
}else{
waktu=millis();
if((waktu-waktuReset)>=1000){
counter++;waktuReset=waktu;
if(counter>=10){
digitalWrite(RELAY_PIN, LOW);}
}
}
}
#include
#include
#include
#include
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define TRIGGER_PIN D5
#define ECHO_PIN D6
#define MAX_DISTANCE 200
#define BUZZER_PIN D0
#define LED_PIN D3
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.println("Alarm Parkir");
display.display();
delay(2000);
display.clearDisplay();
display.display();
}
void loop() {
delay(50);
int distance = sonar.ping_cm();
if(distance<=30 && distance >= 20){
digitalWrite(BUZZER_PIN, HIGH);
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(LED_PIN, LOW);
delay(200);
}
if(distance<=20 && distance >= 10){
digitalWrite(BUZZER_PIN, HIGH);
digitalWrite(LED_PIN, HIGH);
delay(50);
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(LED_PIN, LOW);
delay(50);
}
if(distance < 10){
digitalWrite(BUZZER_PIN, HIGH);
digitalWrite(LED_PIN, HIGH);
}
if (distance <= 30) {
display.clearDisplay();
display.setCursor(0, 0);
display.setTextSize(2);
display.println("Jarak (cm)");
display.setCursor(0, 20);
display.print(distance);
display.display();
} else {
display.clearDisplay();
display.display();
digitalWrite(BUZZER_PIN, LOW);
digitalWrite(LED_PIN, LOW);
}
}
// Library RFID
#include
#include
// Koneksi PIN RFID ke PIN NodeMCU
// RST/Reset RST D0
// SPI SS SDA(SS) D8
// SPI MOSI MOSI D7
// SPI MISO MISO D6
// SPI SCK SCK D5
#define RST_PIN D0
#define SS_PIN D8
#define BUZZ_PIN D3
#define RELAY_PIN D1
// MFRC522 Objek dengan nama mrfc522
MFRC522 mfrc522(SS_PIN, RST_PIN);
// Variabel untuk menampung NUID kartu
String nuid;
String rfid_tag = "22f49284600";
int count = 0;
void setup() {
// Serial Monitor pada baudrate 115200
Serial.begin(115200);
pinMode(RELAY_PIN,OUTPUT);
// Mengatur BUZZ_PIN sebagai Output
// Kondisi awal BUZZ_PIN LOW (Buzzer OFF)
pinMode(BUZZ_PIN, OUTPUT);
digitalWrite(BUZZ_PIN, LOW);
SPI.begin(); // Memulai komunikasi SPI dengan RFID
mfrc522.PCD_Init(); // Inisialisasi RFID
}
void loop() {
// Membaca kartu dan verifikasi NUID
if(!mfrc522.PICC_IsNewCardPresent()) { return; }
if(!mfrc522.PICC_ReadCardSerial()) { return; }
Serial.print("UID tag : ");
String tag_id;
// NUID disatukan dan disimpan pada 'tag_id'
for(byte i = 0; i < mfrc522.uid.size; i++) {
tag_id.concat(String(mfrc522.uid.uidByte[i], HEX));
}
// Menyimpan NUID ke variabel global 'nuid'
nuid = tag_id;
// Pencocokan NUID yang tersimpan dengan yang terbaca
// Nada buzzer scan, kartu diterima dan ditolak
if(rfid_tag == nuid){
count++;
buzz_auth();
Serial.println(count);
buzz_accepted();
} else {
buzz_auth();
buzz_denied();
}
// Mencetak NUID pada Serial Monitor
Serial.println(nuid);
}
// Fungsi Nada Buzzer scan kartu
void buzz_auth() {
for (int x = 0; x < 8 ; x++ ) {
digitalWrite(BUZZ_PIN, HIGH);
delay(50);
digitalWrite(BUZZ_PIN, LOW);
delay(30);
}
delay(1000);
}
// Fungsi Nada Buzzer akses diterima
void buzz_accepted() {
for (int x = 0; x < 2 ; x++ ) {
digitalWrite(BUZZ_PIN, HIGH);
delay(200);
digitalWrite(BUZZ_PIN, LOW);
delay(100);
}
if(count==1){
digitalWrite(RELAY_PIN, HIGH);
}
if(count==2){
digitalWrite(RELAY_PIN, LOW);
count=0;
}
}
// Fungsi Nada Buzzer akses ditolak
void buzz_denied() {
digitalWrite(BUZZ_PIN, HIGH);
delay(1000);
digitalWrite(BUZZ_PIN, LOW);
delay(100);
}
/* Antarmuka dengan LED, Buzzer dan Relay - Trainer Internet of Things
* Project : Mengontrol Device dengan Aplikasi IoT KIT
* Created By Electins.id
* https://www.electins.id | https://www.instagram.com/electins.id/
*/
// Library ESP8266 WiFi dan Firebase ESP8266
#include
#include
// SSID dan Password WiFi
#define WIFI_SSID "Arashy"
#define WIFI_PASSWORD "123456780"
// URL Firebase dan Token Database
#define DATABASE_URL "https://belajar-iot-ad169-default-rtdb.firebaseio.com/"
#define API_KEY "iQ1qH3ODhsKw1iSZPhSboNeVt8xxHjTyztWomjDg"
// Firebase objek dengan nama fbdo
FirebaseData fbdo;
// Nama pengguna pada Aplikasi IoT KIT
String user = "electins";
// PIN relay
#define RELAY_PIN D2
void setup() {
// Serial Monitor pada baudrate 115200
Serial.begin(115200);
// Mengatur PIN Relay sebagai OUTPUT
pinMode(RELAY_PIN,OUTPUT);
// Memulai koneksi WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
// Menampilkan status koneksi dan alamat IP
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
// Menampilkan versi client firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
// Memulai koneksi dengan dengan database
// Re-koneksi jika WiFi terputus
Firebase.begin(DATABASE_URL, API_KEY);
Firebase.reconnectWiFi(true);
}
void loop() {
// Membaca database pada alamat */user/switch1
// Jika bernilai true Relay ON
// Jika bernilai false Relay OFF
if(Firebase.getString(fbdo, "/" + user + "/switch1")) {
if(fbdo.to() == true){
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Relay On");
}else{
Serial.println("Relay Off");
digitalWrite(RELAY_PIN, LOW);
}
}
}