Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp37 [2020/05/22 17:58] – labuser29 | products:laboratory_iot:exp37 [2024/11/23 16:33] (текущий) – labuser30 | ||
|---|---|---|---|
| Строка 10: | Строка 10: | ||
| В комплект нашего конструктора (в версии MAXI) входит RFID считыватель и две метки — одна в формате карты, вторая в виде брелока. | В комплект нашего конструктора (в версии MAXI) входит RFID считыватель и две метки — одна в формате карты, вторая в виде брелока. | ||
| + | |||
| + | Проведем эксперимент с RFID. Для работы с модулем приемника нам потребуется специальная библиотека. Ее нужно скачать и записать в память микроконтроллера, | ||
| + | |||
| + | <WRAP center round download 60%> | ||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | В этом архиве находятся два файла mfrc522.py и mfrc522.mpy. Это одна и та же библиотека, | ||
| + | |||
| + | Дело в том, что мы пишем программу на понятном человеку языке, в котором есть понятные по названию переменные, | ||
| + | файл '' | ||
| + | |||
| + | ==== Схема эксперимента ==== | ||
| + | |||
| + | {{ : | ||
| + | // | ||
| + | |||
| + | ==== Программный код эксперимента ==== | ||
| + | <file python Exp37.py[enable_line_numbers=" | ||
| + | import mfrc522 | ||
| + | _init() | ||
| + | |||
| + | rdr = mfrc522.MFRC522(0, | ||
| + | |||
| + | while True: | ||
| + | (stat, tag_type) = rdr.request(rdr.REQIDL) | ||
| + | |||
| + | if stat == rdr.OK: | ||
| + | (stat, raw_uid) = rdr.anticoll() | ||
| + | |||
| + | if stat == rdr.OK: | ||
| + | card_number = ' | ||
| + | print(" | ||
| + | </ | ||
| + | |||
| + | Подключаем библиотеку для работы со считывателем RFID меток | ||
| + | <code python[enable_line_numbers=" | ||
| + | import mfrc522 | ||
| + | </ | ||
| + | |||
| + | Создаем объект считывателя, | ||
| + | <code python[enable_line_numbers=" | ||
| + | rdr = mfrc522.MFRC522(0, | ||
| + | </ | ||
| + | |||
| + | В основном цикле запрашиваем данные о состоянии считывателя | ||
| + | <code python[enable_line_numbers=" | ||
| + | (stat, tag_type) = rdr.request(rdr.REQIDL) | ||
| + | </ | ||
| + | |||
| + | Если обнаружена метка, то запрашиваем номер метки | ||
| + | <code python[enable_line_numbers=" | ||
| + | (stat, raw_uid) = rdr.anticoll() | ||
| + | </ | ||
| + | |||
| + | Формируем строку с номером карты для отображения пользователю | ||
| + | <code python[enable_line_numbers=" | ||
| + | card_number = ' | ||
| + | </ | ||
| + | |||
| + | Метод '' | ||
| + | |||
| + | <code python[enable_line_numbers=" | ||
| + | print(" | ||
| + | </ | ||
| + | |||
| + | Оператор '' | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | [[https:// | ||
| + | </ | ||
| + | |||