0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RFID和蓝牙门锁的制作

454398 来源:wv 2019-09-26 11:18 次阅读

步骤1:所需的零件

必需的零件。

1-带拇指的门锁打开门的内部

1-Arduino Uno r3(或兼容)

1-360度伺服系统

1-HC-06蓝牙模块

1-RC522 RFID阅读器(可能是Sintron,不记得了)

1-16 x 2-4线LDC屏幕

1-RGB LED

2-220Ω电阻器

1-瞬时按动开关(从内部操作以锁定/

1-1-1kΩ电阻

2-双后箱(1个约45mm深度,另一个约33mm深度)

跳线

电源(我打算使用2 x 9v电池,但已决定使用市电供电的9v电源,因为更可靠)

螺丝或坚固的双面胶带

1-伺服支架(我自己设计和印刷)

** ----------------等待发货-------- ------------------- ------------ **

2-双盲板

1-12芯报警电缆的长度(长度取决于放置位置)

2-5amp模块连接器(每个12线)

** --------------------------- -------------------------------------------------- ---- **

Andriod蓝牙锁应用程序。 BTControl.apk

步骤2:接线

RFID和蓝牙门锁的制作

电源:

9v稳压电源(或电池)

RFID读取器:

VCC-引脚3.3v

GND-GND

重置(RST)-引脚D9

SDA(SS)-引脚D10

MOSI-引脚D11

MISO-引脚D12

SCK-引脚D13

LCD屏幕

VCC-5v

GND-GND

SDA-引脚A4

SCL-引脚A5

瞬时开关:

VCC-5v(如上所示)

GND到1kΩ电阻(如上所示)

Pin 8 arduino(如上所示)

RGB LED:

将D7的220Ω电阻接至LED引脚(红色)

将D6的220Ω电阻接至LED引脚(绿色)

公共(长线)- GND

伺服:

VCC-5v

GND-GND

信号-引脚D5

蓝牙模块:

VCC-5v

GND -GND

TX-D0(RX)

RX-D1(TX)

Fritzing图:

步骤3:Pu一起努力

Arduino,蓝牙模块和瞬间开关+ RGB LED电路安装在45mm的底盒中。我刚刚使用Blu-Tac将它们固定在原位,因为一旦固定在墙上就不会移动。我已经将开关,LED和电阻器焊接到了电路板上,并在电路板的任何一侧创建了GND和VCC连接,还将放置一个用于12芯报警电缆的块连接器,以连接RFID和LCD屏幕到arduino。盖子上会钻2个孔,以容纳开关和引线。

RFID和LCD屏幕安装在33mm的后盖内,并开有一个插槽,用于LCD屏幕穿过。这些将通过12芯报警电缆和模块连接器连接到arduino。

为使伺服器连接到门锁,我3D打印了一个支架,该支架将拧紧到门上并连接到门上。

步骤4:代码-(于2018年6月23日更新)

/*

* ----------------------------------------------------------------------------

* This sketch uses the MFRC522 library ; see https://github.com/miguelbalboa/rfid

* for further details and other examples.

*

* NOTE: The library file MFRC522.h has a lot of useful info. Please read it.

*

* This sketch show a simple locking mechanism using the RC522 RFID module.

* ----------------------------------------------------------------------------

* Typical pin layout used:

* -----------------------------------------------------------------------------------------

* MFRC522 Arduino Arduino Arduino Arduino Arduino

* Reader/PCD Uno Mega Nano v3 Leonardo/Micro Pro Micro

* Signal Pin Pin Pin Pin Pin Pin

* -----------------------------------------------------------------------------------------

* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST

* SPI SS SDA(SS) 10 53 D10 10 10

* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16

* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14

* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15

*

*/

#include

#include

#include

#include

#include

#include

#define RST_PIN 9 // Configurable, see typical pin layout above

#define SS_PIN 10

#define Green_LED 6 //pin for green “door unlocked” indicator LED

#define Red_LED 7 //pin for red “door locked” indicator LED

char array1[]=“ Swipe Your Tag”; //the string to print on the LCD

char array2[]=“ On The Reader.”;

char array3[]=“ Tag Accepted. ”;

char array4[]=“ Locking. ”;

char array5[]=“ Unlocking. ”;

int tim = 1; //the value of delay time

// initialize the library with the numbers of the interface pins

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

Servo myservo;

String read_rfid;

String ok_rfid_1=“94e68de2”;

String ok_rfid_2=“f5642a50”;

String ok_rfid_3=“4249622993c81”;

int addr = 1;

int eVal = 0;

int lockPosition;

int servo_position;

int BUTTON1 = 8;

void setup() {

Serial.begin(9600); // Initialize serial communications with the PC

while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)

SPI.begin(); // Init SPI bus

mfrc522.PCD_Init(); // Init MFRC522 card

{

lcd.init(); //initialize the lcd

lcd.backlight(); //open the backlight

lcd.begin(16,2);

}

pinMode(Green_LED, OUTPUT); //set all input/output pins, including whether they should be high (5v) or low (ground)

pinMode(Red_LED, OUTPUT);

digitalWrite(Green_LED, LOW);

digitalWrite(Red_LED, HIGH);

pinMode(BUTTON1,INPUT);

myservo.attach(5);

lockPosition = EEPROM.read(1);

// Serial.print(EEPROM.read(1));

if(lockPosition == 1){

digitalWrite(Red_LED, LOW);

digitalWrite(Green_LED, HIGH);

}

else {

digitalWrite(Red_LED, HIGH);

digitalWrite(Green_LED, LOW);

lockUnlock();

}

swipeText();

/*

* Dump a byte array as hex values to Serial.

*/

void dump_byte_array(byte *buffer, byte bufferSize) {

read_rfid=“”;

for (byte i = 0; i 《 bufferSize; i++) {

read_rfid=read_rfid + String(buffer[i], HEX);

}

}

void lockUnlock() { // locks or unlocks door

myservo.attach(5);

if(lockPosition == 1) {

lock2();

servo_position = 0;

myservo.write(servo_position);

digitalWrite(Red_LED, HIGH);

digitalWrite(Green_LED, LOW);

delay(3000);

lockPosition = 2;

eVal = lockPosition;

EEPROM.write(1,eVal);

// Serial.print(eVal);

}

else if(lockPosition == 2) {

lock1();

servo_position = 350;

myservo.write(servo_position);

digitalWrite(Red_LED, LOW);

digitalWrite(Green_LED, HIGH);

delay(3000);

lockPosition = 1;

eVal = lockPosition;

EEPROM.write(1,eVal);

// Serial.print(eVal);

}

myservo.detach();

}

void swipeText()

{

lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left corner.

lcd.setCursor(0,0); // set the cursor to column 15, line 0

for (int positionCounter1 = 0; positionCounter1 《 15; positionCounter1++)

{

lcd.print(array1[positionCounter1]); // Print a message to the LCD.

delay(tim); //wait for 250 microseconds

}

lcd.setCursor(0,1); // set the cursor to column 15, line 1

for (int positionCounter = 0; positionCounter 《 15; positionCounter++)

{

lcd.print(array2[positionCounter]); // Print a message to the LCD.

delay(tim); //wait for 250 microseconds

}

}

void lock1()

{

lcd.clear();

lcd.setCursor(0,0);

for (int positionCounter1 = 0; positionCounter1 《 15; positionCounter1++)

{

lcd.print(array3[positionCounter1]);

delay(tim);

}

lcd.setCursor(0,1);

for (int positionCounter1 = 0; positionCounter1 《 10; positionCounter1++)

{

lcd.print(array4[positionCounter1]);

delay(tim);

}

}

void lock2()

{

lcd.clear();

lcd.setCursor(0,0);

for (int positionCounter1 = 0; positionCounter1 《 15; positionCounter1++)

{

lcd.print(array3[positionCounter1]);

delay(tim);

}

lcd.setCursor(0,1);

for (int positionCounter1 = 0; positionCounter1 《 12; positionCounter1++)

{

lcd.print(array5[positionCounter1]);

delay(tim);

}

}

void loop() {

if(digitalRead(BUTTON1) == HIGH){

lockUnlock();

swipeText();

}

// Look for new cards

if ( ! mfrc522.PICC_IsNewCardPresent())

return;

// Select one of the cards

if ( ! mfrc522.PICC_ReadCardSerial())

return;

dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);

Serial.println(read_rfid);

if (read_rfid==ok_rfid_1) {

//ok, open the door.

lockUnlock();

swipeText();

}

//Add below as many “keys” as you want

if (read_rfid==ok_rfid_2) {

//also ok, open the door

lockUnlock();

swipeText();

}

//Add below as many “keys” as you want

if (read_rfid==ok_rfid_3) {

//also ok, open the door

lockUnlock();

swipeText();

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RFID
    +关注

    关注

    387

    文章

    6079

    浏览量

    237152
  • 蓝牙
    +关注

    关注

    114

    文章

    5742

    浏览量

    169466
  • 门锁
    +关注

    关注

    0

    文章

    47

    浏览量

    11903
收藏 人收藏

    评论

    相关推荐

    RFID超高频洗涤标签应用演示 #rfid标签 #超高频标签 #洗涤标签

    RFID
    深圳市融智兴科技有限公司
    发布于 :2024年10月09日 15:16:07

    项目分享 | 小熊派DIY一款指纹门锁

    今天小熊派就来手把手教大家如何利用小熊派开发板进行指纹门锁制作,让你拥有一款自己的指纹门锁。指纹门锁电路搭建及其工作原理: 首先,从整体架构来看看指纹
    发表于 10-09 13:55

    智能门锁触摸芯片_门锁感应芯片_指纹密码锁芯片

    在飞速发展的科技时代,传统的物理门锁已无法满足我们对安全和便捷的需求;智能门锁成为保护家庭安全的必备装备;触摸芯片是智能门锁的重要组件,能提供安全、便捷、高效的服务。 触摸芯片可以替代传统的
    的头像 发表于 09-26 14:57 251次阅读
    智能<b class='flag-5'>门锁</b>触摸芯片_<b class='flag-5'>门锁</b>感应芯片_指纹密码锁芯片

    RFID射频识别技术应用场景介绍# RFID

    RFID
    yueranxinxi
    发布于 :2024年09月23日 16:42:04

    RFID超高频微型标签 #rfid标签 #超高频标签 #微型标签

    RFID
    深圳市融智兴科技有限公司
    发布于 :2024年09月09日 16:11:12

    RFID屏蔽卡应用演示 #rfid标签 #rfid卡 #屏蔽卡

    RFID
    深圳市融智兴科技有限公司
    发布于 :2024年09月05日 16:46:59

    RFID超高频档案管理标签 #rfid标签 #超高频标签

    RFID
    深圳市融智兴科技有限公司
    发布于 :2024年09月04日 17:24:28

    RFID抗液体试剂标签应用案例演示 #rfid标签 #抗液体试剂标签 #RFID医疗标签

    RFID
    深圳市融智兴科技有限公司
    发布于 :2024年08月08日 15:03:27

    蓝牙RFID读写器智慧畜牧芯片扫描仪JY-U706 #RFID #手持机 #RFID读写器

    RFID读写器
    健永科技
    发布于 :2024年07月19日 15:26:13

    安全门锁门锁一开防护到位

    机械门锁
    jf_31892182
    发布于 :2024年07月16日 13:40:17

    RFID射频识别中的高频HF

    RFID,即 Radio Frequency Identification 射频识别技术,是一种非接触式的自动识别技术,通过无线射频方式进行非接触双向数据通信, 对电子标签或射频卡进行读写, 从而
    发表于 05-08 11:31

    蓝牙在智能锁中的应用

    。在智能锁领域无线通信主要有zigbee,WiFi、蓝牙3种,其中蓝牙以低功耗、低成本,高安全性能突出优点,成为智能门锁厂商热衷的无线方案通讯技术。 蓝牙智能锁方案有哪些优势: 1)待
    的头像 发表于 03-08 15:04 464次阅读

    射频识别RFID

    射频识别(RFID) 是 Radio Frequency Identification 的缩写。 射频识别技术是自动识别技术的,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体
    发表于 02-28 11:31

    BLE蓝牙定位基站介绍

    蓝牙定位基站是一款基于无线射频识别(RFID)技术,实现定位、无线通信等功能的智能基站。蓝牙定位基站主要应用于物流行业,通过射频识别(RFID)标签实现对车辆的跟踪管理及定位跟踪。
    的头像 发表于 12-21 17:05 739次阅读

    蓝牙FCC认证定频板怎么制作

    电子发烧友网站提供《蓝牙FCC认证定频板怎么制作.pdf》资料免费下载
    发表于 11-07 17:09 2次下载