Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID)

2023-10-13 06:10

本文主要是介绍Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Arduino版本 DFrobot mind+图形化模块自定义添加库–rc522(RFID)

一、软件准备

名称版本
Mind+最新
VS code(这个没硬性要求)最新

二、硬件准备

名称数量
Arduino uno一块
MFRC522一块
IC卡一块
杜邦线若干

三、项目开始

1、相关参考文章

DF官方参考链接:https://mindplus.dfrobot.com.cn/ext-api#target_10
DF官方学习视频参考:https://www.bilibili.com/video/BV1yE411V7zf?p=2
oled12864样例库: https://gitee.com/dfrobot/ext-oled12864.git
PS:希望读者认真看完官方的相关参考文献,在里面会介绍相关的block的定义和相关函数的用法,在这里不做过多的解释。

2、config.json文件修改

(1)demo:
在这里插入图片描述
RC522:

{"name": {"zh-cn": "rc522读卡器","en": "rc522"},"description": {"zh-cn": "rc522读卡器","en": "rc522"},"author": "litp","email": "2505145537@qq.com","license": "MIT","isBoard": false,"id": "rc522","version": "0.0.1","platform": ["win"],"asset": {"arduinoC": {"dir": "arduinoC/","version": "0.0.1","board": ["microbit","esp32","arduino"],"main": "main.ts"}}
}
3、添加相关库

这里需要注意你的主控是什么版型,这里使用arduino UNO,掌控板一般用python,ESP32一般和arduino一样,注意库的兼容性
在这里插入图片描述
在这里插入图片描述
PS:注意要放在一个文件夹里面。

3、相关引脚定义和使用

在这里插入图片描述

4、编写mian.ts

这里的相关细节请看官方的文档和相关视频,在上面有相关的链接。
arduino版RC522相关代码:


enum SIZE {//% block="29*29"1,//% block="58*58"2
}enum LINE {//% block="1"1,//% block="2"2,//% block="3"3,//% block="4"4
}enum BTN {//% block="A"A,//% block="B"B,//% block="A+B"AB
}//% color="#AA278D" iconWidth=50 iconHeight=40
namespace rc522 {//%  block="rc522init" blockType="command"export function rc522_init(parameter: any, block: any) {Generator.addInclude('rc522_initinclude', '#include<rfid1.h>');Generator.addObject(`rc522_initobject`, `RFID1`, `rfid;`);Generator.addObject(`rc522_initobject1`, `uchar`, `serNum[5];`);}//%  block="rc522setup" blockType="command" export function rc522_setup(parameter: any, block: any) {Generator.addSetup(`rfid.begin`, `rfid.begin(7, 5, 4, 3, 6, 2);`);Generator.addSetup(`delay`, `delay(100);`);Generator.addSetup(`rfid.init`, `rfid.init();`);}//%  block="rc522_readfail" blockType="command" export function rc522_readfail(parameter: any, block: any) {Generator.addCode(`
uchar status;
uchar str[MAX_LEN];
// Search card, return card types
status = rfid.request(PICC_REQIDL, str);
if (status != MI_OK){return;
}
// Show card type
rfid.showCardType(str);
//Prevent conflict, return the 4 bytes Serial number of the card
status = rfid.anticoll(str);`);
}//%  block="rc522_readsuccess" blockType="command" export function rc522_readsuccess(parameter: any, block: any) {Generator.addCode(`  
if (status == MI_OK){Serial.print("The card's number is: ");memcpy(serNum, str, 5);rfid.showCardID(serNum);//show the card IDSerial.println();Serial.println();}
delay(500);rfid.halt(); //command the card into sleep mode`);}
}
5、相关block的中文添加

在这里插入图片描述

6、第三方自定义用户库添加

在这里插入图片描述

本项目相关的代码下载链接:

四、效果展示

1、mind+ IDE图形效果

在这里插入图片描述

2、下载代码效果

在这里插入图片描述

3、测试效果

这篇关于Arduino版本 DFrobot mind+图形化模块自定义添加库--rc522(RFID)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201290

相关文章

Python AST 模块实战演示

《PythonAST模块实战演示》Python的ast模块提供了一种处理Python代码的强大工具,通过解析代码生成抽象语法树(AST),可以进行代码分析、修改和生成,接下来通过本文给大家介绍Py... 目录 什么是抽象语法树(AST)️ ast 模块的核心用法1. 解析代码生成 AST2. 查看 AST

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

Python包管理工具uv下载python版本慢问题解决办法

《Python包管理工具uv下载python版本慢问题解决办法》uv是一个非常快的Python包和项目管理器,用Rust编写,使用热缓存安装Trio的依赖项的速度对比,:本文主要介绍Python包... 目录发现问题对于 MACOS / linux 用户 (zsh/bash):对于 Windows 用户:总

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4