STM32项目分享:智能家居(机智云)系统

news2024/11/20 13:23:25

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1qb4y1N7mr/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能家居(机智云)系统。

功能如下:

  1. 采集温湿度:系统通过DHT11模块采集温湿度
  2. 烟雾监测:通过MQ-2模块采集环境中烟雾浓度
  3. 煤气监测:通过MQ-7一氧化碳模块采集环境中一氧化碳浓度
  4. 空气质量监测:通过MQ-7空气质量传感器采集环境空气质量情况
  5. 大气压强采集:通过BMP280采集环境气压大小
  6. 窗帘控制:通过步进电机模拟窗帘开关
  7. LED灯控制:控制LED灯
  8. OLED显示:显示温湿度、烟雾浓度、一氧化碳浓度、空气质量、大气压强等信息
  9. 蜂鸣器报警:危险情况下本地蜂鸣器触发报警
  10. 自动模式:设置自动模式,系统根据光强大小控制窗帘和LED灯的开闭
  11. 手动模式:设置手动模式,APP手动控制窗帘和LED灯的开关
  12. WIFI通信:使用ESP8266等进行WiFi远程通信
  13. APP功能:使用机智云APP,包括功能有控制并显示LED灯和窗帘的状态、显示当前温湿度、烟雾浓度、一氧化碳浓度和空气质量等信息。

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(7针SPI协议)
  • WiFi模块(ESP8266-01s)
  • MQ-2烟雾传感器
  • MQ-7一氧化碳传感器
  • MQ-135空气质量传感器
  • BMP280气压传感器
  • 28BYJ51步进电机
  • 蜂鸣器
  • LED灯

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

int main(void)
{	
	u8 t=0;
	int key_value;		//按键值
	uart_init(115200);	 		//串口初始化为115200
	delay_init();	    //延时函数初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	Adc1_Channe_Init();			//ADC通道初始化
	KEY_Init();					//按键引脚初始化
	bmp280Init();
	//while(DHT11_Init());	
	LED_Init();		  			//初始化与LED连接的硬件接口
	MOTOR_Init();
	OLED_Init();				//OLED初始化
	OLED_Clear();				//OLED清屏
	Gizwits_Init();		
	gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
	delay_ms(500);
while(1)
	{
		Get_Data(0);
		if(gz_value<=A_gz_value&&mode==0)
		{
			LED0=0;
			curtain_flag=0;
		}else if(gz_value>A_gz_value&&mode==0){
			LED0=1;
			curtain_flag=1;
		}
		if(last_curtain_flag!=curtain_flag&&mode==0)
		{
			BUJING_Cotrol(curtain_flag,3,270);
			last_curtain_flag = curtain_flag;
		}
		if(last_curtain_flag!=currentDataPoint.valueCurtain&&mode==1)
		{
			BUJING_Cotrol(currentDataPoint.valueCurtain,3,270);
			curtain_flag = currentDataPoint.valueCurtain;
			last_curtain_flag = currentDataPoint.valueCurtain;
		}	
		if(mode==1)
		{
			LED0=!currentDataPoint.valueLED;
		}
if(DHT11_Temp>=A_DHT11_Temp||DHT11_Hum<=A_DHT11_Hum||Pre>=A_pre||m135_value<=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value)
		{
			BEEP=!BEEP;
		}else BEEP = 0;

		key_value = KEY_Scan(0);
		if(key_value==2)
		{
			display_contrl++;
		}
		if(display_contrl%2==0&&t>=10)
		{
			OLED_ShowCHinese(0,0,0);
			OLED_ShowCHinese(16,0,2);
			sprintf((char*)buff,":%2dC",DHT11_Temp);
			OLED_ShowString(32,0,buff,16);	//显示温度
			OLED_ShowCHinese(64,0,1);
			OLED_ShowCHinese(82,0,2);
			sprintf((char*)buff,":%2d%%",DHT11_Hum);
			OLED_ShowString(96,0,buff,16);//显示湿度	
			
			OLED_ShowCHinese(0,2,3);
			OLED_ShowCHinese(16,2,4);
			sprintf((char*)buff,":%2dhpa     ",Pre);
			OLED_ShowString(32,2,buff,16);//显示气压
			
			OLED_ShowCHinese(0,4,5);
			OLED_ShowCHinese(16,4,6);
			OLED_ShowCHinese(32,4,7);
			OLED_ShowCHinese(48,4,8);
			sprintf((char*)buff,":%4dppm",gz_value);
			OLED_ShowString(64,4,buff,16);//显示光照强度
			
			OLED_ShowCHinese(0,6,9);
			OLED_ShowCHinese(16,6,10);
			OLED_ShowCHinese(32,6,11);
			OLED_ShowCHinese(48,6,12);
			sprintf((char*)buff,":%4dppm",m135_value);
			OLED_ShowString(64,6,buff,16);//显示空气质量
		}else if(display_contrl%2==1&&t>=10)
		{
			OLED_ShowCHinese(0,0,13);
			OLED_ShowCHinese(16,0,14);
			OLED_ShowCHinese(32,0,15);
			OLED_ShowCHinese(48,0,16);
			sprintf((char*)buff,":%4dppm",m2_value);
			OLED_ShowString(64,0,buff,16);//显示M2数据
			
			OLED_ShowCHinese(0,2,17);
			OLED_ShowCHinese(16,2,18);
			OLED_ShowCHinese(32,2,19);
			OLED_ShowCHinese(48,2,20);
			sprintf((char*)buff,":%4dppm",m7_value);
			OLED_ShowString(64,2,buff,16);//显示M7数据
			
			OLED_ShowCHinese(0,4,5);
			OLED_ShowCHinese(16,4,6);
			OLED_ShowCHinese(32,4,7);
			OLED_ShowCHinese(48,4,8);
			sprintf((char*)buff,":%4dppm",gz_value);
			OLED_ShowString(64,4,buff,16);//显示光照强度
			
			OLED_ShowCHinese(0,6,9);
			OLED_ShowCHinese(16,6,10);
			OLED_ShowCHinese(32,6,11);
			OLED_ShowCHinese(48,6,12);
			sprintf((char*)buff,":%4dppm",m135_value);
			OLED_ShowString(64,6,buff,16);//显示M135数据
		}
		userHandle();		//用户数据采集
		WIFI_Contection(key_value);//WiFi连接控制
		gizwitsHandle((dataPoint_t *)&currentDataPoint);//机智云协议处理
		Canshu_Change(key_value);
		t++;
		delay_ms(100);
	}
}

六、实验效果 

七、资料内容

项目分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计软件有哪些?效果工具篇(2),渲染100邀请码1a12

这次我们继续介绍一些渲染效果和后期处理的工具。 1、Krakatoa Krakatoa是由Thinkbox Software开发的强大的粒子渲染器&#xff0c;可用于Autodesk 3ds Max等软件。它专注于处理大规模粒子数据&#xff0c;提供了高效的渲染解决方案&#xff0c;适用于各种特效、粒子系统和模…

VMware 三种网络模式

目录 一、网卡、路由器、交换机 二、虚拟网络编辑器 三、网络模式 1.桥接模式 通信方式 特点 配置 连通情况 使用场景 2.NAT模式 通信方式 特点 配置 连通情况 使用场景 3.仅主机 通信方式 特点 配置 连通情况 使用场景 一、网卡、路由器、交换机 网卡(Ne…

短视频矩阵源码----如何做正规开发规则分享:

一、什么是SaaS化服务技术开发&#xff1f; &#xff08;短视频矩阵系统是源头开发的应该分为3个端口---- 总后台控制端、总代理端口&#xff0c;总商户后台&#xff09; SaaS是软件即服务&#xff08;Software as a Service&#xff09;的缩写。它是一种通过互联网提供软件应…

小白新手一篇看懂PolarDB-X

小白新手一篇看懂PolarDB-X 什么是PolarDB-X如何安装安装PolarDB-X安装Mysql安装jdk Spring BootPolarDB-X应用测试安装Git及下载模板代码创建数据库业务操作 体验感受 什么是PolarDB-X 在使用一款新的产品之前&#xff0c;首先就是要对这个产品有一个基础的理解&#xff0c;适…

Java17 --- SpringCloud之seate

目录 一、创建seata需要的mysql数据库表 二、修改seata的配置文件 三、启动nacos及seata 四、创建需要的数据库及表 一、创建seata需要的mysql数据库表 CREATE DATABASE seata;CREATE TABLE IF NOT EXISTS global_table(xid VARCHAR(128) NOT NULL,…

RK3568技术笔记之三 SAIL-RK3568开发板板卡功能测试

从这里开始&#xff0c;就是老生常谈系列之一&#xff1a;板卡功能测试。 放一张图镇一下帖 按照我自己顺手的方式&#xff0c;把这板子功能测一下。 先把开发板串口信息打印出来。 工具 功能 备注 电脑&#xff08;必备&#xff09; 提供使用终端软件环境 需要具备至少…

【Linux】进程(8):Linux真正是如何调度的

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;8&#xff09;&#xff1a;Linux真正是如何调度的&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 之前我们讲过&#xff0c;在大…

【一】apollo 环境配置

域控制器配置 google输入法安装 安装输入google pinyin法 sudo apt install fcitx-bin sudo apt install fcitx-table sudo apt-get install fcitx fcitx-googlepinyin -y 最后需要reboot 系统环境 修改文件夹名称为英文 export LANGen_US xdg-user-dirs-gtk-update 挂载硬…

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第326p-第p331的内容 关注的问题 sentinel&#xff08;哨兵&#xff09; sentinel来实现熔断、降级、限流等操作 腾讯开源的tendis&#xff0c…

[已解决] Android手机如何通过Wi-Fi连接电脑?

在当前的数字化时代&#xff0c;Android和PC之间的文件传输需求日益增长。如果您正在寻找一种无需USB线即可将Android手机连接到PC的方法&#xff0c;那么您来对地方了。本文将向您介绍6种实用的方法&#xff0c;让您轻松通过Wi-Fi将Android手机连接到PC。 方式1&#xff1a;通…

什么是输入偏置电流?

输入偏置电流&#xff08;input bias current&#xff09;&#xff1a;运放同相与反相端流入和流出的电流。理想的运放同相和反相端的阻抗是无穷大的&#xff0c;所以是无法流进和流出电流。 第一种定义&#xff1a;同相与反相端电流和的平均值 以AD8031运放举例&#xff0c;…

DVWA-XSS(Reflected)

反射型XSS可以用来窃取cookie Low 输入1111进行测试&#xff0c;发现1111被打印 输入<script>alert(document.cookie)</script>&#xff0c;出现弹窗&#xff0c;获得cookie Medium 查看后端代码&#xff0c;发现对<script>进行了转义&#xff0c;但是…

docker部署fastdfs

我的镜像包地址 链接&#xff1a;https://pan.baidu.com/s/1j5E5O1xdyQVfJhsOevXvYg?pwdhcav 提取码&#xff1a;hcav docker load -i gofast.tar.gz拉取gofast docker pull sjqzhang/go-fastdfs启动gofast docker run -d --name fastdfs -p 8080:8080 -v /opt/lijia/lijia…

MyBatis总结(1)- 初探

初次学习应该冒出来的几个问题点&#xff1a; 1. 是什么&#xff1f; 一款ORM框架&#xff08;对象关系映射&#xff0c;用来作为连接数据库的桥梁&#xff09;&#xff1b;Mybatis通过定义配置(mybatis-config)&#xff0c;映射&#xff08;mapper&#xff09;关系&#xff…

Vulnhub-DC-4

靶机IP:192.168.20.138 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 没发现什么敏感信息&#xff0c;看下前端界面 想到会不会存在SQL注入&#xff0c;弱密码等漏洞。 经过测试SQL注入…

使用紫铜管制作半波天线的折合振子

一、概述 半波天线是一种简单而有效的天线类型&#xff0c;其长度约为工作波长的一半。它具有较好的辐射特性和较高的增益&#xff0c;广泛应用于业余无线电、电视接收等领域。使用紫铜管制作折合振子&#xff0c;不仅可以提高天线的机械强度&#xff0c;还能增强其导电性能。 …

实现开源可商用的 ChatPDF RAG:密集向量检索(R)+上下文学习(AG)

实现 ChatPDF & RAG&#xff1a;密集向量检索&#xff08;R&#xff09;上下文学习&#xff08;AG&#xff09; RAG 是啥&#xff1f;实现 ChatPDF怎么优化 RAG&#xff1f; RAG 是啥&#xff1f; RAG 是检索增强生成的缩写&#xff0c;是一种结合了信息检索技术与语言生成…

【C++软件调试技术】什么是pdb文件?如何使用pdb文件?哪些工具需要使用pdb文件?

目录 1、什么是pdb文件? 2、如何配置生成pdb文件? 3、pdb文件的时间戳和文件名称 3.1、pdb文件的时间戳 3.2、pdb文件的文件名称 4、有pdb文件才能在Visual Studio中调试代码 5、在Windbg中使用pdb文件 5.1、使用lm命令查看二进制文件的时间戳,去查找对应版本的pdb文…

k8s——secret配置资源管理

一、Secret 1.1 Secret定义 Secret是用来保存密码、token、密钥等敏感数据的k8s资源&#xff0c;这类数据虽然也可以存放在Pod或者镜像中&#xff0c;但是放在Secret中是为了更方便的控制如何使用数据&#xff0c;并减少暴露的风险。 1.2 Secret类型 kubernetes.io/service-ac…

优思学院|精益生产学习过程中如何提高自己的能力水平?

精益生产是一项实践多过理论的课题。 优思学院认为实践并不限于实际的工作&#xff0c;日常的思考同样重要&#xff0c;例如我们会要求学员在学习时不断思考各种事物&#xff0c;不限于自己的企业。例如当你去到一家餐厅&#xff0c;你能夠观察到什么浪费&#xff1f;你可否把…