- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是新来的,所以请不要为我的愚蠢而生气。我有一个项目,我必须读取 RFID UID 代码(这部分就像一个魅力),然后将它发送到连接到 C# 应用程序的数据库,然后接收响应(0 或 1)。我的问题(目前)是arduino不发送任何数据。也许有人可以帮助我?
这是我的arduino代码:
#include <EtherCard.h>
#include <SPI.h> // RC522 Module uses SPI protocol
#include <MFRC522.h> // Library for Mifare RC522 Devices
#include <DS1302RTC.h>
#include <Time.h>
static byte mymac[] = {0x74,0xDD,0xDD,0x00,0x00,0x01};
static byte server_IP[] = {192,168,0,102};
static int server_Port = 7745;
byte Ethernet::buffer[600];
// Init the DS1302 (external RTC)
// Set pins: CE, IO,CLK
DS1302RTC RTC(45, 43, 41);
// Optional connection for RTC module
#define DS1302_GND_PIN 39
#define DS1302_VCC_PIN 37
#define COMMON_ANODE
#define LED_ON HIGH
#define LED_OFF LOW
#define redLed 3
#define greenLed 5
#define blueLed 7
#define relay 4
int successRead; // Variable integer to keep if we have Successful Read from Reader
byte readCard[4]; // Stores scanned ID read from RFID Module
/* We need to define MFRC522's pins and create instance
* Pin layout should be as follows (on Arduino Mega 2560):
* MOSI: Pin 51 / ICSP-4
* MISO: Pin 50 / ICSP-1
* SCK : Pin 52 / ICSP-3
* SS : Pin 46 (Configurable)
* RST : Pin 34 (Configurable)
* look MFRC522 Library for
* pin configuration for other Arduinos.
*/
#define SS_PIN1 46
#define RST_PIN1 34
MFRC522 mfrc522(SS_PIN1, RST_PIN1); // Create MFRC522 instance.
///////////////////////////////////////// Setup ///////////////////////////////////
void setup() {
Serial.begin(9600); // Initialize serial communications with PC
Serial.print("MAC: ");
for (byte i = 0; i < 6; ++i) {
Serial.print(mymac[i], HEX);
if (i < 5)
Serial.print(':');
}
Serial.println();
if (ether.begin(sizeof Ethernet::buffer, mymac, 53)==0) {
Serial.println( "Failed to access Ethernet controller");
//while(1);
} else Serial.println("Ethernet controller initialized");
if (!ether.dhcpSetup()) {
Serial.println("Failed to get configuration from DHCP");
//while(1);
} else Serial.println("DHCP configuration done:");
ether.printIp("My IP: ", ether.myip);
ether.printIp("Netmask: ", ether.netmask);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
Serial.println();
ether.copyIp(ether.hisip, server_IP);
ether.hisport = server_Port;
//Arduino Pin Configuration
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(relay, OUTPUT);
digitalWrite(relay, LOW); // Make sure door is locked
digitalWrite(redLed, LED_OFF); // Make sure led is off
digitalWrite(greenLed, LED_OFF); // Make sure led is off
digitalWrite(blueLed, LED_OFF); // Make sure led is off
//Protocol Configuration
SPI.begin(); // MFRC522 Hardware uses SPI protocol
mfrc522.PCD_Init(); // Initialize MFRC522 Hardware
mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max); //Set Antenna Gain to Max- this will increase reading distance
// Activate RTC module
digitalWrite(DS1302_GND_PIN, LOW);
pinMode(DS1302_GND_PIN, OUTPUT);
digitalWrite(DS1302_VCC_PIN, HIGH);
pinMode(DS1302_VCC_PIN, OUTPUT);
RTC.haltRTC(1); //clock enable (1), clock disable (0)
RTC.writeEN(0); //Write protection OFF (1), write protection ON (0)
//Time set
//setTime(1,19,0,16,12,2014);
//time_t t = now();
//RTC.set(t);
delay(200);
}
///////////////////////////////////////// Main Loop ///////////////////////////////////
void loop () {
ether.packetLoop(ether.packetReceive());
do {
successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0
normalModeOn(); // Normal mode, blue Power LED is on, all others are off
}
while (!successRead); //the program will not go further while you not get a successful read
openDoor();
}
///////////////////////////////////////// Get PICC's UID ///////////////////////////////////
int getID() {
// Getting ready for Reading PICCs
if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue
return 0;
}
if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue
return 0;
}
//Serial.println("Scanned PICC's UID:");
for (int i = 0; i < 4; i++) { //
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i], HEX);
}
Serial.println(readCard[4],HEX);
char string_temp[7];
dtostrf (readCard[2], 4, 2, string_temp);
Stash stash;
byte sd = stash.create();
stash.print(string_temp);
stash.print('\r');
stash.save();
Stash::prepare(PSTR("$H"), sd);
ether.tcpSend();
Serial.println("Packet sent!");
Serial.println("");
mfrc522.PICC_HaltA(); // Stop reading
return 1;
}
//////////////////////////////////////// Normal Mode Leds ///////////////////////////////////
void normalModeOn () {
digitalWrite(blueLed, LED_ON); // Blue LED ON and ready to read card
digitalWrite(redLed, LED_OFF); // Make sure Red LED is off
digitalWrite(greenLed, LED_OFF); // Make sure Green LED is off
digitalWrite(relay, LOW); // Make sure Door is Locked
}
///////////////////////////////////////// Unlock Door ///////////////////////////////////
void openDoor() {
digitalWrite(blueLed, LED_OFF); // Turn off blue LED
digitalWrite(redLed, LED_OFF); // Turn off red LED
digitalWrite(greenLed, LED_ON); // Turn on green LED
digitalWrite(relay, HIGH); // Unlock door!
delay(1000); // Hold door lock open for given seconds
digitalWrite(relay, LOW); // Relock door
delay(1000); // Hold green LED on for 2 more seconds
}
///////////////////////////////////////// Failed Access ///////////////////////////////////
void failed() {
digitalWrite(greenLed, LED_OFF); // Make sure green LED is off
digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off
digitalWrite(redLed, LED_ON); // Turn on red LED
delay(2000);
}
我为 arduino 使用 EtherCard.h 库和 ENC28J60 以太网模块。
最佳答案
ENC28J60 与 Arduino UNO 不兼容,当与其他 SPI 设备一起使用时很可能与 MEGA2560 兼容。
您应该改用使用 W5100 的默认 Arduino Ethernet Shield。
我在使用 ENC28J60 时遇到了同样的问题,尝试了很多设置并最终得到了一个 W5100,它开箱即用,可以使用默认的以太网库。
关于Arduino Mega2560 ENC28J60 和 RFID 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926949/
我有一张表user和一张表enc。一个 user 可以有多个 enc 而我只想要 enc 的最新日期。我将如何处理左连接? 我试过了: select u.uname,e.date from users
我做了以下“模拟”: byte[] b = new byte[256]; for (int i = 0; i < 256; i ++) { b[i] = (byte) (i - 128); }
我正在使用一个 API,它返回经过压缩和双 Base64 编码的数据。我尝试在 NPM 中使用几个 Base64 库,但没有成功。执行每个库的等效操作 decodeBase64(decodeBase6
我正在使用 mcc 编译我的 MATLAB 项目。我使用的机器上安装了很多 MATLAB 工具箱,但我的代码只需要几个(例如 distcomp 和图像)。但是,每当我运行 mcc 时,它最终都会“处理
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我在 FreeBSD 7.4 中运行 perl 5.8.9。我正在使用 XML/Parser.pm 模块。 它曾经有效,但今天我收到以下错误消息:无法打开 encmap ascii.enc:没有这样的
作为一般规则,jasypt 期望加密的配置参数出现在“ENC(...)”周围。 例如,在 appConfig.properties 文件中,我有以下属性: databaseurl = sampleur
有没有办法以编程方式向 Rails 5.2 中的 config/credentials.yml.enc 添加 secret ? 将credentials.yml.enc 推送到存储库供内部使用可能没问
(抱歉,这很冗长)我正在尝试向 OS X 10.6 (Snow Leopard) 的 Objective C 编写的 Cocoa 应用程序添加 OpenSSL 支持。为了简化问题,我有一个小的包装类
我正在尝试在powershell中复制以下代码: const hmac = CryptoJS.HmacSHA256(CryptoJS.enc.Hex.parse(hash), salt); seed
我有一个简单的 bash 脚本,它使用 base64 对字符串进行编码/解码。脚本是: #!/bin/bash echo "encode or decode ?" read input if [ "$
我正在尝试学习 Java EE 并且我已经阅读了一段时间有关 JNDI 的内容,但是除了互联网上的一些基本示例以及从一个地方复制到另一个地方的相同定义之外,我发现很少有信息可以真正解释建筑学。我需要知
我将 Heroku 与 Rails 6 和 Postgres 结合使用。我正在尝试使用 heroku open 启动应用程序,但构建失败,这在日志中显示: -----> Detecting rake
有没有办法像在 JS 中一样将 Python 中的哈希值转换为单词数组? 在带有 CryptoJS 的 JS 中,我可以使用:CryptoJS.enc.Hex.parse(hash) 它将输出单词数组
puppet 版本:3.6.2 为了简化 ssl 证书的管理,我们的 puppet 代理使用相同的 certname,certname=agent.puppet.com 当 puppet master
我在服务器中有一个使用 OpenSSL 命令加密的文件: openssl enc -aes-256-ecb -salt -in ori.pdf -out encrypted.pdf -pass pas
我在我的 Ruby on Rails 应用程序中使用 ActiveRecord::Store 模块时遇到了一个奇怪的问题。据我了解,该模块在后台使用“序列化”方法,因此它只是使用 ruby 内置的
我正在准备 EJB 认证,我正在阅读 EJB 3.1 书 (O'Reilly) 其中一章讨论了 JNDI、ENC 和 EJB 连接 你们中的一些人能否给我一个真实的生活场景,以便我能更好地理解 最佳答
我正在尝试将以下哈希加密为 base64: 6bb984727b8c8c8017207e54b63976dc42ea9d24ad33bd5feeaa66869b650096 需要访问网站的 API。该
我最近删除了我的本地项目,但是做了一个git克隆,然后从我上次提交的地方开始提取。当我尝试将图像上传到已配置的AWS时,出现此错误: Aws::Sigv4::Errors::MissingCreden
我是一名优秀的程序员,十分优秀!