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

通过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/

http://www.xdnf.cn/news/13024.html

相关文章:

  • 企业数据孤立的常见表现及解决方法
  • 基于算法竞赛的c++编程(25)指针简单介绍和简单应用
  • sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
  • Q1起重机指挥理论备考要点分析
  • 内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
  • 基于物联网技术设计的设计室内宠物监护系统
  • switch语句解析
  • Python训练打卡Day45
  • 2 Studying《Android源代码情景分析(罗升阳)》
  • WebRTC调研
  • 门静脉高压——表现
  • Spring Security 认证流程——补充
  • 5G 智慧工业园区解决方案
  • 多元隐函数 偏导公式
  • 跨链模式:多链互操作架构与性能扩展方案
  • 06 Deep learning神经网络编程基础 激活函数 --吴恩达
  • 基于深度学习的图像分割技术:原理、应用与实践
  • Citation引证/Equilateral Triangle等边三角形/ 字符串旋转/F.小红的区间修改(二)
  • ip子接口配置及删除
  • USB Over IP专用硬件的5个特点
  • webpack打包vue项目
  • 【大厂机试题解法笔记】食堂供餐
  • 进程间通信详解(一):管道机制与实现原理
  • PP-OCRv5 ubuntu20.04 OCR识别服务
  • 第三章 3.1 传感器安全
  • 代码随想录刷题day30
  • Invalid context structure解决Dify框架中图像推理错误:一步步排查与修复指南
  • 相机从app启动流程
  • helm使用说明和实例
  • 数据库分批入库