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

STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)

   资料下载: https://download.csdn.net/download/vvoennvv/88680924

一、概述

        本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y1014AUOF灰尘传感器检测 PM2.5浓度,光敏电阻对室内光照强度的采集。在液晶屏显示相关环境数据,根据数据处理结果主控芯片发出相应指令,使室内保持人们舒适的生活环境,同时WIFI模块将数据上传到阿里云平台,平台再将数据下发到APP端,人们可以在远程控制家里的电器设备,可以让人们方便直接的观察到当前环境的各种指标。还可以根据不同情况自行设置温湿度、PM2.5浓度、光照强度及CO浓度的上下限,一旦超过正常范围就会打开电灯、发出声光报警、打开风扇等,并通过手机端通知不在家中的人们。

二,整体设计

       系统启动后,单片机控制相关传感器进行环境参数的采集,将数据传回单片机处理后,通过OLED显示屏将相关环境数实时显示。用户可以在手机端打开APP与本系统进行通信,更加便捷地查看监测数据。结构框图如下所示。

三,硬件设计

        硬件部分包含主控芯片、传感器模块OLED模块,WIFI模块以及声光报警模块,部分原理图和PCB图如下:

四,软件设计

        主程序是一个无限循环的函数(main),是程序开始运行的地方。系统启动时,主程序首先对STM32及外部设备初始化。其中包括I/O口、ADC的初始化等等。主程序在初始化结束后,程序进入while(1)的死循环,在循环中进行按键的扫描,通过按键对参数进行设置。可以设置温湿度和PM2.5的报警阈值。然后发送指令启动DHT11、GP2Y1014AUOF、MQ-7传感器将采集到的相关参数显示到OLED上。同时启动ESP8266进行MCU与阿里云的通信,在手机上也可以直接查看到实时采集的信息。至此扫描周期结束,轮到下一周期时会从主程序开始处继续下去。在这个循环过程中,也需要将采集值与设置值相比较。倘若在正常范围内,则程序回到开始执行的地方,准备进行下一次运行。倘若偏离了正常范围,则发送指令至报警模块和风扇,警示用户进行相应调整。系统主程序的流程如图:

        温湿度采集的程序模块是一个循环程序。在给STM32通电后,单片机发送指令给DHT11传感器。DHT11完成对所处环境中的温湿度数值的采集运算。在将最终得到的数据显示在OLED和手机屏上的同时,也传输回STM32。STM32将反馈的数据与开始设定的阈值范围进行对比。倘若在正常范围内,则返回循环并继续采集信息。倘若偏离了正常范围,则会产生声光报警,接着再返回重新采集信息。温湿度监控子程序的流程如图

还有 空气质量监控子程序, 液晶显示程序子程序等子程序。

 五,设计报告 

        报告里详细描述了智能家居目前国内外的现状,以及该系统的整体设计,硬件设计,软件设计。

六,总结

一个学习STM32不可多得的项目,通过该项目可以熟悉STM32各种片内资源的使用。

资料下载: https://download.csdn.net/download/vvoennvv/88680924

相关文章:

  • MR实战:词频统计
  • git本地创建分支并推送到远程关联起来
  • LLM之RAG实战(十三)| 利用MongoDB矢量搜索实现RAG高级检索
  • 【Unity嵌入Android原生工程】
  • java基础之Java8新特性-Stream(流)
  • 弹窗里el-cascader下拉框脱离文档流的解决办法
  • BLE Mesh蓝牙组网技术详细解析之Model Layer模型层(八)
  • MySQL-数据库概述
  • HTML----JavaScript操作对象BOM对象
  • how2heap-2.23-09-chunk_extend_and_overlapping
  • ReactNative 常见问题及处理办法(加固混淆)
  • AI原生应用开发“三板斧”亮相WAVE SUMMIT+2023
  • 由浅入深理解C#中的事件
  • CMake入门教程【基础篇】列表操作(list)
  • HTML5大作业-精致版个人博客空间模板源码
  • [nginx文档翻译系列] 控制nginx
  • angular2开源库收集
  • eclipse的离线汉化
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java程序员幽默爆笑锦集
  • Java到底能干嘛?
  • MySQL几个简单SQL的优化
  • pdf文件如何在线转换为jpg图片
  • Spring声明式事务管理之一:五大属性分析
  • 警报:线上事故之CountDownLatch的威力
  • 利用DataURL技术在网页上显示图片
  • 树莓派 - 使用须知
  • 在weex里面使用chart图表
  • #Linux(权限管理)
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (09)Hive——CTE 公共表达式
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm高校实验室 毕业设计 800008
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (原)Matlab的svmtrain和svmclassify
  • (原)本想说脏话,奈何已放下
  • (转) Android中ViewStub组件使用
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET开源快速、强大、免费的电子表格组件
  • .net下的富文本编辑器FCKeditor的配置方法
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [Codeforces] combinatorics (R1600) Part.2
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [HDOJ4911]Inversion
  • [J2ME]如何替换Google Map静态地图自带的Marker
  • [Kubernetes]9. K8s ingress讲解借助ingress配置http,https访问k8s集群应用
  • [MySQL]日期和时间函数
  • [MySQL]视图索引以及连接查询案列
  • [NKCTF 2024]web解析
  • [NOI2022] 众数 题解