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

来自Microduino Wikipedia
跳转至: 导航搜索
方案二:采用Microduino 32U4作为USB设备
关于Apple Mac电脑解锁
 
(未显示2个用户的33个中间版本)
第1行: 第1行:
 +
{{Language|Microduino nRF24 set up network and NFC unlock computer}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
第16行: 第17行:
  
 
==材料清单==
 
==材料清单==
===Microduino网关===
 
{|class="wikitable"
 
|-
 
|模块||数量||功能
 
|-
 
|Microduino-Core||1||核心板
 
|-
 
|Microduino-FT232R ||1||下载程序和供电
 
|-
 
|Microduino-nRF24 ||1||组网、无线通信
 
|-
 
|Microduino-NFC ||1||读取电子标签
 
|}
 
 
===Microduino 网关节点===
 
  
 
{|class="wikitable"
 
{|class="wikitable"
第36行: 第22行:
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|Microduino-Core||1||核心板
+
|[[Microduino-CoreUSB/zh]]||2||核心板, 下载程序和供电
 
|-
 
|-
|Microduino-FT232R ||1||下载程序,下载完毕可以拔下不用
+
|[[Microduino-nRF24/zh]] ||2||组网、无线通信
 
|-
 
|-
|Microduino-nRF24 ||1||无线通信
+
|[[Microduino-NFC/zh]] ||1||读取电子标签
|-
 
|AVR-USB-HID设备 ||1||模拟电脑键盘
 
 
|}
 
|}
  
第54行: 第38行:
 
|}
 
|}
 
==文档==
 
==文档==
使用到UsbKeyboard库下载地址:https://github.com/suapapa/arduino_library_UsbKeyboard
+
使用到UsbKeyboard库下载地址:[https://github.com/suapapa/arduino_library_UsbKeyboard arduino_library_UsbKeyboard]
 +
 
 +
使用到RF24库下载地址:[https://github.com/maniacbug/RF24 RF24]
  
使用到RF24库下载地址:https://github.com/maniacbug/RF24/
+
使用到NFC库下载地址:[https://github.com/adafruit/Adafruit_NFCShield_I2C Adafruit_NFCShield_I2C]
  
使用到NFC库下载地址:https://github.com/adafruit/Adafruit_NFCShield_I2C
+
测试程序下载地址:[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_nrf_NFC Microduino_nrf_NFC]
  
测试程序下载地址:https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_nrf_NFC
+
=='''方案一:单个Microduino-CoreUSB解锁'''==
  
 
==调试==
 
==调试==
  
*步骤一:AVR-USB-HID设备制作
+
步骤一:堆叠Microduino-CoreUSB和Microduino-NFC模块,看起来像这样:
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
+
[[File:Microduino_nfc_nrfVersion1_1.png||600px|center|thumb]]
**硬件设备
+
 
{|class="wikitable"
+
步骤二:下载Microdiono_nfc_32u4.ino的代码,编译运行
|-
+
 
|3.3V稳压芯片||1||可选则,或者换成有3.3V电源供电即可
+
该程序实现通过NFC电子标签将指定的字符(模拟键盘按下值)在文本文档中打印出来。
|-
+
 
|68Ω电阻||2||用50~100Ω电阻也行
+
玩家需要注意程序的几点:
|-
+
 
|2.2kΩ电阻 ||1||用1.5k~2.2k电阻也行
+
1.玩家参考方案一更改自己成的卡号
|-
+
 
|导线 ||2||跳线
+
2.“Keyboard.write();”函数只按一次按键,“Keyboard.press()”函数一直按住按键,要配合“Keyboard.releaseAll()”函数一起使用;
|}
+
 
===原理图===
+
3.输入大小写字母数字直接用单引号,例如按下大写字母M:“Keyboard.write(‘M’);”,输入特殊案件则在hardware\arduino\cores\arduino里的“USBAPI.h”文件可以看到特殊按键名称,方法例如按下回车:“Keyboard.write(KEY_RETURN);”
[[File:Microduino_nfc_nrf1.jpg||600px|center|thumb]]
+
 
[[File:Microduino_nfc_nrf2.jpg||600px|center|thumb]]
+
步骤三:用NFC标签靠近感应区,这是你的电脑如果打开个记事本的话应该会出现microduino字样:
原理介绍:
+
[[File:Microduino_nfc_nrfVersion1_2.png||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设备。
+
当你的电脑进入休眠状态后,通过刷NFC就可以代替你用键盘输入密码解锁了。
 +
 
 +
=='''方案二:采用Microduino-CoreUSB搭建网关多节点'''==
 +
 
 +
 
 +
**调试:
  
*步骤二:搭建网关
+
步骤一:搭建网关
**使用到的模块
 
[[File:Microduino_nfc_nrf3.jpg||600px|center|thumb]]
 
**叠堆
 
[[File:Microduino_nfc_nrf4.jpg||600px|center|thumb]]
 
 
**下载需要使用到的所有的库,放到Arduino IDE编译器文件夹里的libraries文件夹内;
 
**下载需要使用到的所有的库,放到Arduino IDE编译器文件夹里的libraries文件夹内;
**修改匹配电子标签的卡号,使用NFC自带库将ID读取出来,打开Adafruit_NFCShield_I2C\examples\iso14443a_uid的示例程序,把“ Serial.print(" 0x");Serial.print(uid[i], HEX); ”改成“Serial.print(uid[i]); ”我们要的是uid[i]的值,改完编译通过后选择好板卡直接下载,下载成功打开串口监视器,刷卡就能识别出卡号了;
+
**修改匹配电子标签的卡号,使用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]”数组用来存放匹配卡号,玩家把他改成自己的卡号就行,编译通过后选择好板卡直接下载;
 
**打开我们的“Microduino_nfc_nrf_send”程序,“dataCard_one[4]”和“dataCard_two[4]”数组用来存放匹配卡号,玩家把他改成自己的卡号就行,编译通过后选择好板卡直接下载;
  
*步骤三:搭建节点
+
步骤二:搭建节点
**使用到的模块
+
只需要一个Microduino 32U4和一个MIcroduino nRF24模块即可
[[File:Microduino_nfc_nrf5.jpg||600px|center|thumb]]
+
[[File:Microduino_nfc_nrf9.jpg||600px|center|thumb]]
**叠堆(如果系统有3.3V供电则可以不需要FT232R)
+
[[File:Microduino_nfc_nrf10.jpg||600px|center|thumb]]
[[File:Microduino_nfc_nrf6.jpg||600px|center|thumb]]
+
 
 
我们搭建两路节点,因此在网关程序中只定义了两路,用“x”的值选择节点,用户如果需要增加节点,只需要增加判断卡号语句和“x”的值就可以实现。
 
我们搭建两路节点,因此在网关程序中只定义了两路,用“x”的值选择节点,用户如果需要增加节点,只需要增加判断卡号语句和“x”的值就可以实现。
 
**测试程序修改
 
**测试程序修改
***打开“microduino_nrf_nfc_receive”程序,节点一下载程序时需要确认语句“const uint16_t this_node = 1 ;”的值为1,节点二下载程序时需要确认语句“const uint16_t this_node = 2 ;”的值为2;这样避免了数据冲突。
+
***打开“microduino_nrf_nfc_receive_32u4”程序,节点一下载程序时需要确认语句“const uint16_t this_node = 1 ;”的值为1,节点二下载程序时需要确认语句“const uint16_t this_node = 2 ;”的值为2;这样避免了数据冲突。
 
***更改密码,需要更改key函数里面的按键值,在UsbKeyboard库的UsbKeyboard.h里面,可以看到模拟键对应的值,只是一部分,不过基本够用,玩家可以参考更改自己的按键值(密码),确认完毕编译成功之后便可下载。
 
***更改密码,需要更改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的电脑能自动如入密码,进行解锁,实现瞬间对电脑解锁。
+
将网关供电,并且节点通过Microduino-CoreUSB设备接入电脑,分别让NFC识别电子标签,观察记事本返回的数据是否与电脑设置的密码匹配,匹配成功即可开始控制。
 +
 
 +
玩家需要更换成自己的密码(模拟按键值)
 +
玩家可以在D6引脚接上LED指示灯观看nRF24是否正常通讯,有数据连接则LED灯点亮。
 +
 
 +
==关于Apple Mac电脑解锁==
 +
 
 +
本例的程序也适用于苹果电脑
 +
 
 +
请使用[[https://github.com/wasdpkj/Microduino-IDE/tree/master/arduino-1.0.6-macosx Microduino-macosx-IDE]]来加载程序,运行程序测试,如下图:
 +
[[File:Microduino_nfc_nrf11.png||600px|center|thumb]]
  
 
==难点==
 
==难点==
*AVR-USB-HID设备制作,需要将USB信号线的电压限制在2.8-3.6V。电源和匹配电阻很重要;
 
 
*Microduino NRF24组网,无线通讯;
 
*Microduino NRF24组网,无线通讯;
 
*Microduino NFC电子标签识别。
 
*Microduino NFC电子标签识别。
  
 
==注意问题==
 
==注意问题==
*AVR-USB-HID设备制作时别把USB的D+、D-信号线弄错;
 
 
*目前Microduino NFC能够识别iso14443a型号的电子标签;
 
*目前Microduino NFC能够识别iso14443a型号的电子标签;
 
*节点和电脑匹配好;否则密码相反。
 
*节点和电脑匹配好;否则密码相反。
第123行: 第114行:
 
==视频==
 
==视频==
 
http://v.youku.com/v_show/id_XNjk5NjM2Mjc2.html
 
http://v.youku.com/v_show/id_XNjk5NjM2Mjc2.html
 
==方案二:采用Microduino 32U4作为USB设备==
 
这里32U4相当于我们方案一里的AVR-USB-HID设备和Microduino核心板,因此我们只需要再叠加一个MIcroduino nRF24就可以搭建一个节点了。玩家不再需要焊接电路板了。
 
 
**调试:
 
我们使用到的是Arduino自带的USB库,用他来实现模拟键盘数据输入。
 
步骤一:使用32U4和NFC搭建一个模拟键盘
 
下载测试程序:
 
该程序实现通过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同时控制多台电脑。
 
|}
 

2014年12月30日 (二) 05:13的最新版本

Language English

概述

  • 项目名称: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设备传入密码至电脑(实质是模拟电脑键盘输入键盘值),这样就实现电子标签瞬间对电脑进行解锁。

Microduino nfc—nrf.jpg

材料清单

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

其他硬件设备

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

文档

使用到UsbKeyboard库下载地址:arduino_library_UsbKeyboard

使用到RF24库下载地址:RF24

使用到NFC库下载地址:Adafruit_NFCShield_I2C

测试程序下载地址:Microduino_nrf_NFC

方案一:单个Microduino-CoreUSB解锁

调试

步骤一:堆叠Microduino-CoreUSB和Microduino-NFC模块,看起来像这样:

Microduino nfc nrfVersion1 1.png

步骤二:下载Microdiono_nfc_32u4.ino的代码,编译运行

该程序实现通过NFC电子标签将指定的字符(模拟键盘按下值)在文本文档中打印出来。

玩家需要注意程序的几点:

1.玩家参考方案一更改自己成的卡号

2.“Keyboard.write();”函数只按一次按键,“Keyboard.press()”函数一直按住按键,要配合“Keyboard.releaseAll()”函数一起使用;

3.输入大小写字母数字直接用单引号,例如按下大写字母M:“Keyboard.write(‘M’);”,输入特殊案件则在hardware\arduino\cores\arduino里的“USBAPI.h”文件可以看到特殊按键名称,方法例如按下回车:“Keyboard.write(KEY_RETURN);”

步骤三:用NFC标签靠近感应区,这是你的电脑如果打开个记事本的话应该会出现microduino字样:

Microduino nfc nrfVersion1 2.png

结果

当你的电脑进入休眠状态后,通过刷NFC就可以代替你用键盘输入密码解锁了。

方案二:采用Microduino-CoreUSB搭建网关多节点

    • 调试:

步骤一:搭建网关

    • 下载需要使用到的所有的库,放到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]”数组用来存放匹配卡号,玩家把他改成自己的卡号就行,编译通过后选择好板卡直接下载;

步骤二:搭建节点 只需要一个Microduino 32U4和一个MIcroduino nRF24模块即可

Microduino nfc nrf9.jpg

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

    • 测试程序修改
      • 打开“microduino_nrf_nfc_receive_32u4”程序,节点一下载程序时需要确认语句“const uint16_t this_node = 1 ;”的值为1,节点二下载程序时需要确认语句“const uint16_t this_node = 2 ;”的值为2;这样避免了数据冲突。
      • 更改密码,需要更改key函数里面的按键值,在UsbKeyboard库的UsbKeyboard.h里面,可以看到模拟键对应的值,只是一部分,不过基本够用,玩家可以参考更改自己的按键值(密码),确认完毕编译成功之后便可下载。
  • 步骤三:先用记事本调试

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

玩家需要更换成自己的密码(模拟按键值) 玩家可以在D6引脚接上LED指示灯观看nRF24是否正常通讯,有数据连接则LED灯点亮。

关于Apple Mac电脑解锁

本例的程序也适用于苹果电脑

请使用[Microduino-macosx-IDE]来加载程序,运行程序测试,如下图:

难点

  • Microduino NRF24组网,无线通讯;
  • Microduino NFC电子标签识别。

注意问题

  • 目前Microduino NFC能够识别iso14443a型号的电子标签;
  • 节点和电脑匹配好;否则密码相反。

视频

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