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

告别DHT11!用3.5元的AHT10和STC8单片机,做个更小巧的桌面温湿度计(附完整源码)

3.5元AHT10温湿度传感器实战用STC8打造迷你桌面环境监测仪在智能家居和创客项目中温湿度传感器一直是基础但关键的组件。传统DHT11虽然价格低廉但其较大的体积和相对落后的性能指标越来越难以满足现代小型化设备的需求。今天我们要介绍的AHT10传感器不仅价格低至3.5元体积更是缩小了60%精度却提升了一个数量级。1. 为什么选择AHT10替代DHT111.1 参数对比小身材大能量让我们先看一组关键数据对比参数DHT11AHT10提升幅度温度精度±2℃±0.3℃566%湿度精度±5%RH±2%RH150%响应时间2秒8秒-75%工作电压3-5.5V2.2-5.5V-尺寸(mm)15.5×12×5.53×3×1.0体积减少85%接口类型单总线I2C-典型价格4元3.5元12.5%从表格可以看出AHT10在几乎所有关键指标上都碾压DHT11特别是体积和精度这两个对现代电子设备至关重要的参数。唯一的不足是响应时间稍长但对于大多数环境监测应用来说8秒的间隔完全在可接受范围内。1.2 实际应用场景优势AHT10的微型化设计带来了几个实际优势PCB布局更灵活3mm×3mm的尺寸可以轻松塞入任何角落低功耗设计2.2V的最低工作电压更适合电池供电设备数字接口I2C总线节省GPIO资源简化布线表面贴装可直接焊接在PCB上无需额外的连接器注意AHT10的I2C地址固定为0x38无法修改这意味着在同一I2C总线上不能挂载其他设备。这是选择AHT10时需要特别注意的设计约束。2. 硬件设计与连接2.1 元器件清单制作这个迷你温湿度计需要以下材料STC8A8K64S4A12单片机或其他STC8系列AHT10温湿度传感器模块0.96寸OLED显示屏I2C接口10kΩ电阻×2I2C上拉100nF电容×2电源滤波微型按键×1功能切换3.7V锂电池可选充电管理模块可选总成本可以控制在20元以内如果使用开发板而非最小系统成本会略高但开发更方便。2.2 电路连接示意图// 硬件连接示意代码 #define I2C_SCL P1_5 // STC8的I2C时钟线 #define I2C_SDA P1_4 // STC8的I2C数据线 // AHT10连接方式 // VCC - 3.3V // GND - GND // SCL - P1.5 (需接10k上拉电阻) // SDA - P1.4 (需接10k上拉电阻) // OLED连接方式 // 由于AHT10独占I2C总线OLED需要连接到另一组I2C接口 // 或者使用软件I2C模拟对于STC8单片机如果硬件I2C被AHT10占用我们可以用任意两个GPIO口模拟I2C驱动OLED。这种方案虽然会占用更多CPU资源但解决了总线冲突问题。3. 软件实现与驱动开发3.1 AHT10驱动移植AHT10的驱动相对简单主要需要实现以下几个功能传感器初始化触发测量读取数据数据转换以下是核心驱动代码片段// AHT10初始化 void AHT10_Init() { I2C_Start(); I2C_SendByte(0x38 1); // 器件地址写 I2C_SendByte(0xE1); // 初始化命令 I2C_SendByte(0x08); // 校准使能 I2C_SendByte(0x00); // 保留 I2C_Stop(); Delay_ms(300); // 等待校准完成 } // 读取温湿度数据 void AHT10_Read(float *temp, float *humi) { uint8_t buf[6]; // 触发测量 I2C_Start(); I2C_SendByte(0x38 1); I2C_SendByte(0xAC); I2C_SendByte(0x33); I2C_SendByte(0x00); I2C_Stop(); // 等待测量完成 Delay_ms(80); // 读取数据 I2C_Start(); I2C_SendByte((0x38 1) | 1); for(int i0; i5; i) buf[i] I2C_RecvByte(); I2C_Stop(); // 数据转换 uint32_t humi_raw ((uint32_t)buf[1] 12) | ((uint32_t)buf[2] 4) | (buf[3] 4); uint32_t temp_raw (((uint32_t)buf[3] 0x0F) 16) | ((uint32_t)buf[4] 8) | buf[5]; *humi (float)humi_raw * 100 / 0x100000; *temp (float)temp_raw * 200 / 0x100000 - 50; }3.2 数据平滑处理由于环境温湿度通常不会突变我们可以对采样数据进行平滑处理使显示更加稳定#define SAMPLE_SIZE 5 float temp_history[SAMPLE_SIZE]; float humi_history[SAMPLE_SIZE]; uint8_t sample_index 0; void Smooth_Data(float temp, float humi) { temp_history[sample_index] temp; humi_history[sample_index] humi; sample_index (sample_index 1) % SAMPLE_SIZE; float temp_sum 0, humi_sum 0; for(int i0; iSAMPLE_SIZE; i) { temp_sum temp_history[i]; humi_sum humi_history[i]; } current_temp temp_sum / SAMPLE_SIZE; current_humi humi_sum / SAMPLE_SIZE; }4. 系统优化与功能扩展4.1 低功耗设计如果使用电池供电我们可以通过以下方式优化功耗调整采样频率将默认的1秒采样改为30秒或更长睡眠模式在采样间隔让MCU进入空闲或掉电模式显示控制添加光感或运动传感器无人时关闭显示电压监测检测电池电压低电量时提醒充电4.2 外壳设计与安装考虑到AHT10的超小尺寸我们可以设计非常迷你的外壳3D打印方案设计一个硬币大小的圆形外壳现成改造利用小型药盒或纽扣电池盒磁吸安装在外壳背面添加磁铁方便吸附在金属表面桌面支架用曲别针或乐高积木制作简易支架4.3 数据记录与上传通过简单的功能扩展可以实现更多实用功能// 伪代码示例数据记录功能 void Data_Logger() { static uint32_t record_time 0; if(Get_Tick() - record_time 3600000) { // 每小时记录一次 Save_To_SD(current_temp, current_humi); record_time Get_Tick(); } }如果需要联网功能可以搭配ESP-01S WiFi模块将数据上传到物联网平台或私人服务器。

相关文章:

告别DHT11!用3.5元的AHT10和STC8单片机,做个更小巧的桌面温湿度计(附完整源码)

3.5元AHT10温湿度传感器实战:用STC8打造迷你桌面环境监测仪 在智能家居和创客项目中,温湿度传感器一直是基础但关键的组件。传统DHT11虽然价格低廉,但其较大的体积和相对落后的性能指标,越来越难以满足现代小型化设备的需求。今天…...

淘宝商品搜索爬虫实战:突破反爬与Ajax数据抓取完全指南

目录 前言 一、技术挑战与可行性分析 1.1 淘宝搜索页面的技术特点 1.2 哪些场景下爬虫是“合法”的? 二、环境搭建与核心库选型 2.1 Python版本与虚拟环境 2.2 核心依赖库及作用 2.3 浏览器驱动配置 三、淘宝搜索Ajax接口逆向分析 3.1 寻找真实的数据接口 3.2 参数…...

S参数去嵌与DK/DF拟合:从实测数据反演PCB板材真实性能

1. 项目概述:从S参数中“挖”出板材的真实性能在高速PCB设计里,我们经常听到两个关键的板材参数:介电常数(DK, Dk)和损耗角正切(DF, Df)。供应商手册上会给出一个标称值&…...

烽火HG680-LC刷机后体验:当贝纯净桌面+讯飞语音,老盒子秒变流畅电视盒的折腾记录

烽火HG680-LC刷机重生记:当贝桌面与讯飞语音的极致体验 去年双十一囤的旧电视盒在角落吃灰大半年后,终于迎来了它的高光时刻。这台搭载S905L3芯片的烽火HG680-LC,原厂系统卡顿得连打开设置都要等上十秒,广告弹窗更是让人崩溃。经过…...

【大模型数学能力红黑榜】:DeepSeek-R1在GSM8K上实现89.6%→93.8%跃迁的关键训练秘钥

更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1在GSM8K数学基准上的性能跃迁全景 基准测试背景与指标演进 GSM8K(Grade School Math 8K)作为衡量模型多步推理能力的关键数学基准,包含8,500道人工校验的…...

DevDocs:基于Crawl4AI与MCP协议的智能文档爬取与知识库构建实战

1. 项目概述:DevDocs,你的智能文档研究加速器如果你是一名开发者,无论是企业级软件工程师、独立开发者还是技术团队的负责人,我相信你都经历过“文档地狱”。面对一个全新的技术栈,你需要花上几天甚至几周的时间&#…...

从“救火”到“防火”:用Arthas火焰图(profiler)给你的Spring Boot应用做一次性能体检

从“救火”到“防火”:用Arthas火焰图给你的Spring Boot应用做一次性能体检 在快节奏的互联网开发中,性能问题往往像一场突如其来的火灾,让开发者疲于奔命。传统的“救火式”排查——等到用户投诉后再手忙脚乱地查日志、加监控——已经无法满…...

AI代码助手如何实现风格化编程:Inkwell-vibe-coding项目解析

1. 项目概述:当AI代码助手遇上“氛围感” 最近在GitHub上闲逛,发现一个挺有意思的项目叫 Inkwell-vibe-coding 。初看这个名字,你可能会有点摸不着头脑——“Inkwell”是墨水瓶,“vibe”是氛围,“coding”是编码&…...

别再只盯着YOLO了!用DeepSORT+SORT搞定视频多目标跟踪,保姆级代码解读与避坑指南

从零构建视频多目标跟踪系统:DeepSORT与SORT核心代码拆解与工业级优化策略 当监控摄像头中的人群如潮水般流动,当自动驾驶系统需要实时追踪数十个移动物体,多目标跟踪(MOT)技术便成为计算机视觉领域最具挑战性的任务之…...

JS如何获取元素高度

在前端开发中,获取元素高度是最基础也是最常用的操作之一。本文将详细介绍 原生JavaScript 和 jQuery 中获取元素高度的各种方法,帮你彻底搞懂它们的区别! 📖 目录 原生JavaScript获取高度jQuery获取高度各方法对比实际应用场景常…...

基于Roslyn为AI智能体生成C#代码地图:原理、实现与优化

1. 项目概述:为AI智能体绘制C#代码地图在AI智能体(Agent)技术日益成熟的今天,如何让这些“数字大脑”高效、准确地理解和操作复杂的代码库,成为了一个极具挑战性的工程问题。想象一下,你有一个精通C#的AI助…...

别再死记硬背DQN了!用游戏开发者的视角,图解Replay Buffer、LSTM等6大改进的实战意义

游戏开发者视角:图解DQN六大改进的实战意义 在游戏AI开发中,强化学习正逐渐成为构建智能对手和NPC的核心工具。但传统DQN算法在实际应用中常常遇到各种瓶颈——智能体学习效率低下、在复杂环境中表现不稳定、难以处理部分可观测状态等问题。这些问题恰恰…...

MATLAB Robotics Toolbox避坑实战:用Kinova Gen3机械臂手把手教你搞定碰撞检测

MATLAB Robotics Toolbox避坑实战:用Kinova Gen3机械臂手把手教你搞定碰撞检测 在机器人仿真领域,碰撞检测是确保机械臂安全运行的核心技术。许多初学者在使用MATLAB Robotics System Toolbox时,往往会在环境建模、参数设置和结果解析等环节…...

Armv8-A架构ID_ISAR寄存器详解与应用优化

1. Armv8-A架构ID_ISAR寄存器概述在Armv8-A架构中,ID_ISAR(Instruction Set Attribute Register)系列寄存器是理解处理器指令集特性的关键窗口。作为一位长期从事Arm架构开发的工程师,我发现这些寄存器在实际开发中经常被低估&…...

如何用ExifToolGUI批量管理照片元数据:告别命令行复杂操作

如何用ExifToolGUI批量管理照片元数据:告别命令行复杂操作 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为几百张旅行照片的拍摄时间错误而烦恼?或者需要为大量图片批量添…...

投稿前一定要预审

作为一个拿过2项国自然青年基金、带过3届硕博生的高校青椒,今天给大家聊点掏心窝子的稿件打磨经验,都是我踩了无数坑、熬了无数夜攒出来的干货,不管你是要申基金、写毕业论文还是报专利,都能用得上。首先先给大家列3个科研人最容易…...

抖音无水印批量下载终极指南:3分钟学会免费下载视频、音乐和直播

抖音无水印批量下载终极指南:3分钟学会免费下载视频、音乐和直播 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...

Pytorch图像去噪实战(八十二):Redis分布式限流实战,防止单用户高频调用拖垮服务

Pytorch图像去噪实战(八十二):Redis分布式限流实战,防止单用户高频调用拖垮服务 一、问题场景:一个用户疯狂调用接口,把所有人都拖慢了 前面我们做了用户配额系统,限制每日调用量。 但每日额度不能解决所有问题。 比如某个用户一天有 1000 次额度,但他在 1 分钟内全…...

Infineon DPS310压力传感器评估与开发实践

1. Infineon DPS310压力传感器评估环境解析在当今快速发展的消费电子领域,高精度压力传感器已成为无人机、可穿戴设备和室内外导航等应用的核心组件。作为行业领先的解决方案,Infineon DPS310凭借其出色的性能和完整的评估环境,为工程师提供了…...

ROS新手避坑指南:除了改hosts,rosdep update超时还有哪些‘冷门’但好用的招?

ROS新手避坑指南:rosdep update超时的全方位解决方案 1. 理解rosdep update的核心机制 rosdep作为ROS生态中的依赖管理工具,其update操作的本质是从GitHub仓库获取最新的软件包依赖关系映射。这个过程涉及三个关键环节: 元数据获取&#xff1…...

SQL库存管理系统核心设计:数据模型、事务控制与性能优化实战

1. 项目概述:一个基于SQL的库存管理系统的核心价值最近在GitHub上看到一个名为“inventory-management-system-sql”的项目,作者是sakibtheseeker。这个标题本身就像一把钥匙,直接指向了企业运营中一个永恒的核心痛点:如何高效、准…...

AgentNova智能体开发框架:从任务编排到工程实践全解析

1. 项目概述:AgentNova是什么,以及它为何值得关注最近在开源社区里,一个名为AgentNova的项目(由 VTSTech 团队维护)引起了我的注意。如果你和我一样,长期关注 AI 智能体(AI Agent)领…...

【AI面试临阵磨枪-57】如何防止 Prompt 注入、越狱、敏感信息泄露

一、 面试题目随着 Agent 接入业务系统,Prompt 注入(Injection)、越狱(Jailbreak)和敏感信息泄露(PII Leakage) 成为核心威胁。你如何从工程架构角度设计一套完整的安全防御体系?二、…...

开源虾类养殖监控系统:ESP32与MQTT物联网技术实践

1. 项目概述:一个开源虾类养殖监控系统的诞生最近在捣鼓一个挺有意思的项目,叫“openshrimp”。这名字一看就挺直白,开源(open)加上虾(shrimp),基本就点明了核心:一个开源…...

告别Hive慢查询:用Impala在CDH集群上实现秒级数据分析(实战避坑)

告别Hive慢查询:用Impala在CDH集群上实现秒级数据分析(实战避坑) 当你的Hive查询从30分钟降到3秒,数据工程师的幸福感会直接拉满。这不是理论上的性能优化,而是我们团队在CDH生产环境迁移Hive到Impala后的真实体验。如…...

书匠策AI(http://www.shujiangce.com)居然藏了个“期刊论文外挂“?

大家好,我是你们的论文写作搭子。 今天不聊选题有多头疼,也不扯文献有多难找,咱来聊点"偷塔"级别的操作——书匠策AI( 官网直达:www.shujiangce.com,微信公众号搜"书匠策AI"就能找到&…...

kill-doc:一键下载30+文档平台的终极解决方案,告别繁琐登录验证!

kill-doc:一键下载30文档平台的终极解决方案,告别繁琐登录验证! 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载…...

SDRPi平台OpenWifi实战:内核定制与驱动编译全流程解析

1. SDRPi与OpenWifi项目初探 第一次接触SDRPi平台时,我就被它的灵活性惊艳到了。这个基于树莓派架构的软件定义无线电开发板,配合OpenWifi开源项目,能实现从物理层到MAC层的完整WiFi协议栈开发。OpenWifi项目最大的特点是把FPGA和ARM处理器完…...

对TinyRedis中主从复制的理解

TinyRedis 中有 master 和 replica 两种角色。master 作为服务端监听端口,既可以管理普通客户端连接,也可以接收 replica 建立的复制连接。replica 本身也是一个服务端,但对于 master 来说,它会额外作为客户端主动创建 socket fd …...

避坑指南:树莓派USB摄像头识别出两个video设备怎么办?实测罗技免驱摄像头

树莓派USB摄像头双设备节点问题全解析:从原理到实战 当你兴冲冲地将罗技C310这样的免驱USB摄像头插入树莓派,准备开始你的计算机视觉项目时,却在终端输入ls /dev/video*后发现了video0和video1两个设备节点——这与大多数教程中描述的单一设备…...