Updated code
This commit is contained in:
parent
b6ad9c455b
commit
fdf825ef02
@ -83,7 +83,7 @@ bool lock_disable = false;
|
||||
#define RFID_START_BYTE 0x02 // start byte
|
||||
#define RFID_STOP_BYTE 0x03 // stop byte
|
||||
#define RFID_TAG_BYTES 10 // number of bytes in package that represent the tag
|
||||
#define RFID_TAGS 5 // Number of tags to be supported to store in EEPROM
|
||||
#define RFID_TAGS 10 // Number of tags to be supported to store in EEPROM
|
||||
#define EEPROM_CURRENT_TAG_ADDRESS 0 // Addres for storing current address in the tag memory
|
||||
#define EEPROM_TAG_START_ADDRESS 1 // Start addres for storing RFID tags
|
||||
int rfid_current_checksum = 0;
|
||||
@ -105,6 +105,17 @@ ZUNO_SETUP_CHANNELS(
|
||||
ZUNO_SENSOR_BINARY_DOOR_WINDOW(getterDoor)
|
||||
);
|
||||
|
||||
void load_rfid_keys() {
|
||||
int address = EEPROM_TAG_START_ADDRESS;
|
||||
for (int i = 0; i < RFID_TAGS; i++) {
|
||||
for (int j = 0; j < RFID_TAG_BYTES; j++) {
|
||||
rfid_tags[i][j] = EEPROM.read(address);
|
||||
address++;
|
||||
}
|
||||
}
|
||||
CONSOLE_SERIAL.println("RFID tags loaded from EEPROM");
|
||||
}
|
||||
|
||||
void update_rfid() {
|
||||
int rfid_read = 0;
|
||||
if (RFID_SERIAL.available()) {
|
||||
@ -118,9 +129,10 @@ void update_rfid() {
|
||||
// Check for package end
|
||||
if (rfid_read == RFID_STOP_BYTE) {
|
||||
if (rfid_store_tag) {
|
||||
int rfid_eeprom_pos = rfid_store_tag_nbr * RFID_TAG_BYTES;
|
||||
int rfid_eeprom_pos = rfid_store_tag_nbr-1 * RFID_TAG_BYTES;
|
||||
for (int i = 0; i < RFID_TAG_BYTES; i++) {
|
||||
EEPROM.write(rfid_eeprom_pos, rfid_package[i + 1]);
|
||||
rfid_tags[rfid_store_tag_nbr-1][i] = rfid_package[i + 1];
|
||||
rfid_eeprom_pos++;
|
||||
}
|
||||
|
||||
@ -140,10 +152,10 @@ void update_rfid() {
|
||||
if (tag_ok == true) {
|
||||
CONSOLE_SERIAL.println("RFID tag verified");
|
||||
if (sensor_door_locked){
|
||||
set_servo(SERVO_UNLOCK, i+1);
|
||||
set_servo(SERVO_UNLOCK, SOURCE_RFID);
|
||||
}
|
||||
else{
|
||||
set_servo(SERVO_LOCK, i+1);
|
||||
set_servo(SERVO_LOCK, SOURCE_RFID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -309,11 +321,12 @@ void setup() {
|
||||
|
||||
pinMode(SERVO_ENABLE_PIN, OUTPUT); // setup pin as output
|
||||
digitalWrite(SERVO_ENABLE_PIN, LOW);
|
||||
|
||||
set_servo(SERVO_CENTER, SOURCE_SYSTEM);
|
||||
|
||||
CONSOLE_SERIAL.begin(9600);
|
||||
RFID_SERIAL.begin(9600);
|
||||
|
||||
load_rfid_keys();
|
||||
set_servo(SERVO_CENTER, SOURCE_SYSTEM);
|
||||
}
|
||||
|
||||
// the loop routine runs over and over again forever:
|
||||
@ -327,7 +340,7 @@ void loop() {
|
||||
// Check button status
|
||||
if (btn_lock == true){
|
||||
if (rfid_store_tag_nbr > 0 && rfid_store_tag == false){
|
||||
int rfid_eeprom_pos = rfid_store_tag_nbr * RFID_TAG_BYTES;
|
||||
int rfid_eeprom_pos = rfid_store_tag_nbr-1 * RFID_TAG_BYTES;
|
||||
for (int i = 0; i < RFID_TAG_BYTES; i++) {
|
||||
EEPROM.write(rfid_eeprom_pos,0xFF);
|
||||
rfid_eeprom_pos++;
|
||||
@ -366,7 +379,7 @@ void loop() {
|
||||
// Check if sensor changed and report to Z-Wave
|
||||
if (sensor_door_closed_changed){
|
||||
sensor_door_closed_changed = false;
|
||||
zunoSendReport(8);
|
||||
zunoSendReport(4);
|
||||
}
|
||||
|
||||
// Check if servo needs to be centered or turned off
|
||||
@ -495,20 +508,11 @@ void setterLockDisable(byte value) {
|
||||
}
|
||||
|
||||
byte getterLockDisable(void) {
|
||||
if (lock_disable || sensor_not_home_activated){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
byte getterDoor(void) {
|
||||
return sensor_door_closed;
|
||||
return lock_disable;
|
||||
}
|
||||
|
||||
void setterStoreRFID(byte value) {
|
||||
if (rfid_store_tag_nbr == 0 && value > 0){
|
||||
if (rfid_store_tag_nbr == 0 && value > 0 && value < RFID_TAGS + 1){
|
||||
rfid_store_tag_nbr = value;
|
||||
rfid_timeout_timestamp = current_timestamp + 30000;
|
||||
}
|
||||
@ -522,4 +526,7 @@ byte getterStoreRFID(void) {
|
||||
return rfid_store_tag_nbr;
|
||||
}
|
||||
|
||||
byte getterDoor(void) {
|
||||
return sensor_door_closed;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user