[stm32]温湿度采集与OLED显示
一、I2C总线协议
I2C(Inter-integrated circuit )是一种允许从不同的芯片或电路与不同的主芯片通信的协议。它仅用于短距离通信,是一种用于两个或多个设备之间进行数据传输的串行总线技术,它可以让你在微处理器、传感器、存储器、控制器和外围设备之间进行快速的数据交换。I2C有两种不同的实现方式:硬件I2C和模拟I2C
I2C 定义了三种附加模式:(1)在 1 MHz:“快速模式加”。
(2)3.4 MHz:“高速模式”。
(3)5 MHz:“超快模式”。
I2C 支持多主机通信,这意味着多个主机可以连接到总线并可以相互通信以及与从机通信。它还支持时钟延展,允许从设备将时钟线保持在低电平以指示它需要更多时间来处理命令或数据。
1.软件I2C
软件I2C(Software I2C,也称为Bit-Banging I2C)是一种通过软件来模拟I2C硬件接口的通信协议。相对于硬件I2C,软件I2C使用微控制器的通用输入输出端口(GPIO)来手动生成I2C时序和信号。它通常用于那些没有硬件I2C接口或需要多个I2C接口的系统中。软件I2C具有以下特点:灵活性高、可移植性强、适用范围广。
2.硬件I2C
硬件I2C(Hardware I2C)是一种基于硬件的通信协议,通过专用的硬件接口实现设备之间的串行通信。I2C(Inter-Integrated Circuit)是一种常用的串行通信协议,由飞利浦(Philips)公司开发,用于在电路板上连接集成电路芯片。硬件I2C具有以下优点:高速传输、低占用率、稳定性高。
总结来说,硬件I2C具有高速传输、低占用率和稳定性高的优点,适用于对传输速度和稳定性要求较高的场景;而软件I2C具有灵活性高和可移植性强的特点,适用于没有硬件I2C支持或需要扩展硬件I2C功能的场景
二、实现AHT20采集
要求:每隔2秒钟采集一次温湿度数据,显示到OLED上,同时通过串口发送到上位机的“串口助手”软件
1.AHT20芯片的相关信息
官方资料链接如下:
软件下载-温湿度传感器 温湿度芯片 温湿度变送器模块 气体传感器 流量传感器 广州奥松电子股份有限公司 (aosong.com)
AHT20引脚图:
2.代码添加
具体过程请参考下方链接:
AHT20温度采集_uart是什么意思啊-CSDN博客
3.代码
(1)AHT20芯片使用
void read_AHT20_once(void)
{delay_ms(10);reset_AHT20();//重置AHT20芯片delay_ms(10);init_AHT20();//初始化AHT20芯片delay_ms(10);startMeasure_AHT20();//开始测试AHT20芯片delay_ms(80);read_AHT20();//读取AHT20采集的到的数据delay_ms(5);
}
(2)读取数据
void read_AHT20(void)
{uint8_t i;for(i=0; i<6; i++){readByte[i]=0;}I2C_Start();//I2C启动I2C_WriteByte(0x71);//I2C写数据ack_status = Receive_ACK();//收到的应答信息readByte[0]= I2C_ReadByte();//I2C读取数据Send_ACK();//发送应答信息readByte[1]= I2C_ReadByte();Send_ACK();readByte[2]= I2C_ReadByte();Send_ACK();readByte[3]= I2C_ReadByte();Send_ACK();readByte[4]= I2C_ReadByte();Send_ACK();readByte[5]= I2C_ReadByte();SendNot_Ack();//Send_ACK();I2C_Stop();//I2C停止函数//判断读取到的第一个字节是不是0x08,0x08是该芯片读取流程中规定的,如果读取过程没有问题,就对读到的数据进行相应的处理if( (readByte[0] & 0x68) == 0x08 ){H1 = readByte[1];H1 = (H1<<8) | readByte[2];H1 = (H1<<8) | readByte[3];H1 = H1>>4;H1 = (H1*1000)/1024/1024;T1 = readByte[3];T1 = T1 & 0x0000000F;T1 = (T1<<8) | readByte[4];T1 = (T1<<8) | readByte[5];T1 = (T1*2000)/1024/1024 - 500;AHT20_OutData[0] = (H1>>8) & 0x000000FF;AHT20_OutData[1] = H1 & 0x000000FF;AHT20_OutData[2] = (T1>>8) & 0x000000FF;AHT20_OutData[3] = T1 & 0x000000FF;}else{AHT20_OutData[0] = 0xFF;AHT20_OutData[1] = 0xFF;AHT20_OutData[2] = 0xFF;AHT20_OutData[3] = 0xFF;printf("读取失败!!!");}printf("\r\n");//根据AHT20芯片中,温度和湿度的计算公式,得到最终的结果,通过串口显示printf("温度:%d%d.%d",T1/100,(T1/10)%10,T1%10);printf("湿度:%d%d.%d",H1/100,(H1/10)%10,H1%10);printf("\r\n");
}
相关文章:

[stm32]温湿度采集与OLED显示
一、I2C总线协议 I2C(Inter-integrated circuit )是一种允许从不同的芯片或电路与不同的主芯片通信的协议。它仅用于短距离通信,是一种用于两个或多个设备之间进行数据传输的串行总线技术,它可以让你在微处理器、传感器、存储器、…...

大模型知识库的使用
大模型知识库的使用通常涉及以下几个方面,使用大模型知识库可以提高信息检索的准确性和效率,促进知识的传播和应用。同时,也需要关注知识库的质量和更新,以确保提供的知识是准确和可靠的。北京木奇移动技术有限公司,专…...

Docker - Oracle Database 23ai Free
博文目录 文章目录 说明命令NavicatSYSTEMPDBADMIN 扩展公共用户本地用户 说明 Oracle 官方镜像仓库 Database 23ai Free | Oracle Docker 官方没有提供 Oracle Database 相关镜像, 但是 Oracle 官方镜像仓库有提供, 打开上面的链接, 选择 Database, 选择合适的版本, 如 enter…...
spring常用方法
1. 读取配置文件信息 方式一: // 获取文件路径 String fileName "application.yaml"; String filePath this.getClass().getClassLoader().getResource(fileName).getPath();BufferedReader bufferedReader new BufferedReader(new FileReader(path)…...

虚拟机能装在移动硬盘里吗安全吗 PD虚拟机迁移到移动硬盘的方法
虚拟机技术的迅速发展为用户提供了更为灵活的跨系统办公方案。许多用户希望在不同的电脑设备上运行相同的虚拟机,同时带来的也有一个问题:虚拟机能否装在移动硬盘里?针对用户的疑问,接下来给大家介绍虚拟机能装在移动硬盘里吗&…...
刷算法Leetcode---7(二叉树篇)(前中后序遍历)
前言 本文是跟着代码随想录的栈与队列顺序进行刷题并编写的 代码随想录 好久没刷算法了,最近又开始继续刷,果然还是要坚持。 二叉树的题目比之前多了好多,就多分几次写啦~ 这是力扣刷算法的其他文章链接:刷算法Leetcode文章汇总 …...

AliyunOS安装Node.js
方法1:dnf软件包安装工具自动安装 最方便的安装方式是通过系统的dnf工具,我测试使用的AliyunOS的版本是Alibaba Cloud Linux 3.2104,具体流程如下: dnf module list nodejs #列出服务器中可以使用的所有nodejs版本确定下来希望安…...

three.js - MeshPhongMaterial材质(实现玻璃水晶球效果)
1、概念 phong网格材质:Mesh - Phong - Material 一种用于具有镜面高光的光泽表面的材质。 它可以模拟,具有镜面高光的光泽表面,提供镜面反射效果。 MeshPhongMaterial: MeshPhongMaterial是一种基于Phong光照模型的材质&#…...

笔记本电脑安装CentOS
正文共:1234 字 24 图,预估阅读时间:2 分钟 前面我们对VPP进行了多次介绍(羡慕!大佬的VPP能达到180G性能,而我的却只有13.5G),可以发现他的很多优点,但是我们也可以发现它…...
ssh转发功能入门
端口转发概述 端口转发,能够将其他TCP端口的网络数据通过SSH链路转发,并且提供了ssh的加密和解密的服务。 ssh端口转发有如下这些优点: 提供了ssh的加密传输,利于安全能够突破防火墙限制 目前ssh端口转发有如下几种方式&#x…...

Listary(Windows 文件搜索工具)专业版值得购买吗?
说到经典的国货软件,有一款 Win 软件是一定绕不过去的。它就是知名的本地文件搜索工具 Listary! 便捷的文件搜索窗口;快捷操作的体验;与系统更匹配的外观设计;更智能的排序和更可靠的索引。 便捷的文件搜索窗口 紧凑…...
面试突击指南:Java基础面试题2
面向对象和集合 1. 面向对象和面向过程的区别 面向过程:面向过程的编程方式是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,并在使用的时候逐个调用。这种方式性能较高,因此在单片机和嵌入式开发中经常采用面向过程开发。 面向对象:面向对象的编程方式是把问…...
MySQL快速安装(mysql8.0.30区别之前yum安装)
目录 一.初始化环境并解压 二.创建程序用户管理 三.修改mysql目录和配置文件的权限 四.修改配置文件 五.设置环境变量,申明/宣告mysql命令便于系统识别 六.初始化数据库 七.设置系统识别,进行操作 八.初始化数据库密码 九.用户并设置密码 十.赋…...
俄罗斯防空系统
俄罗斯的S系列防空系统是一系列先进的地对空导弹系统,旨在防御各类空中威胁,包括飞机、无人机、巡航导弹和弹道导弹。以下是几种主要的S系列防空系统: 1. **S-300系统**: - **S-300P**:最早期的版本,用…...

文件上传漏洞---Pyload
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 本文重点从靶场案例分析文件上传漏洞常见的Pylod,本文演示靶场upload-labs 一.文件类型---Pyload 不同的文件对应不同的文件类型,后端代码通过限制特定的文件类型…...

应用案例 | 如何监测高价值货物在物流运输过程中受到的振动和冲击?全面保障货物安全
一、货物运输 不同种类的货物对运输的要求不同,钢铁、煤炭、矿石等大宗物资通常对运输要求较低,而电子产品、IT 产品、家电等高价值敏感类货物则更强调运输的安全性和时效性,往往希望能尽可能安全和快速送达这类货物,使之尽快进入…...

VMware17安装Ubuntu20版本-保姆级别
首先需要安装好VMware和Ubuntu20的镜像,在网上搜索Ubuntu镜像下载即可,最后选择国内镜像站下载,这样更快点,然后打开VMware。 1.创建虚拟机: 2.选择自定义: 3.默认,继续下一步: 4.选…...
初探Xcode工具
初探Xcode工具 Xcode是苹果公司为Mac OS X和iOS平台开发软件的集成开发环境(IDE)。作为苹果开发者的首选工具,Xcode提供了一系列强大的功能,帮助开发者设计、编写、调试和发布应用程序。本文将对Xcode进行初步探索,介…...

小迪安全v2023笔记 1-18
小迪安全v2023笔记 1-18 棱角社区 文章目录 1. 基础入门1. 正向shell与反向shell2. web应用3. 抓包,封包,协议,app,小程序,pc应用,web应用 2. 信息打点1. 常见信息获取2. 文件泄露3. 常见阻碍4. CDN绕过&a…...

RabbitMQ WEB管理端介绍
页面功能概览 Overview(概述)Connections(连接)Channels(通道)Exchanges(交换器)Queues(队列)Admin(用户管理)。 1. Overview(概述) 主要分为三部分 1.1 Queued messages(所有队列的消息情况) Ready:待消费的消息总数Unacked:待应…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...