несколько rfid меток
- Войдите на сайт для отправки комментариев
Вс, 05/01/2020 - 20:30
Подносим правильную rfid метку горит зеленый диод если не правильную горит красный
как добавить несколько меток (карты, брелки) чтобы горел зеленый диод
#include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 9 #define greenPin 8 #define redPin 7 MFRC522 mfrc522(SS_PIN, RST_PIN); const uint8_t valid_uid[] = {0x56, 0xF3, 0x6D, 0x1F}; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode(greenPin,OUTPUT); pinMode(redPin,OUTPUT); } void loop() { if(!mfrc522.PICC_IsNewCardPresent()) return; if(!mfrc522.PICC_ReadCardSerial()) return; if((mfrc522.uid.size == sizeof(valid_uid)) && (memcmp(&mfrc522.uid.uidByte, &valid_uid, sizeof(valid_uid)) == 0)) { digitalWrite(greenPin, 1); delay(3000); digitalWrite(greenPin, 0); delay(10); } else { digitalWrite(redPin, 1); delay(3000); digitalWrite(redPin, 0); delay(10); } }
^C , ^V
^C , ^V
^C , ^V
КонтралЦэ, КонтралВэ
Так программы всё-равно "по русски" не пишут, учите english.
Так программы всё-равно "по русски" не пишут, учите english.
а если мне 20 меток надо то какой код будить
И какой? Нормальный. А если 2000 меток?
Вы бы озвучили полный список хотелок сразу, а то там скоро и миллион вылезет.
а если мне 20 меток надо то какой код будить
И какой? Нормальный. А если 2000 меток?
Вы бы озвучили полный список хотелок сразу, а то там скоро и миллион вылезет.
Использование uid для идентификации карты само по себе является неправильным решением. uid никак не защищен по определению, первое что не рекомендуют делать, это использовать его для идентификации, несмотря на это в СКУД продолжают его использовать.
Простое решение
При персонализации:
выбрать сектор, установить в access bits для этого сектора разрешение чтение/записи на ключе 'B' (не забыть поменять этот ключ), выбрать блок в секторе и записать свой идентификатор.
При валидации (проверке):
Для блока выполнить аутентификацию и прочитать идентификатор.
Таким образом, все карты будут иметь один идентификатор, который можно прочитать только зная ключ.
Не нужно в коде проверять "несколько меток", у всех меток будет один идентификатор, а ключ для его чтения известен только вам.
Использование uid для идентификации карты само по себе является неправильным решением. uid никак не защищен по определению, первое что не рекомендуют делать, это использовать его для идентификации, несмотря на это в СКУД продолжают его использовать.
Простое решение
При персонализации:
выбрать сектор, установить в access bits для этого сектора разрешение чтение/записи на ключе 'B' (не забыть поменять этот ключ), выбрать блок в секторе и записать свой идентификатор.
При валидации (проверке):
Для блока выполнить аутентификацию и прочитать идентификатор.
Таким образом, все карты будут иметь один идентификатор, который можно прочитать только зная ключ.
Не нужно в коде проверять "несколько меток", у всех меток будет один идентификатор, а ключ для его чтения известен только вам.
Получив в руки одну метку (всего не несколько миллисекунд), только для того чтоб считать uid, можно изготовить неограниченное количество меток с таким-же uid-ом.
И что тогда проверять?
Про СКУД писал-же, от домофона у меня на руках 4-ре метки, все девственно чисты и у всех один и тот-же uid. Зачем проверять много если можно проверить один.
Получив в руки одну метку (всего не несколько миллисекунд), только для того чтоб считать uid, можно изготовить неограниченное количество меток с таким-же uid-ом.
И что тогда проверять?
Про СКУД писал-же, от домофона у меня на руках 4-ре метки, все девственно чисты и у всех один и тот-же uid. Зачем проверять много если можно проверить один.
У меня та же самая задача все еще актуальна , Гуру помогите пожалуйста , что там в коде добавить ? Мне не более четырех UID хотелось бы добавить пробовал всяко разно через запятую и еще одной строчкой нифига не получается помогите пожалуйста .
Не вижу никаких попыток добавить доп. метки.
Я рабочий скетч показал без моих вмешательств единственное только один uid вставлен от моей метки
Не вижу никаких попыток добавить доп. метки.
попробуйте записать нужное условие обычным человеческим яхыком, с использованием слов "если" "равно" "и" "или". Потом замените эти слова на соответвующие операторы - и вы получите почти готовый код.
попробуйте записать нужное условие обычным человеческим яхыком, с использованием слов "если" "равно" "и" "или". Потом замените эти слова на соответвующие операторы - и вы получите почти готовый код.
Помогите пожалуйста если знаете как
а это разве не помощь:
попробуйте записать нужное условие обычным человеческим яхыком
или вы и обычным языком тоже не владаеете?
Обычным человеческим языком ? А ардуино поймёт ? Ардуино , хочу что бы ты зажигал зеленый светодиод если RC522 увидит только метку с таким uid или с таким , а на другие uid которых я тебе не указал не реагируй никак . Так писать и куда это вставлять в коде ?
Вы всерьез считаете, что описание алгоритма следует начинать со слова "хочу"?
От Вас требуется составить на русском языке алгоритм, а не описать свои хотелки.
Собственно, у Вас выбор небольшой: либо Вы пытаетесь сделать что-то самостоятельно и при этом выполняете то, что Вам здесь советуют, либо обращаетесь в раздел"Ищу исполнителя" и там Вам за соответствующее вознаграждение сделают то, что Вам нужно. Только имейте в виду, что составление технического задания - это тоже работа, поэтому чем менее вразумительным будет описание Вами хотелок, тем дороже выйдет заказ.
Вы всерьез считаете, что описание алгоритма следует начинать со слова "хочу"?
От Вас требуется составить на русском языке алгоритм, а не описать свои хотелки.
Собственно, у Вас выбор небольшой: либо Вы пытаетесь сделать что-то самостоятельно и при этом выполняете то, что Вам здесь советуют, либо обращаетесь в раздел"Ищу исполнителя" и там Вам за соответствующее вознаграждение сделают то, что Вам нужно. Только имейте в виду, что составление технического задания - это тоже работа, поэтому чем менее вразумительным будет описание Вами хотелок, тем дороже выйдет заказ.
Задача проста думаю для специалиста
Дак ты сам хочешь разобрацца, или со специалистом?
вапще, правила хорошего тона говорят, что, по вопросам переделки кода, перво-наперво нада обращаца к его автару.
Логический оператор OR применяется к условиям, а не к значениям. Размножайте условия целиком, а не частями.
Задача проста думаю для специалиста
Дак ты сам хочешь разобрацца, или со специалистом?
Хотелось бы самому но не получается а точнее непонятно что бы понимать нужно горы информации перекопать да еще проблема что английский я на уровне твоя моя непанимать
И "горы информации" и владение техническим английским. Без этого никак.
От нас то Вы чего хотите?
PS. И еще: Вы очень небрежно пишете, пропускаете знаки препинания и пр. В программировании так нельзя, компилятор этого не прощает. Так что к тому, о чем Вы написали, нужно еще добавить: уделять намного больше внимания тому, как Вы пишете. Это навык, без которого в программировании делать нечего.
Давайте подумаем - как выглядит условие сравнения?
Пока неясно, получается или нет, т.к. никто и не пытается. Совет из #16 проигнорирован, вместо этого какие-то "||" прости Господи куда-то пихаются.
что бы понимать нужно горы информации перекопать
А то! Везде и во всём так. Или перекапывай сам, или плати тому, кто перекопал.
английский я на уровне твоя моя непанимать
А это, по нынешним временам, уже инвалидность несовместимая с комфортной жизнью.
ЛечитесьПрокачивайтесь.Пытается, просто вот так вот у него получается. Пусть сегодня будет день доброты :)
Пожалуйста. Да, верно. Это, на самом-то деле, наихудший способ сравнения, но для совсем начинающего сойдёт.
Доброго времени суток Гуру ! Снова нужна ваша помощь, еще бы одну задачу как-то реализовать и можно будет замок монтировать на дверь, код я уже подпилил слегка, тайминги (delay) настроил как мне надо и поменял последовательность срабатывания пинов 6, 5, 3, и третий пин реле это я добавил, в общем задача такая что бы при срабатывании "Serial.println("Authorized access");" пины реле при каждой сработке менялись как бы местами , другими словами подносим метку к RC522 срабатывает RELAY_on 3 подносим второй раз срабатывает RELAY 5 и так по кругу , как это реализовать ? Может от куда нибудь готовый кусок кода взять адаптировать в этот скетч
да, ничО не меняется в этом 2020 году, положи палец в рот...
да, ничО не меняется в этом 2020 году, положи палец в рот...
Снова нужна ваша помощь
Вроде, тебе в прошлый раз предлагали чему-нибудь научиться. Ты послал это предложение "на" и предпочёл дождаться халявы от negavoid. Не послал бы - этого поста бы уже не было.
А так ... ну, чё, у нас же тут известный филиал конгрегации Матери Терезы Калькуттской. Не negavoid, так ещё кто (чьё там дежурство?) подаст убогому Христа ради, наверняка. "Просите и дано будет вам".
Для всех делателей RFID-замков (и для себя на память): вот здесь лежит библиотека, у которой среди примеров ее работы есть AccessControl. В ней реализована целая система доступа: одна считанная карта назначается "мастер-ключом". При поднесении мастер-ключа - следующая поднесенная карта добавляется в список "известных карт". При повторном поднесении - исключаются из списка. При выходе из режима программирования - известные карты открывают замок.
Ну а чтоб открывать замки на разных пинах я бы сделал так: создал бы массив пинов, при каждом новом открытии замка брал бы из массива номер пина (начиная с нулевого элемента массива), соответствующий текущему счетчику открытий замка, подавал на него сигнал открытия двери и увеличивал бы счетчик открытий на единицу. Если счетчик открытий достиг предела (количества элементов в массиве - 1) - его надо сбрасывать на ноль, чтобы перебирать массив сначала.
P.S.: как уже говорилось выше - замок на RFID-метках, который открывается при сравнении ID метки с известными ID-шниками очень небезопасен. Не вздумайте ставить его на дверь в квартиру. Я делал для квеста - там нормально. А для чего-то более ценного - не стоит делать.
Для всех делателей RFID-замков (и для себя на память): вот здесь лежит библиотека, у которой среди примеров ее работы есть AccessControl. В ней реализована целая система доступа: одна считанная карта назначается "мастер-ключом". При поднесении мастер-ключа - следующая поднесенная карта добавляется в список "известных карт". При повторном поднесении - исключаются из списка. При выходе из режима программирования - известные карты открывают замок.
Ну а чтоб открывать замки на разных пинах я бы сделал так: создал бы массив пинов, при каждом новом открытии замка брал бы из массива номер пина (начиная с нулевого элемента массива), соответствующий текущему счетчику открытий замка, подавал на него сигнал открытия двери и увеличивал бы счетчик открытий на единицу. Если счетчик открытий достиг предела (количества элементов в массиве - 1) - его надо сбрасывать на ноль, чтобы перебирать массив сначала.
P.S.: как уже говорилось выше - замок на RFID-метках, который открывается при сравнении ID метки с известными ID-шниками очень небезопасен. Не вздумайте ставить его на дверь в квартиру. Я делал для квеста - там нормально. А для чего-то более ценного - не стоит делать.
Я нашол код для кнопки явно его можно тут использовать, только я совсем не знаю как его в свой скетч вставить
Пробуй, учись - и у тебя всё получится. Код ведь нашёл - а это уже половина дела. Теперь разбирайся, вставляй - мы в тебя верим. Главное - вставить в правильную дырочку, хотя - и в неправильную тоже норм, главное - смазки побольше.
Концепция поменялась , решил добавить кнопку и концевик , будет использоваться два реле, одно реле на закрытие замка, второе на открытие .
будет использоваться
Ну, пишите. Напишете - будет, не напишете - не будет.
Код стал таким
Теперь еще нужно кнопку и концевик ( pinMode(wipeA, INPUT_PULLUP); pinMode(wipeB, INPUT_PULLUP); добавить в "void loop()" да ?
Теперь еще нужно кнопку и концевик ( pinMode(wipeA, INPUT_PULLUP); pinMode(wipeB, INPUT_PULLUP); добавить в "void loop()" да ?
Нет.
В Гугле забанили чтоли? Разве трудно посмотреть что делает pinMode()? И вообще лучше начать с мигания светодиодами, а там, глядишь, и до всего остального дорастете.
Теперь еще нужно ...
Блин! Ну, объяснили ж тебе всё! Нафига вот?! Я вчерась с Петровичем поспорил, что ты теперь хоть с недельку халявы клянчить не будешь. Повёл бы ты себя как человек, я б в следующую пятницу ром коллекционный пробовал, а так ... грёбанную прошивку для его метеостанции писать придётся :-(
Я вчерась с Петровичем поспорил, что ты теперь хоть с недельку халявы клянчить не будешь. Повёл бы ты себя как человек, я б в следующую пятницу ром коллекционный пробовал, а так ... грёбанную прошивку для его метеостанции писать придётся :-(
Дак может Agritreid это и есть Петрович. А что - нормальная схема: регаешь новый аккаунт, просишь какую-нибудь херню примитивную. Кто-то сжалится и напишет решение. Затем споришь, что просьбы прекратятся - и вуаля - прошивка для метеостанции нахаляву готова.
Дак может Agritreid это и есть Петрович.
Не, я бы в #43 в строке №23 использовал бы 115200.
А за идею спасибо. Может, воспользуюсь :-)
Не, я бы в #43 в строке №23 использовал бы 115200.
Вы 57600 используете, не вводите общественность в заблуждение...
Вы 57600 используете, не вводите общественность в заблуждение...
Я использую 57600 для протеуса - он больше не понимает и 115200 для железа.
Не, я бы в #43 в строке №23 использовал бы 115200.