基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示)

本文主要是介绍基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示)

这个户外监测系统自己还在完善,在这个上传给onenet中移物联网上传出现一点小问题,不过上传数据还是不是很稳定,所以目前个人发表的是自己实现在周遭环境监测系统的1.0版本。后续还会发表自己的升级版,敬请期待吧!

首[在这里插入图片描述是我们这个系统运行的载体是STM32F103C8T6最小系统板
然后就是大家比较熟知的传感器模块:
(1):温湿度传感器
在这里插入图片描述
这个传感器运行是需要经过两次的上拉电平,才能实现将AD转换成数据转发传输,想要更加深入理解这个传感器的原理可以这个大佬学习-(我也是看这个的)

static void DHT11_Rst(void)
{                 GPIO_SETOUT();											//配置成输出模式GPIO_ResetBits(DHT11_IO,DHT11_PIN); //拉低数据线delay_ms(20);    										//拉低至少18msGPIO_SetBits(DHT11_IO,DHT11_PIN); 	//拉高数据线 delay_us(30);     									//主机拉高20~40usGPIO_ResetBits(DHT11_IO,DHT11_PIN);
}

这是启动让DHT11可是进行数据传输。(后面我把代码打个包)
这里是接线安排

OUT管脚接最小系统板的PB11管脚

(2):GY-30光照强度传感器
在这里插入图片描述
这个代码实现的逻辑是由下图
|

GPIO配置配置使能,管脚配置为PB5\6
初始化BH1750设置地址,内存地址,还有IIC信号停止源
延时函数Delay()
读取光照强度读取BH1750内部结构
合成数据运算设置value值

想要了解更多的同学可以看这个博主的博文帅奎奎
管脚插线方法:

GND、ADDGND
VCCVcc
SDAPB5
SCLPB6

(3)OLED显示屏:
在这里插入图片描述
我用的OLED代码是正点原子的,通过这个实验例程移植到我这边的代码上。当然为了更好的实现我自己也改了一些内容:

void OLED_Show(u8 temp,u8 humi,u8 Light)
{	OLED_ShowString(35,2, ":",16);//显示温度中文OLED_ShowCHinese(0,4,10);OLED_ShowCHinese(17,4,11);OLED_ShowString(35,4, ":",16);//显示湿度中文OLED_ShowCHinese(0,6,12);OLED_ShowCHinese(17,6,13);OLED_ShowString(35,6, ":",16);//显示光照中文OLED_ShowNum(45,2,temp,3,16);//显示温度OLED_ShowNum(45,4,humi,3,16);//显示湿度的码值 OLED_ShowNum(45,6,Light,3,16);//显示湿度的码值	 delay_ms(10);}

这是我自己修改的地方,为了代码的客观性,将冗余的代码用函数的形式实现。

接线设置:

SDAPA7
SCLPA5

这样就可以将这些模块整合在最小系统里了。
OLED显示

串口实时反馈

遇到的问题总结
一个是运行总线IIC上面的知识,自己运用的不是很熟练,同时在将这些代码初始时,整体的客观性不强,现在改过来啦
在这里插入图片描述
整体自己这样过来还是颇有感触,网上有各种各样的方法和代码,都不如自己慢慢调试,形成自己传感器库,在后面的开发中直接调用就可以了,当然我们还是要借鉴别人的代码,感谢那些引路人,谢谢你们

源码给你哇,一起加油喂

这篇关于基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/257457

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作