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的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas