查看“Microduino nRF24组网NFC电脑解锁/zh”的源代码
←
Microduino nRF24组网NFC电脑解锁/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==概述== *项目名称:Microduino nfc电脑解锁 *目的:解决电脑锁屏后键盘繁琐输入密码,Microuino通过NFC结合nRF24无线通讯,通过电子标签轻松实现瞬间解锁。只要一个Microduino NFC模块配合多个电子标签就可以实现多台电脑的开启 *难度:高级 *耗时: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设备传入密码至电脑(实质是模拟电脑键盘输入键盘值),这样就实现电子标签瞬间对电脑进行解锁。 [[File:Microduino_nfc—nrf.jpg||600px|center|thumb]] ==材料清单== ===Microduino网关=== {|class="wikitable" |- |模块||数量||功能 |- |[[Microduino-Core/zh]]||1||核心板 |- |[[Microduino-USBTTL/zh]] ||1||下载程序和供电 |- |[[Microduino-nRF24/zh]] ||1||组网、无线通信 |- |[[Microduino-NFC/zh]] ||1||读取电子标签 |} ===Microduino 网关节点=== {|class="wikitable" |- |模块||数量||功能 |- |Microduino-Core||1||核心板 |- |Microduino-FT232R ||1||下载程序,下载完毕可以拔下不用 |- |Microduino-nRF24 ||1||无线通信 |- |AVR-USB-HID设备 ||1||模拟电脑键盘 |} ===其他硬件设备=== {|class="wikitable" |- |电子标签 ||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 测试程序下载地址:https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_nrf_NFC =='''方案一:采用AVR-USB-HID设备'''== ==调试== *步骤一: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 **硬件设备 {|class="wikitable" |- |3.3V稳压芯片||1||可选则,或者换成有3.3V电源供电即可 |- |68Ω电阻||2||用50~100Ω电阻也行 |- |2.2kΩ电阻 ||1||用1.5k~2.2k电阻也行 |- |导线 ||2||跳线 |} ===原理图=== [[File:Microduino_nfc_nrf1.jpg||600px|center|thumb]] [[File:Microduino_nfc_nrf2.jpg||600px|center|thumb]] 原理介绍: 1.两个68Ω电阻起到限流和保护功能,防止意外情况损坏电脑的USB端口或单片机端口。 2.是为2.2kΩ上拉电阻,用来区分总线的状态。如果上拉电阻连接到D +和+5 V,它是一种高速USB设备,否则连接到D-和+5 V,用作低速设备。键盘的传输速率不高在我们的实验,所以connenct到D-为低速设备。 3.3.3V稳压芯片用来给系统供电,并使Microduino核心板I/O口电压在3.3V左右,便于识别USB设备。 *步骤二:搭建网关 **使用到的模块 [[File:Microduino_nfc_nrf3.jpg||600px|center|thumb]] **叠堆 [[File:Microduino_nfc_nrf4.jpg||600px|center|thumb]] **下载需要使用到的所有的库,放到Arduino IDE编译器文件夹里的libraries文件夹内; **修改匹配电子标签的卡号,使用NFC自带库将ID读取出来,打开Adafruit_NFCShield_I2C\examples\iso14443a_uid的示例程序,把“ Serial.print(" 0x");Serial.print(uid[i], HEX); ”改成“Serial.print(uid[i]);Serial.print(","); ”我们要的是uid[i]的值,改完编译通过后选择好板卡直接下载,下载成功打开串口监视器,刷卡就能识别出卡号了; **打开我们的“Microduino_nfc_nrf_send”程序,“dataCard_one[4]”和“dataCard_two[4]”数组用来存放匹配卡号,玩家把他改成自己的卡号就行,编译通过后选择好板卡直接下载; *步骤三:搭建节点 **使用到的模块 [[File:Microduino_nfc_nrf5.jpg||600px|center|thumb]] **叠堆(如果系统有3.3V供电则可以不需要FT232R) [[File:Microduino_nfc_nrf6.jpg||600px|center|thumb]] 我们搭建两路节点,因此在网关程序中只定义了两路,用“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设备是否焊接错误。 [[File:Microduino_nfc_nrf7.jpg||600px|center|thumb]] *步骤四:先用记事本调试 将网关供电,并且节点通过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 =='''方案二:采用Microduino 32U4作为USB设备'''== 这里32U4相当于我们方案一里的AVR-USB-HID设备和Microduino核心板,因此我们只需要再叠加一个MIcroduino nRF24就可以搭建一个节点了。玩家不再需要焊接电路板了。 **调试: 我们使用到的是Arduino自带的USB库,用他来实现模拟键盘数据输入。 步骤一:使用32U4和NFC搭建一个模拟键盘 下载测试程序“Microdiono_nfc_32u4”该程序实现通过NFC电子标签将指定的字符(模拟键盘按下值)在文本文档中打印出来。 [[File:Microduino_nfc_nrf8.jpg||600px|center|thumb]] 玩家需要注意程序的几点: 1.玩家参考方案一更改自己成的卡号 2.“Keyboard.write();”函数只按一次按键,“Keyboard.press()”函数一直按住按键,要配合“Keyboard.releaseAll()”函数一起使用; 3.输入大小写字母数字直接用单引号,例如按下大写字母M:“Keyboard.write(‘M’);”,输入特殊案件则在hardware\arduino\cores\arduino里的“USBAPI.h”文件可以看到特殊按键名称,方法例如按下回车:“Keyboard.write(KEY_RETURN);” 步骤二:搭建网关 和方案一一样,这里不详细介绍,程序也一样。注意玩家需要更改自己的卡号。 步骤三:搭建节点 只需要一个Microduino 32U4和一个MIcroduino nRF24模块即可 [[File:Microduino_nfc_nrf9.jpg||600px|center|thumb]] [[File:Microduino_nfc_nrf10.jpg||600px|center|thumb]] 程序换成microduino_nrf_nfc_receive_32u4即可 玩家需要更换成自己的密码(模拟按键值) 玩家可以在D6引脚接上LED指示灯观看nRF24是否正常通讯,有数据连接则LED灯点亮。 [[File:Microduino_nfc_nrf11jpg||600px|center|thumb]] ==比较== *方案二比方案一更简单直接 *方案二不用焊接电路 *方案二可以一个NFC直接控制一台电脑也可以一个NFC同时控制多台电脑。 |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
Microduino nRF24组网NFC电脑解锁/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息