SEO技术

SEO技术

Products

当前位置:首页 > SEO技术 >

如何自制一个多功能NFC小卡片?

96SEO 2026-02-19 09:05 0


自己的小项目,最初的灵感是稚晖君的CyberCard卡片,然后自己想加上一些传感器之类的东西。

如何自制一个多功能NFC小卡片?


于是做出了这么个小东西。

也算是第一次开发一个功能比较完整的项目。

其中使用到了STM32L051作为主控,外设有SPI屏幕,tp4056锂电池充电芯片,ch340串口芯片,BME680多合一传感器,NFC芯片ST25DV。


能够在屏幕上显示温度、湿度、气压、空气质量指数。

还可以把一些数据写入NFC芯片,供有NFC的手机读取。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311636-1100772886.png"

由于是用锂电池供电的,还有一定的携带和续航要求,所以要稍微考虑一下低功耗。


板子的主控用的是STM32L051,属于ST的低功耗产品线,主频最大32MHz,有串口,I2C,SPI等外设,管脚数量48pin,LQFP封装,有内置振荡器和时钟源,是一款很不错的入门级产品。


价格大概再8元左右。

在小项目中用一下很合适,烧了也不心疼。


除此之外,入门产品线还有G0系列的,如G070,也很适合这种小项目。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311551-924006405.png"

用的是中景园的TFT屏幕,SPI协议,驱动芯片ST7735,2.4寸,分辨率240X240。

屏幕素质还是不错的。

有排线版本和排针版本,理论上排线版本更美观,但是我图方便和好替换,用的是排针版本,直接插到板子上的排母上就好了。

价格大概25元左右,我就不放链接了,淘宝上一搜就有。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311617-1525332924.png"

id="bme680多合一传感器">BME680多合一传感器

博世公司出的一款能够能够监测温度、湿度、气压、空气质量的多合一传感器芯片。


可以通过SPI或者I2C与单片机进行通信,QFN封装,非常小巧。

缺点是价格略贵,淘宝50元出头。

若是为了追求降低成本,可以换成分立器件AHT10+SGP30之类的。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311643-239007799.png"

id="nfc芯片st25dv">NFC芯片ST25DV

ST公司的一款射频NFC芯片,能够模拟M1卡片,用手机就能完成对芯片的写入,还能用单片机的I2C与之进行通信,完成卡片内容的读写。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311613-1447285217.png"

这里要注意的一点是芯片的板载天线设计,PCB布局的时候要留足足够的空间用来走矩形天线来满足谐振频率的阻抗要求,并且天线的区域不能铺铜,后面会详细提到

id="tp4056锂电池充电模块">tp4056锂电池充电模块

tp4056是一款常用的单节锂电池充电芯片,充电电流可通过一个电阻来设定,最高可达1000ma。

外围电路无需MOSFET、检测电阻器或隔离二极管。

采用SOP8封装。

充电电流与编程电阻之间的关系

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311591-178232850.png"

适合需要充电状态指示,不需要电池温度监测功能的应用电路

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311590-349952630.png"

id="串口芯片ch340n">串口芯片CH340N

CH340是一款国产USB总线的转接芯片,实现USB差分信号转TTL串口。


可以加到USB的差分信号口上,这样既一根USB线既能供电又能实现串口通信。

应用电路

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311559-2013940642.png"

简介:typeC接口大势所趋,typeC支持的协议多,接口引脚多达24pin(最高支持USB3.0),有些厂家为了降低成本,减少了引脚的个数,所以有16pin(支持USB2.0协议),6pin(仅供电)的**版。

还有各手机厂家的魔改版本。

一般电子产品目前用的最多的还是16pin的。

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311594-196211728.png"

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311660-1848577268.png"

其中CC引脚是用于typeC双**电流大小的控制,若是双**供电,需要接一个5.1K下拉电阻倒地。

否则收电端会没有电。

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311586-807749399.png"

这块PCB的主要设计难点就在于PCB板载天线的问题,查阅数据手册可以知道,这个NFC芯片天线所需要的电感量是4.6uH,不能超过太多,也不能太少,否则就会导致谐振频率偏移13.56Mhz,导致手机读不出数据。

这个PCB我绘制了两板,第一版由于禁止铺铜区域只放置了顶层没有放置底层(画PCB的时候猪脑过载忘记了),所以导致铺铜的时候板载天线处铺上了底层铜,由于铜层会吸收电磁波的能量,而且第一版的天线电感量经过再次计算也只有2uH左右的水平,达不到设计标准。

到手测试后果然无法检测到芯片(╯▔皿▔)╯,第一版的NFC功能无法使用。

但是经过测试其他功能还是正常的,于是我打算保留第一版,NFC芯片再打板单独测试一下,如果可以的话再考虑出个完整版。

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311622-242333271.png"

于是我为了验证NFC芯片和天线的可行性,又画了一版,这一次我查阅了ST官方NFC天线的设计手册

NFC设计指南地址

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311618-630846480.png"

设计出了第二块验证板,这一次我就没加上其他的电路,只是为了验证NFC芯片和板载天线是否可行,左侧的是ESP32的封装和屏幕的封装,是我为了验证其他项目里一些东西设计的,画在了一块板子上。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311570-538103716.png"

发给厂家打样,这里推荐一下嘉立创,每个月右2次免费的打样机会,交期也蛮快。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311664-987290498.png"

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311638-1432101653.png"

老规矩,printf重定向到串口,循环打印提示消息"System

然后用电脑打开串口,可以看到一直有数据过来。

说明串口芯片工作正常。

将有NFC写入功能的手机靠近线圈,有嗡的一声提示音,手机默认的NFC软件被唤起,说明芯片被成功读取到。

移植一下淘宝店家的例程,主要是管脚定义的修改和初始化,以及一些delay函数的处理.

LCD_Fill(0,0,LCD_W,LCD_H,WHITE);

由于店家的驱动是用IO管脚模拟的SPI,速率可能不会太快,所以我把驱动改成了使用硬件SPI的方式,但是一测试,发现竟然比模拟的SPI还要更慢一点。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311600-778687121.png"

经过查阅资料,发现是因为HAL库在发送之前要经过很多检查动作,拖慢了速度,这些检查在屏幕驱动等行为上可以被认为是多余的,所以我们可以自己稍微精简一下SPI,能大大提高速度。

SPI_FAST_Transmit(SPI_HandleTypeDef

*hspi,

HAL_SPI_STATE_BUSY_TX;hspi->ErrorCode

HAL_SPI_ERROR_NONE;hspi->pTxBuffPtr

(uint8_t

1;SPI_1LINE_TX(hspi);__HAL_SPI_ENABLE(hspi);*((__IO

uint8_t

*)&hspi->Instance->DR)

(*hspi->pTxBuffPtr);hspi->pTxBuffPtr

sizeof(uint8_t);hspi->TxXferCount--;hspi->State

HAL_SPI_STATE_READY;

}/******************************************************************************函数说明:LCD串行数据写入函数入口数据:dat

******************************************************************************/void

LCD_Writ_Bus(u8

i;LCD_CS_Clr();for(i=0;i<8;i++)

软件模拟SPI{

LCD_SCLK_Clr();if(dat&0x80){LCD_MOSI_Set();}else{LCD_MOSI_Clr();}LCD_SCLK_Set();dat<<=1;}

LCD_CS_Set();

硬件SPI发送SPI_FAST_Transmit(&hspi1,

&dat);

按照官方教程移植就好,但是在重定向官方给的I2C驱动接口时,要注意把地址左移一位(这是由于STM32的硬件I2C地址是8位的,而一般的器件的地址线都是7位)。


这让我不禁想起了移植RDA5820驱动的时候,软件模拟I2C的多字节读取,要在非最后一个字节的时候发ACK信号,在最后一个字节的时候发NACK信号。

当年差点被这个坑了,总的来说,I2C协议还是有其麻烦之处的,虽然它支持多主多从,带来的代价就是需要上拉电阻和比较麻烦的设备地址和寄存器地址的设计。

以及一些恶劣信号环境下时序波形的劣化导致的无法正常通信。

比较麻烦的一点是,要自己写一个安卓APP,来完成对ST25DV芯片的写入,因为市面上一般的NFC软件是不支持ST芯片的,只支持普通的M1卡。

而我的安卓开发知识基本忘完了,需要一段时间重新捡起来。


不过也有例外,我找到了一款软件,能完成对ST25DV芯片的简单写入,于是我用安卓手机将网页信息写入了芯片,用另一部手机靠近,弹出了网页信息。


data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311556-476701825.png"

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311595-2109864256.png"

加上锂电池

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311547-1005849935.png"

侧视图

data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012311610-2141888083.png"

class="post-meta-container">


标签: 自制NFC小卡片

SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback