ikarus/sps-mfrc522
Composer 安装命令:
composer require ikarus/sps-mfrc522
包简介
README 文档
README
This package ships with a wrapper to access the MFRC522 module of JOY-IT.
Installation
You need to install the php-spi-extension and the php-secure-int64-extension (only when using badges with more than 4 byte UIDs).
Wiring
Usage
Read from a badge or chip:
<?php use Ikarus\MiFare\Authentication\BasicAuthentication; use Ikarus\MiFare\Joyit\MFRC522_SPI; use Ikarus\MiFare\Sector\MutableCardSector; use Ikarus\Raspberry\Pinout\Revision_3\DynamicBCMPinout; use Ikarus\Raspberry\RaspberryPiDevice; use TASoft\Bus\SPI; $dev = RaspberryPiDevice::getDevice(); $dev->requirePinout( (new DynamicBCMPinout()) ->addOutputPin(25) ); $reset = $dev->getOutputPin(25); $sensor = new MFRC522_SPI(new SPI(0, 0, 1000000), $reset); echo "Please hold a card or badge near the sensor.", PHP_EOL; $id = $sensor->readCardID(3); // Wait for 3 seconds before cancel. echo "TAG: $id", PHP_EOL; if($id) { $sector = new MutableCardSector( MutableCardSector::SECTOR_ID_02, BasicAuthentication::defaultAuthentication() // Key A: 0xFFFFFFFFFFFF ); $sensor->readCardSector($id, $sector); print_r($sector); } else echo "No tag detected.", PHP_EOL;
Write to a badge or chip:
<?php use Ikarus\MiFare\Authentication\BasicAuthentication; use Ikarus\MiFare\Joyit\MFRC522_SPI; use Ikarus\MiFare\Sector\CardSector; use Ikarus\MiFare\Sector\MutableCardSector; use Ikarus\Raspberry\Pinout\Revision_3\DynamicBCMPinout; use Ikarus\Raspberry\RaspberryPiDevice; use TASoft\Bus\SPI; $dev = RaspberryPiDevice::getDevice(); $dev->requirePinout( (new DynamicBCMPinout()) ->addOutputPin(25) ); $reset = $dev->getOutputPin(25); // Read from command line $string = readline("Please enter a text: "); $string = substr(trim($string), 0, 48); // Truncate to maximum sector size echo "TEXT ($string)", PHP_EOL; $sensor = new MFRC522_SPI(new SPI(0, 0, 1000000), $reset); echo "Please hold a card or badge near the sensor.", PHP_EOL; $id = $sensor->readCardID(3); echo "TAG: $id\n"; if($id) { $sector = new CardSector( CardSector::SECTOR_ID_02, $string, BasicAuthentication::defaultAuthentication() ); $sensor->writeCardSector($id, $sector); echo "OK, WRITTEN. VERIFY NOW ...\n"; usleep(100000); $sector = new MutableCardSector( MutableCardSector::SECTOR_ID_02, BasicAuthentication::defaultAuthentication() // Key A: 0xFFFFFFFFFFFF ); $id = $sensor->readCardID(3); $sensor->readCardSector($id, $sector); print_r($sector); } else echo "No tag detected.", PHP_EOL;
Changing the access keys and access bits:
<?php use Ikarus\MiFare\Authentication\AccessBits; use Ikarus\MiFare\Authentication\AuthenticationContainer; use Ikarus\MiFare\Authentication\BasicAuthentication; use Ikarus\MiFare\Joyit\MFRC522_SPI; use Ikarus\MiFare\Sector\CardSector; use Ikarus\Raspberry\Pinout\Revision_3\DynamicBCMPinout; use Ikarus\Raspberry\RaspberryPiDevice; use TASoft\Bus\SPI; $dev = RaspberryPiDevice::getDevice(); $dev->requirePinout( (new DynamicBCMPinout()) ->addOutputPin(25) ); $reset = $dev->getOutputPin(25); $sensor = new MFRC522_SPI(new SPI(0, 0, 1000000), $reset); echo "Please hold a card or badge near the sensor.", PHP_EOL; $id = $sensor->readCardID(3); // Wait for 3 seconds before cancel. echo "TAG: $id", PHP_EOL; if($id) { $auth = new AuthenticationContainer( [ BasicAuthentication::A([0x86,0x86,0x86,0x86,0x86,0x86]), BasicAuthentication::B([0xFF, 0x1, 0x2, 0x3, 0x4, 0x5]) ], new AccessBits([ AccessBits::C000, // Data Block 0 AccessBits::C000, // Data Block 1 AccessBits::C000, // Data Block 2 AccessBits::C001, // Trailer Block 0x0 // custom data byte ]) ); $sensor->writeAuthentication( $id, $auth, new CardSector(CardSector::SECTOR_ID_02, "", BasicAuthentication::A([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF])) ); } else echo "No tag detected.", PHP_EOL;
ikarus/sps-mfrc522 适用场景与选型建议
ikarus/sps-mfrc522 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 03 月 31 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ikarus/sps-mfrc522 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ikarus/sps-mfrc522 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 8
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-03-31
