Advertisement
andretafta

Smartdoor Using Blynk

Feb 23rd, 2021 (edited)
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*PIN SDA/SS : D2
  2.  *PIN SCK : D5
  3.  *PIN MOSI: D7
  4.  *PIN MISO: D6
  5.  *PIN GND : GND
  6.  *PIN RST : D1
  7.  *PIN 3.3V: 3V
  8.  *PIN KAKI PANJANG LED MERAH : D0
  9.  *PIN KAKI PANJANG LED HIJAU: D3
  10.  *PIN KAKI PENDEK SEMUA LED : GND
  11.  *PIN SINYAL SERVO (KABEL ORANGE) : D4
  12.  *PIN VCC (KABEL MERAH) : VUSB
  13.  *PIN GND (KABEL COKLAT) : GND
  14.  */
  15.  
  16. //Untuk Komunikasi Serial Blynk
  17. #define BLYNK_PRINT Serial
  18.  
  19. #include <SPI.h> //Menambahkan Library untuk Komunikasi SPI
  20. #include <ESP8266WiFi.h> //Menambahkan Library untuk ESP8266 WiFi
  21. #include <BlynkSimpleEsp8266.h> //Menambahkan Library untuk Blynk
  22. #include <MFRC522.h> //Menambahkan Library untuk RFID
  23. #include <Servo.h>
  24.  
  25. //Definisikan Pin RFID Reader pada Board NodeMCU
  26. #define SS_PIN D2
  27. #define RST_PIN D1
  28. #define Lampu1 D0 //lampu merah
  29. #define Lampu2 D3 //lampu hijau
  30.  
  31.  
  32. char auth[] = "";
  33. char ssid[] = "";
  34. char pass[] = "";
  35. char server[] = "blynk-cloud.com"; //Server Blynk
  36. int port = 8442; //Port yang digunakan untuk terhubung ke Server Blynk
  37.  
  38. MFRC522 rfid(SS_PIN, RST_PIN); //Menggunakan fungsi RFID dari Library
  39. MFRC522::MIFARE_Key key;
  40. Servo servo;
  41. WidgetLCD lcd(V1); //Definisi pin LCD pada Aplikasi Blynk
  42.  
  43. String strID, userID; //Variabel untuk Menyimpan hasil Pembacaan RFID
  44.  
  45. void setup()
  46. {
  47.   Serial.begin(115200); //Komunikasi Serial dengan Baudrate 115200
  48.   pinMode(Lampu1, OUTPUT);
  49.   pinMode(Lampu2, OUTPUT);
  50.   servo.attach(2);
  51.   digitalWrite(Lampu1, LOW);
  52.   digitalWrite(Lampu2, LOW);
  53.   Blynk.begin(auth, ssid, pass, server, port);  //Menghubungkan NodeMCU ke Server Blynk menggunakan Wi-Fi
  54.   SPI.begin(); // Init SPI bus
  55.   rfid.PCD_Init(); // Init MFRC522
  56. }
  57.        
  58. void loop()       // put your main code here, to run repeatedly:
  59. {
  60.   Blynk.run(); //Blynk berjalan
  61.   lcd.clear();
  62.  
  63.   //Digunakan untuk melakukan Deteksi Kartu RFID
  64.   if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
  65.   MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  66.   if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
  67.       piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
  68.       piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
  69.     Serial.println(F("Your tag is not of type MIFARE Classic."));
  70.     return;
  71.   }
  72.   strID = "";
  73.   for (byte i = 0; i < 4; i++) {
  74.     strID +=
  75.       (rfid.uid.uidByte[i] < 0x10 ? "0" : "") +
  76.       String(rfid.uid.uidByte[i], HEX) +
  77.       (i != 3 ? ":" : "");
  78.   }
  79.   strID.toUpperCase();
  80.  
  81.   //Cetak di LCD Aplikasi Blynk apabila RFID Tag terdeteksi
  82.   if (strID != NULL)
  83.   {
  84.     lcd.print(0, 0, "ID dari RFID :");                                              
  85.     lcd.print(0, 1, strID);
  86.   delay(2000);
  87.     lcd.clear();
  88.     if(strID != userID)
  89.     {
  90.           lcd.print(0, 0, "ID dari RFID :");                                              
  91.           lcd.print(0, 1, "Akses ditolak");
  92.           Serial.print(strID);
  93.           digitalWrite(Lampu1, HIGH);
  94.           delay(2000);
  95.           digitalWrite(Lampu1, LOW);
  96.     }  else
  97.     {
  98.           lcd.print(0, 0, "ID dari RFID :");                                              
  99.           lcd.print(0, 1, "Akses diizinkan");
  100.           Serial.print(strID);
  101.           digitalWrite(Lampu2, HIGH);
  102.           servo.write(180);
  103.           delay(2000);
  104.           servo.write(60);
  105.           digitalWrite(Lampu2, LOW);
  106.     }
  107.     userID = strID;
  108.   }
  109.   else{
  110.     lcd.print(0, 0, "ID dari RFID :");                                              
  111.     lcd.print(0, 1, "Tidak ditemukan");
  112.     delay(2000);
  113.   }
  114. }  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement