“Microduino nRF24组网NFC电脑解锁/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
调试
Pkj讨论 | 贡献
视频
第121行: 第121行:
  
 
==视频==
 
==视频==
 
+
http://v.youku.com/v_show/id_XNjk5NjM2Mjc2.html
 
|}
 
|}

2014年4月16日 (三) 10:21的版本

概述

  • 项目名称:Microduino nfc电脑解锁
  • 目的:解决电脑锁屏后键盘繁琐输入密码,Microuino通过NFC结合nRF24无线通讯,通过电子标签轻松实现瞬间解锁。
  • 难度:高级
  • 耗时:6小时
  • 制作者:Microduino Studio-YLB

原理

该系统采用Microduino nRF24组网。主系统采用Miccroduino核心板(Miccroduino -Core或Microduino Core+或Microduino 32U4)、Microduino nRF24、Microduino NFC、Microduino FT232R这些模块作为网关。 采用Miccroduino -Core、Microduino nRF24、自制AVR-USB-HID设备作为网关节点。每个电子标签承载不同的ID号,网关识别到不同卡号的时,才向指定的节点发送命令,否者将一直等待电子标签。当节点接收到命令数据后,触发AVR-USB-HID设备传入密码至电脑(实质是模拟电脑键盘输入键盘值),这样就实现电子标签瞬间对电脑进行解锁。

Microduino nfc—nrf.jpg

材料清单

Microduino网关

模块 数量 功能
Microduino-Core 1 核心板
Microduino-FT232R 1 下载程序和供电
Microduino-nRF24 1 组网、无线通信
Microduino-NFC 1 读取电子标签

Microduino 网关节点

模块 数量 功能
Microduino-Core 1 核心板
Microduino-FT232R 1 下载程序,下载完毕可以拔下不用
Microduino-nRF24 1 无线通信
AVR-USB-HID设备 1 模拟电脑键盘

其他硬件设备

电子标签 1 相当于电脑身份证
USB数据线 3 供电

文档

使用到UsbKeyboard库下载地址:https://github.com/suapapa/arduino_library_UsbKeyboard

使用到RF24库下载地址:https://github.com/maniacbug/RF24/

使用到NFC库下载地址:https://github.com/adafruit/Adafruit_NFCShield_I2C

测试程序下载地址:

调试

  • 步骤一:AVR-USB-HID设备制作

AVR-USB-HID设备识别电压要满足在2.8-3.6V之间,这里只介绍一种方法将Microduino供电改成3.3V,将Microduino-Core上的电源选择零电阻更换到3.3V接口上,这样I/O口电压就可以满足了。另一种方法没改变Microduino -Core的解法,采用稳压管稳压,详细参考:http://www.microduino.cc/wiki/index.php?title=Lesson_5--Microduino_Simulates_Computer_Keyboard

    • 硬件设备
3.3V稳压芯片 1 可选则,或者换成有3.3V电源供电即可
68Ω电阻 2 用50~100Ω电阻也行
2.2kΩ电阻 1 用1.5k~2.2k电阻也行
导线 2 跳线

原理图

原理介绍: 1.两个68Ω电阻起到限流和保护功能,防止意外情况损坏电脑的USB端口或单片机端口。 2.是为2.2kΩ上拉电阻,用来区分总线的状态。如果上拉电阻连接到D +和+5 V,它是一种高速USB设备,否则连接到D-和+5 V,用作低速设备。键盘的传输速率不高在我们的实验,所以connenct到D-为低速设备。 3.3.3V稳压芯片用来给系统供电,并使Microduino核心板I/O口电压在3.3V左右,便于识别USB设备。

  • 步骤二:搭建网关
    • 使用到的模块
    • 叠堆
    • 下载需要使用到的库,放到Arduino IDE编译器文件夹里的libraries文件夹内;
    • 下载测试程序,打开“Microduino_nfc_nrf_send”程序,编译通过后选择好板卡直接下载;
  • 步骤三:搭建节点
    • 使用到的模块
    • 叠堆(如果系统有3.3V供电则可以不需要FT232R)

我们搭建两路节点,因此在网关程序中只定义了两路,用“x”的值选择节点,用户如果需要增加节点,只需要增加判断卡号语句和“x”的值就可以实现。

    • 测试程序修改
      • 打开“microduino_nrf_nfc_receive”程序,节点一下载程序时需要确认语句“const uint16_t this_node = 1 ;”的值为1,节点二下载程序时需要确认语句“const uint16_t this_node = 2 ;”的值为2;这样避免了数据冲突。
      • 更改密码,需要更改key函数里面的按键值,在UsbKeyboard库的UsbKeyboard.h里面,可以看到模拟键对应的值,只是一部分,不过基本够用,玩家可以参考更改自己的按键值(密码),确认完毕编译成功之后便可下载。
    • 下载成功后,将AVR-USB-HID设备接入电脑,如果成功可以在我的设备管理器里键盘中新增了HID Keyboard Device服务。如果不能识别,请返回检查AVR-USB-HID设备是否焊接错误。
  • 步骤四:先用记事本调试

将网关供电,并且节点通过AVR-USB-HID设备接入电脑,分别让NFC识别电子标签,观察记事本返回的数据是否与电脑设置的密码匹配,匹配成功即可开始控制。

结果

系统搭建完毕,当网关读取到电子标签1,节点1的电脑能自动如入密码,进行解锁,当网关读取到电子标签2,节点2的电脑能自动如入密码,进行解锁,实现瞬间对电脑解锁。

难点

  • AVR-USB-HID设备制作,需要将USB信号线的电压限制在2.8-3.6V。电源和匹配电阻很重要;
  • Microduino NRF24组网,无线通讯;
  • Microduino NFC电子标签识别。

注意问题

  • AVR-USB-HID设备制作时别把USB的D+、D-信号线弄错;
  • 目前Microduino NFC能够识别iso14443a型号的电子标签;
  • 节点和电脑匹配好;否则密码相反。

视频

http://v.youku.com/v_show/id_XNjk5NjM2Mjc2.html