Zamek RFID, wyświetlacz , buzzer, servo

zibi
Posty: 10
Rejestracja: pt cze 14, 2019 6:23 pm

Zamek RFID, wyświetlacz , buzzer, servo

Postautor: zibi » pt cze 21, 2019 10:56 am

Witam
Dzięki dużej pomocy autora tego forum udało mi się zrobić projekt, który chce wykorzystać w kilku pomysłach. Zastosowań jest wiele od otwierania szafek, bramek na posesję, działkę, mini sejfów po różne które można stworzyć według własnej wyobraźni.

Potrzebne rzeczy do wykonania tego projektu:

Arduino Uno
Wyświetlacz ( użyty alfanumeryczny LCD 2x16, HD 44780 niebieski z konwerterem I2C.
Jeżeli nie posiadasz konwertera z wyświetlaczem musisz dokupić osobno do wyświetlacza. Konwerter ogranicza nam ilość przewodów, które musimy podłączyć do arduino co za tym idzie więcej wolnych wyjść.
Czytnik RFID RC522, brelok, karta
Buzzer
Servo SG 90
Diody zielona, czerwona,
Oporniki do diody 220 om
Płytka stykowa
Przewody

Ściągamy do arduino biblioteki RFID RC 522, LiquidCrystal_I2C


Program

#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
// Create instances
LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 mfrc522(10, 9); // MFRC522 mfrc522(SS_PIN, RST_PIN)
Servo sg90;
// Initialize Pins for led's, servo and buzzer
// Blue LED is connected to 5V
constexpr uint8_t greenLed = 7;
constexpr uint8_t redLed = 6;
constexpr uint8_t servoPin = 8;
constexpr uint8_t buzzerPin = 5;

String tagUID = "1C 99 58 95"; // String to store UID of tag. Change it with your tag's UID
void setup() {
// Arduino Pin configuration
pinMode(buzzerPin, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);

sg90.attach(servoPin); //Declare pin 9 for servo
sg90.write(0); // Set initial position at 90 degrees
lcd.init();
lcd.backlight();
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print(" Hej Oliwia :)");
lcd.setCursor(0, 1);
lcd.print(" co Slychac :)");
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
//Reading from the card
String tag = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
tag.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
tag.concat(String(mfrc522.uid.uidByte[i], HEX));
}
tag.toUpperCase();
//Checking the card
if (tag.substring(1) == tagUID) //change here the UID of the card/cards that you want to give access
{
// If UID of tag is matched.
analogWrite(5,20);
delay(100);
analogWrite(5,0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Oliwia Otwarte :)");
lcd.setCursor(0, 1);
lcd.print("Pozdrawiam :)");
sg90.write(90);
digitalWrite(greenLed, HIGH);
delay(5000);
digitalWrite(greenLed, LOW);
sg90.write(0);
lcd.clear();

}
else
{
// If UID of tag is not matched.
analogWrite(5,30);
delay(500);
analogWrite(5,0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Hej podaj kod :)");
lcd.setCursor(0, 1);
lcd.print("Pamietasz ? :)");
digitalWrite(buzzerPin, HIGH);
digitalWrite(redLed, HIGH);
delay(4000);
digitalWrite(buzzerPin, LOW);
digitalWrite(redLed, LOW);
lcd.clear();

}
}

Wielkie podziękowania dla autora forum bez którego projekt by nie powstał.
Załączniki
schemat.jpg
schemat.jpg (241.44 KiB) Przejrzano 18440 razy