STM32物联网基于ZigBee智能家居控制系统

实践制作DIY- GC0169-ZigBee智能家居  

 

一、功能说明:

基于STM32单片机设计-ZigBee智能家居

二、功能介绍:

1个主机显示板:STM32F103C最小系统+ZigBee无线模块+OLED显示器 +语音识别模块+多个按键+ESP8266-WIFI模块(仅WIFI版本有)

1个传感器板:   STM32F103C最小系统+ZigBee无线模块+DHT11温度湿度传感器+雨滴采集板+光敏电阻光强采集

1个执行板:      STM32F103C最小系统+ZigBee无线模块+舵机-窗户+ULN2003步进电机-窗帘+继电器-空调+LED灯模块-房间灯

总体功能:通过ZigBee模块实现3块电路板之间数据交互,实现控制灯的开关亮度,实现空调(继电器)开关,实现窗户(继电器)开关,实现窗帘(ULN2003步进电机)开关。有自动和手动两种模式。自动模式下雨滴检测是否屋外有雨,有雨则关闭窗户,无雨自动开窗户,光照是否大于设置阈值,大于则关闭窗帘,小于则开启窗帘。

主机显示板功能:

1.OLED显示器显示,温湿度和光照值,(空调)继电器、灯、窗帘、窗户的开关状态,灯光亮度大小。

2.多个按键:手动自动模式切换、 控制灯的开关、灯的亮度调节、窗帘和窗户的开关、(空调)继电器的开关、光照阈值加、光照阈值减

3.语音识别:通过语音命令进行开启,可以控制灯的开关、(空调)继电器的开关、灯的亮度大小、窗户和窗帘的开关,以及开启自动模式的开关。

4.通过ZigBee模块获取传感器板采集到的数据。

5.通过ZigBee模块发送控制指令给执行板。

传感器板功能:

1.读取DHT11温度湿度、读取雨滴采集板判断是否有雨、采集光敏电阻计算环境光强。

2.通过ZigBee模块上传采集到的数据至主机显示板。

执行板功能:

1.通过ZigBee接收主机显示板的控制指令。

2.按照控制指令控制灯的开关,灯的亮度,窗帘和窗户的开关,(空调)继电器的开关。

三、详情介绍:

视频讲解:哔哩哔哩搜索UP主“爱搞单片机”在其空间搜索关键词ZigBee智能家居观看该视频详解讲解

功能演示操作

这是一款基于STM32单片机ZigBee智能家居1个主机显示板:STM32F103C最小系统+ZigBee无线模块+OLED显示器 +语音识别模块+多个按键+ESP8266-WIFI模块(仅WIFI版本有)

1个传感器板:   STM32F103C最小系统+ZigBee无线模块+DHT11温度湿度传感器+雨滴采集板+光敏电阻光强采集

1个执行板:      STM32F103C最小系统+ZigBee无线模块+舵机-窗户+ULN2003步进电机-窗帘+继电器-空调+LED灯模块-房间灯

总体功能:通过ZigBee模块实现3块电路板之间数据交互,实现控制灯的开关亮度,实现空调(继电器)开关,实现窗户(继电器)开关,实现窗帘(ULN2003步进电机)开关。有自动和手动两种模式。自动模式下雨滴检测是否屋外有雨,有雨则关闭窗户,无雨自动开窗户,光照是否大于设置阈值,大于则关闭窗帘,小于则开启窗帘。

主机显示板功能:

1.OLED显示器显示,温湿度和光照值,(空调)继电器、灯、窗帘、窗户的开关状态,灯光亮度大小。

2.多个按键:手动自动模式切换、 控制灯的开关、灯的亮度调节、窗帘和窗户的开关、(空调)继电器的开关、光照阈值加、光照阈值减

3.语音识别:通过语音命令进行开启,可以控制灯的开关、(空调)继电器的开关、灯的亮度大小、窗户和窗帘的开关,以及开启自动模式的开关。

4.通过ZigBee模块获取传感器板采集到的数据。

5.通过ZigBee模块发送控制指令给执行板。

传感器板功能:

1.读取DHT11温度湿度、读取雨滴采集板判断是否有雨、采集光敏电阻计算环境光强。

2.通过ZigBee模块上传采集到的数据至主机显示板。

执行板功能:

1.通过ZigBee接收主机显示板的控制指令。

2.按照控制指令控制灯的开关,灯的亮度,窗帘和窗户的开关,(空调)继电器的开关。

具体测试方法观看视频详细介绍。。。

了解更多尽请观看视频讲解。。。

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

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

相关文章

Spring Cloud Pipelines 入门实践

文章目录 1. 前言2. Spring Cloud Pipelines 是做什么的2.1. 预定义的流程2.2. 集成测试和契约测试2.3.部署策略 4. Spring Cloud Pipelines的使用示例4.1. 创建一个Spring Boot应用4.2. 将代码托管到GitHub仓库4.3. 添加Spring Cloud Pipelines依赖4.4. 配置Spring Cloud Pipe…

生成Android证书

前提:确保本机安装好了java1.8 第一步 打开CMD keytool -genkey -alias AAAA -keyalg RSA -keysize 2048 -validity 36500 -keystore D:\mygitee\keyStore\szxApp.jksD:\mygitee\keyStore\szxApp.jks是证书要生成的位置 szxApp.jks 是证书名称 D:\mygitee\keySto…

volatile为什么无法保证原子性

假设定义 volatile int i 0; 现在2个线程同时 i,为什么数据还可能会出错?一起来看下图,虽然volatile的机制是:如果volatile修饰的变量有修改,那么会将变更内容写回主内存,同时让其他线程工作内存的该变量缓…

Pytorvh之Vision Transformer图像分类

文章目录 前言一、Transformer1.Transformer概览2.Self-Attention3.Multi-head Attention4.Position-wise Feed-Forward Networks(位置前馈网络)5.残差连接和层归一化6.Positional Encodings(位置编码) 二、Vision Transformer1.Vision Transformer概览2.Embedding层结构&#…

C++中resize和reserve

1.reserve(n)对capacity操作 capacity < n : 扩容capacity > n : 不操作 2.resize(n, m)对size操作 size < n : size增加到n 增加的值为msize > n : size减小到ncapacity < n : 先增大容量至n 再增大size至n 增加的值为m

计算机网络 | OSI 参考模型

计算机网络 | OSI 参考模型 计算机网络 | OSI 参考模型应用层表示层会话层传输层网络层数据链路层物理层 参考视频&#xff1a;王道计算机考研 计算机网络 参考书&#xff1a;《2022年计算机网络考研复习指导》 计算机网络 | OSI 参考模型 OSI 参考模型自下而上分为7层&…

Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习

学习RLAIF论文前&#xff0c;可以先学习一下基于人类反馈的强化学习RLHF&#xff0c;相关的微调方法&#xff08;比如强化学习系列RLHF、RRHF、RLTF、RRTF&#xff09;的论文、数据集、代码等汇总都可以参考GitHub项目&#xff1a;GitHub - eosphoros-ai/Awesome-Text2SQL: Cur…

mysql5.7获取json数组中的某个对象

前言 表中的一个字段类型是字符串&#xff0c;存的是一个对象数据。 现在要根据对象中的某个属性&#xff0c;获取到整个对象信息。 如果是mysql8&#xff0c;则可以使用JSON_TABLE。 示例&#xff1a;https://blog.csdn.net/weixin_44071721/article/details/123347229 sele…

MIT 6.S081 Operating System/Fall 2020 macOS搭建risc-v与xv6开发调试环境

文章目录 本机配置安装环境Homebrew执行安装脚本查看安装是否成功 RISC-V tools执行brew的安装脚本 QEMUXV6 测试有用的参考链接&#xff08;感谢前辈&#xff09;写在结尾 本机配置 电脑型号&#xff1a;Apple M2 Pro 2023 操作系统&#xff1a;macOS Ventura 13.4 所以我的电…

C# 处理TCP数据的类(服务端)

using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Threading;namespace TestDemo {/// <summary>/// 处理TCP数据的类&#xff08;服务端&#xff09;/// </summary>public class TcpService{/// <s…

Java中ArrayList 和 LinkedList 的区别是什么?

Java中ArrayList 和 LinkedList 的区别是什么&#xff1f; ArrayList 和 LinkedList 都是Java中常用的集合类&#xff0c;它们用于存储和操作元素的容器&#xff0c;但在内部实现和使用方式上有很大的区别。以下是它们的区别、作用、优缺点以及示例说明&#xff1a; 区别&…

Linux 安全 - LSM hook点

文章目录 一、LSM file system hooks1.1 LSM super_block hooks1.2 LSM file hooks1.3 LSM inode hooks 二、LSM Task hooks三、LSM IPC hooks四、LSM Network hooks五、LSM Module & System hooks 一、LSM file system hooks 在VFS&#xff08;虚拟文件系统&#xff09;层…

JVM第六讲:JVM 基础 - Java 内存模型引入

JVM 基础 - Java 内存模型引入 很多人都无法区分Java内存模型和JVM内存结构&#xff0c;以及Java内存模型与物理内存之间的关系。本文是JVM第六讲&#xff0c;从堆栈角度引入JMM&#xff0c;然后介绍JMM和物理内存之间的关系, 为后面JMM详解, JVM 内存结构详解, Java 对象模型详…

蓝桥杯基础---切面条

切面条 一根高筋拉面&#xff0c;中间切一刀&#xff0c;可以得到2根面条。 如果先对折1次&#xff0c;中间切一刀&#xff0c;可以得到3根面条。 如果连续对折2次&#xff0c;中间切一刀&#xff0c;可以得到5根面条。 那么&#xff0c;连续对折10次&#xff0c;中间切一刀…

react数据管理之setState与Props

react数据管理之setState与Props setState调用原理 setState 是 React 中用于更新组件状态&#xff08;state&#xff09;的方法。它的调用原理可以分为以下几个步骤&#xff1a; 状态的改变&#xff1a;当调用 setState 时&#xff0c;React 会将新的状态对象与当前状态对象…

QT 网络编程 服务端 客户端 QTcpServer

服务端的创建 //创建服务端QTcpServer对象 server new QTcpServer(this);//设置服务端&#xff0c;端口&#xff0c;这里绑定的是主机的所有网卡&#xff0c; server->listen(QHostAddress::Any, 8080);//绑定连接信号与槽 connect(this->server, &QTcpServer::new…

[C++随想录] 继承

继承 继承的引言基类和子类的赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承与静态成员多继承的结构棱形继承的结构棱形虚拟继承的结构继承与组合 继承的引言 概念 继承(inheritance)机制是面向对象程序设计使代码可以 复用的最重要的手段&#xff0c;它允许程序…

Design patterns--观察者模式

设计模式之观察者模式 代码示例 #ifndef OBSERVER_H #define OBSERVER_H#include <map>class Observer { public:Observer();virtual void update(std::map<int, double>) 0; }; #endif // OBSERVER_H#include "observer.h"Observer::Observer() {}#if…

玩转Linux Shell Terminal Tmux

一、Shell编程☘️ 1. Shell指令快捷操作 1. echo # 系统指令 $ echo $(pwd) # 对于系统自带的pwd&#xff0c;此处不能写echo $pwd# 自定义变量 $ foo$(pwd) $ echo $foo # 不同于pwd&#xff0c;对于自定义的foo&#xff0c;不能用$(foo)2. !! # 假设你先执行了以下原本…

python基于django的留学生服务管理平台

留学服务管理平台的用户是系统最根本使用者&#xff0c;按需要分析系统包括三类用户&#xff1a;学生、教师、管理员。这三类用户对系统的需求简要如下。技术栈 后端&#xff1a;pythondjango 前端&#xff1a;vueCSSJavaScriptjQueryelementui 开发语言&#xff1a;Python 框架…