使用Visuino进行可视化编程,打造Arduino RFID门锁
用Visuino实现安全的Arduino RFID门锁!本教程将展示如何连接MFRC522 RFID模块、读取RFID卡ID,并控制电磁线圈锁。当检测到有效的RFID卡时,门会自动解锁,绿色LED灯亮起作为视觉确认。再次刷卡即可重新锁定门锁。未授权的卡片将无法进入。
所需硬件:
- Arduino板(Uno、Nano、Mega或兼容型号)
- MFRC522 RFID模块 + RFID标签/卡片
- 带驱动器(继电器/MOSFET)的电磁线圈锁(或电击式锁)
- 绿色LED灯 + 电阻(用于解锁指示)
- 线圈外部电源
- 板子、跳线、可选蜂鸣器
为什么这个项目很棒:
无需编程——100%可视化编程,使用Visuino
适合初学者,同时适用于智能家居安防
包含门锁控制和LED反馈,状态清晰明了
1:你需要准备的材料
- RFID模块MFRC522
- 电磁线圈锁(直流12V)
- 电源
- 继电器模块
- 用于测试的某些RFID卡
- LED
- 1K欧姆电阻
- Arduino UNO
- 跳线
- 面包板
- Visuino程序
2:电路连接
•将RFID模块的SDA引脚连接到Arduino数字引脚[10]
•将RFID模块的SCK引脚连接到Arduino数字引脚[13]
•将RFID模块的MOSI引脚连接到Arduino数字引脚[11]
•将RFID模块的MISO引脚连接到Arduino数字引脚[12]
•将RFID模块的GND引脚连接到Arduino的GND引脚
•将RFID模块的RST引脚连接到Arduino数字引脚[9]
•将RFID模块的3.3V引脚连接到Arduino的3.3V引脚
•将Arduino数字引脚[3]连接到1K欧姆电阻
•将1K欧姆电阻连接到LED的正极(+)
•将LED的负极(-)连接到Arduino的GND引脚
•将继电器的VCC引脚(+)连接到Arduino的5V引脚
•将继电器的GND引脚(-)连接到Arduino的GND引脚
•将继电器信号引脚(S)连接到Arduino数字引脚2
•将电源12V(+)连接到电磁锁的红色线(+)
•将电源12V(-)连接到继电器的COM引脚
•将电磁锁的黑色线(-)连接到继电器的NO引脚
3:启动Visuino并选择Arduino UNO板类型
如图1所示,启动Visuino。在Visuino中点击Arduino组件上的“Tools”按钮(见图1)。弹出对话框后,按图2所示选择“Arduino UNO”。
4:在 Visuino 中添加组件
•添加“RFID MFRC522/WS1850S (SPI)”组件
•添加“二进制转文本”组件
•添加“多源文本”组件
•添加“文本值”组件
•添加“查找文本位置”组件
•添加“延迟”组件
•添加“切换(T)触发器”组件
5:在 Visuino 中设置组件
•选择“BinaryToText1”,在属性窗口中将“开始文本”、“结束文本”和“分隔符文本”设为空。
•选择“TextValue1”,在属性中选择“值”,点击三个点按钮,在“值”窗口中输入你的卡片ID。
•选择“FindPosition1”,在属性窗口中选择“文本”,点击引脚图标,选择“String SinkPin”。
•选择“Delay1”,在属性窗口中将“间隔”设为500000(0.5秒),可根据需要调整此数值。在此项目中,用于读取RFID标签时增加一小段延迟,以防止刷卡时重复读取。
6:在 Visuino 中连接组件
•将 RFID1 的 Card.ID 输出引脚(字节类型)连接到 BinaryToText1 的输入引脚。
•将 RFID1 的 ChipSelect 输出引脚(数字输出引脚)连接到 Arduino 的 Digital.Digital[10].DigitalInputPin。
•将 RFID1 的 SPI 通信连接(SPI 通信类型)。将 Interface OutputPin 连接到 Arduino.SPIChannels.SPI.InputPin
•将 RFID1 的 Reset 输出引脚(数字输出引脚)连接到 Arduino.Digital.Digital[9].DigitalInputPin
•将 BinaryToText1 的 OutputPin(字符串)连接到 MultiSource1 的 InputPin
•将 MultiSource1 的 OutputPins.Pin [0](字符串)连接到 FindPosition1文本
•将 MultiSource1 的 OutputPins.Pin [1] 连接到 TextValue1 的 Clock 输入引脚
•将 TextValue1 的 OutputPin 连接到 FindPosition1 的 InputPin
•将 FindPosition1 的 OutputPin 连接到 Delay1 的 Start 输入引脚
•将 FindPosition1 的 Missing OutputPin 连接到 TFlipFlop1 的 Reset 输入引脚
•将 Delay1 的 OutputPin 连接到 TFlipFlop1 的 ClockInputPin
•将 TFlipFlop1 的 OutputPin 连接到 MultiSource2 的 InputPin
•将 MultiSource2 的 OutputPins.Pin [0] 连接到 Arduino.Digital.Digital[2].DigitalInputPin
•将 MultiSource2 的 OutputPins.Pin [1] 连接到 Arduino.Digital.Digital[3].DigitalInputPin
7:生成、编译并上传 Arduino 代码
在 Visuino 中,点击底部的“Build”选项卡,确保选择了正确的端口,然后点击“Compile/Build and Upload”按钮。
本文编译自hackster.io





