当前位置: 首页 > news >正文

通过ESP32开发板,实现NFC卡片控制继电器通断,从而实现多种物联网中设备的通电

通过ESP32开发板,实现NFC卡片控制继电器通断,从而实现多种设备的通电,从而可以开发出智能的物联网、家电等多种设备

ESP32与RFID-RC522的接线方法

RC522 引脚ESP32 引脚(示例)说明
SDA/CSGPIO5SPI 片选(CS)
SCKGPIO18SPI 时钟(SCK)
MOSIGPIO23主出从入(Master Out)
MISOGPIO19主入从出(Master In)
RSTGPIO22模块复位信号
3.3V3.3V必须使用 3.3V 供电(5V 会烧毁)
GNDGND接地

注意:RFID-RC522模块只能链接ESP32开发板上的3.3V供电,不能选择5v的,很容易烧坏RFID-RC522板子

ESP32与继电器的接线方式,就很简单了。

下面是代码部分—mfrc522.py的代码:

from machine import Pin, SPI
from os import uname

emptyRecv = b""

class MFRC522:

    GAIN_REG = 0x26
    MAX_GAIN = 0x07

    OK = 0
    NOTAGERR = 1
    ERR = 2

    REQIDL = 0x26
    REQALL = 0x52
    AUTHENT1A = 0x60
    AUTHENT1B = 0x61

    def __init__(self, spi=None, gpioRst=None, gpioCs=None):

        if gpioRst is not None:
            self.rst = Pin(gpioRst, Pin.OUT)
        else:
            self.rst = None
        assert(gpioCs is not None, "Needs gpioCs") # TODO fails without cableSelect
        if gpioCs is not None:
            self.cs = Pin(gpioCs, Pin.OUT)
        else:
            self.cs = None

        # TODO CH rationalise which of these are referenced, which can be identical
        self.regBuf = bytearray(4)
        self.blockWriteBuf = bytearray(18)
        self.authBuf = bytearray(12)
        self.wregBuf = bytearray(2)
        self.rregBuf = bytearray(1)
        self.recvBuf = bytearray(16)
        self.recvMv = memoryview(self.recvBuf)

        if self.rst is not None:
            self.rst.value(0)
        if self.cs is not None:
            self.cs.value(1)

        if spi is not None:
            self.spi = spi
        else:
            sck = Pin(14, Pin.OUT)
            mosi = Pin(13, Pin.OUT)
            miso = Pin(12, Pin.IN)
            if uname()[0] == 'WiPy':
                self.spi = SPI(0)
                self.spi.init(SPI.MASTER, baudrate=1000000, pins=(sck, mosi, miso))
            elif uname()[0] == 'esp8266': # TODO update to match https://github.com/

相关文章:

  • 基于STM32物联网智能鱼缸智能家居系统
  • Java线上CPU飙高问题排查全指南
  • 如何在服务器上部署 Python Django 应用
  • 接地气的方式认识JVM(二)
  • Linux边缘智能:物联网的终极进化
  • 【最新案例】智能物料称重柜/生鲜称重售卖柜系统, 共享自助管理系统, 物联网应用定制开发
  • 职坐标物联网全栈开发全流程解析
  • VR 技术赋能南锣鼓巷的多元发展潜力与前景​
  • Python ROS2【机器人中间件框架】 简介
  • 【HTML-16】深入理解HTML中的块元素与行内元素
  • 基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
  • 基于 Spring Boot 策略模式的短信服务提供商动态切换实现
  • delphi安装SAP控件:SAPFunctionsSAPLogonControl
  • Fail2ban开源入侵检测,保护SSH,NGINX等
  • 基于Python的气象数据分析及可视化研究
  • Java性能测试工具列举
  • 【PostgreSQL系列】PostgreSQL连接参数
  • 雷达RCS计算中的旋转矩阵
  • 【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
  • SpringBoot API接口签名(防篡改)
  • 旅游网站静态模版下载/百度推广登录后台
  • 青岛哪家做网站的公司好/电商运营培训学费多少
  • 成都网站建设方案/申请自己的网站
  • 挂号网站建设/西安seo优化公司
  • 网站模板前台后台/湖北seo推广
  • 东莞网站建设案例/建站推广