基于纳芯微NSHT30和NSPAS3芯片设计的多端无线环境检测桌搭
该项目使用了KiCad软件、Platformio平台、C/C++语言,实现了一个多端无线环境检测桌面摆件的设计,它的主要功能为:检测环境温湿度、大气压并显示在小屏幕上,并可通过无线功能实时检测其他需要环境监测的区域。
标签
嵌入式系统
小小洋洋
更新2024-12-26
43
前提说明(2024年12月15日):
1. 气压数值修正:在视频和图片中,大气压强曾显示为约10.25 kPa,这是由于程序换算错误导致的。实际数值应为102.5 kPa。相关错误已在附件中修正,请放心使用修正后的版本。
2. PCB错误修正:原设计中存在5V电路未正常连接的问题,现已修正原理图和PCB设计。修正后的版本已经更新,请放心使用。


一、项目介绍

  1. 传感器:采用纳芯微NSHT30温湿度传感器和纳芯微NSPAS3压力传感器,能够实现环境温湿度及大气压强的精准检测。
  2. 主控:基于RP2040主控的“带屏12指神探”系统,配备显示屏、按键、拨轮及扩展引脚,具备高效控制与多功能交互能力。
  3. 无线功能:采用CH582F芯片,支持2.4GHz无线通信,实现稳定的无线数据传输。
  4. 整体功能:本项目实现了本地端与远程端的多端无线环境监测与数据展示功能,用户可通过按键和拨轮切换显示区域与模式,便于快速查看所需信息。

b579082522347ecc16af562b675d553.jpg5acfa06be1aa5e3fca8c29349700bea.jpg2f2e0405d2f4e4fed18ec348aaa0114.jpg

图1:项目实物展示(a. 远程端数据实时显示;b. 本地端波形动态显示;c. 扩展板背面设计与布局


二、项目设计思路

  1. 基础功能:带屏12指神探通过多个引脚进行数据采集,其中IIC引脚用于读取NSHT30传感器的温湿度数据,ADC引脚用于读取NSPAS3传感器的大气压数据,并将环境检测数据实时显示在屏幕上。
  2. 无线功能:利用CH582F芯片的2.4GHz RF通信功能,远程端可读取传感器数据后,通过无线方式发送至直连扩展板。直连扩展板中的CH582F作为IIC从机,与带屏12指神探进行数据交换。
  3. 显示切换:带屏12指神探配备的按键和拨轮可用于切换显示区域和模式。显示区域可在本地端和远程端之间切换,显示模式包括清晰的数字显示模式和包含更多信息的波形显示模式,满足不同用户需求。

image.png

图2:功能设计示意图


三、环境搭建

  1. KiCad:用于绘制原理图和电路图,帮助设计和验证硬件电路。
  2. VSCode + PlatformIO:针对RP2040主控的开发环境,使用PlatformIO平台编写和编译C++代码,实现软件开发和调试。
  3. MousRiver:用于CH582F芯片的软件开发,提供C++代码编写和编译功能,支持开发过程中对芯片的配置和管理。
  4. WCHISPStudio:用于CH582F的固件烧录,作为烧录工具确保固件能够正确上传到芯片中。


四、电路设计和遇到的问题

(一)带屏12指神探

  1. 带屏12指神探:带屏12指神探具有多个引脚,可用于扩展外部传感器。相关资料可在电子森林平台上获取。其管脚定义如下:我们将使用IIC引脚以及两个ADC引脚进行环境数据采集和传输。

图3. 带屏12指神探引脚说明

(二)扩展板

  1. 扩展板设计:扩展板包括温湿度模块和气压模块,采用CH582F最小系统和蓝牙天线实现无线通信。本地端和远程端的PCB设计相同,区别在于烧录不同的程序,以实现各自的功能。如果不需要远程端功能,只需焊接两个传感器模块即可。
  2. 原理图如下:原理图主要包含USB接口、NSHT30传感器电路、NSPAS3传感器电路、管脚连接及CH582F电路。

image.png

图4. 扩展板原理图

  1. PCB 3D图如下:更新后的PCB设计图如下:
  • 正面:仅包含NSPAS3传感器电路。
  • 背面:包含NSHT30传感器电路和CH582F电路。
  • 设计特点:采用双层板设计,板厚为1.2mm。天线走线已针对1.2mm板厚进行了阻抗匹配,确保信号传输良好。

image.png

image.png

图4. 扩展板PCB仿真图

(三)遇到的问题

  1. 第一版PCB问题:第一版PCB存在一些小问题,其中5V电压未正确连接,已通过飞线进行了临时处理。现在,原理图和PCB中的相关错误已得到修正,确保了电路的正常运行。
  2. NSPAS3压力传感器注意事项:NSPAS3压力传感器的输出电压不仅与大气压强相关,还与输入电压密切相关。因此,在电路设计中,需要采用两个ADC分别测量输入电压和输出电压,通过计算两者的比值来准确换算出大气压强。


五、软件设计

(一)RP2040开发

  1. 屏幕驱动:根据原理图,使用PIO平台和Arduino库中的TFT_eSPI库实现屏幕驱动功能,确保屏幕显示的流畅性和稳定性。
  2. 传感器读取:通过IIC与NSHT30温湿度传感器和CH582F进行通信,并通过两个ADC引脚读取NSPAS3压力传感器的数据,确保准确采集传感器信息。
  3. 数值与波形展示:基于屏幕绘制函数,构建多种展示界面,包括数值显示和波形图展示,以满足不同用户需求。

(二)无线开发(CH582F)

  1. 通信功能开发:基于2.4GHz RF通信,快速搭建无线网络并实现数据发送。远程端作为数据发送方,本地端作为数据接收方。
  2. 远程端:CH582F周期性读取温湿度和大气压数据,通过RF通信将数据无线发送给本地端。在此过程中,远程端会周期性休眠以减少功耗,延长电池寿命。
  3. 本地端:本地端的CH582F与RP2040通过IIC连接,并作为从机接收数据。接收到的数据会存储在内存中,当RP2040通过IIC访问时,本地端将数据返回给RP2040进行显示或进一步处理。

(三)运行流程框图

image.png

图6. 运行流程框图


六、功能展示

  1. 本地端传感器数据读取

17fd736a7b2bd46b764074b9828c734.jpg

  1. 远程端传感器数据读取

b579082522347ecc16af562b675d553.jpg

  1. 波形显示模式

5acfa06be1aa5e3fca8c29349700bea.jpg

94b3a7a6608dc4229140aef1e4eec77.jpg

d8c12cb788afb9a264b89e4cd0fe405.jpg

七、总结

  1. 本项目的初衷是设计一个简单的桌面小摆件,能够实时检测环境的温湿度和大气压数据。考虑到远端传感器数据读取的需求,项目进一步加入了无线功能,从而实现了其他房间、保温箱、机箱等环境的检测,扩展了应用的可能性。
  2. 本项目硬件设计简洁,本地端和远端的PCB相同,只需根据需求焊接不同的传感器模块,并烧录不同的固件即可实现多种功能。
  3. 本项目具有较好的扩展性,可以根据需求增加更多远端设备,实现更广泛区域的温湿度检测。


八、补充说明

  1. 开源声明
    本项目的软硬件全部开源,相关代码和设计文件已上传至附件中,您可以自由下载、修改和使用。
  2. 气压数值修正
    在视频和图片中,大气压强显示为10.25kPa左右,这是由于程序换算错误导致的,实际值应为102.5kPa。此问题已经在附件中的程序中得到修正,您可以放心使用更新后的版本。
  3. PCB修正
    原版PCB存在5V电路未正常连接的错误,已经通过修正原理图和PCB设计解决。修正后的设计可以正常使用,您可以根据最新的设计文件进行操作。


物料清单
KiCad文件
使用说明
全屏
附件下载
Kicad工程.zip
Kicad工程,包含原理图、PCB和所需的元件库
下位机工程.zip
下位机工程,包含RP2040工程、本地端CH582F和远程端CH582F工程
团队介绍
个人项目
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号