STM32智能家居小助手

设计的目的

大部分家用电器开关仍旧是传统的机械式按键开关,原因是传统式的电器开关开发周期短,制作成本低,方案成熟,但是传统的遥控家电开关已经不能满足人们对家电控制的要求,传统的遥控器具有单一性, 每种遥控器只能控制一种家用电器,随着家用电器的逐步增加,使得众多的遥控器很难去分辨。随着科学技术的快速发展,人们对生活品质的要求也不断提高,开始追求更好的生活方式。因此,为了适应物质生活的需求,智能家居小助手系统应运而生。例如:回到家时,饭已煮好,房间温度合适,热水器中的水也已经加热,既舒服又方便。另外,用户还能随时改变家用电器的工作状态,既节能又安全。

智能家居( Smart Home)小助手系统是以家为平台,兼备建筑、自动化,智能化于一体的高效、舒适、安全、便利的家居环境。采用智能手机APP、网页、小程序等进行家电的控制具有夸时代的进步,因为通过WiFi的方式不再受到遥控器型号的限制,传统的家用电器开关需要匹配的遥控器才能进行有效的操作,当有了WiFi技术,操作的便利性得到很大的提高。

简介

STM32单片机设计的智能家居小助手,结合单片机的外围电路实现对整个系统的控制,报警电路由蜂鸣器组成,单片机显示部分采用OLED显示,可以通过查看OLED或者按键设置温湿度、光照强度的阀值,利用通过STM32单片机采集温湿度、光照强度、雨滴模块等的数据通过连接WIFI使用ESP8266模块发送数据到服务端,然后通过网页、小程序、APP来显示和修改数据,从而可以相互通信。而且我们只需要增加或者减小在核心板的传感器,从而测量环境中的数据。

设计思路

采用STM32单片机作为主控芯片,ESP8266 WIFI 模块作为无线接收和发射模块,利用手机 APP 、网页、小程序对家用电器进行控制。研究手机终端作为信号的发出源,通过连接WIFI 信号,利用相应的控制软件以 WIFI 网络信号为载体发送相关数据信号,WiFi 模块主要的任务就是作为一个载体,将终端发送来的信号传递给单片机,以单片机为中心的控制模块就实时完成数据的处理,CPU处理之后将会输出相应的电平控制继电器,来实灯光的亮灭等一系列智能家居的功能。

硬件电路模块STC89C52DHT11(温湿度模块)BH1750(光照强度模块)蜂鸣器LEDESP8266步进电机土壤湿度模块等等。

软件设计APP小程序网页

  • (1)单片机采集数据,可以通过OLED的UI菜单可以显示对应的数据。
  • (2)单片机通过串口发送数据给ESP8266,然后ESP8266通过WIFI发送数据到MQTT服务端。
  • (3)通过查看OLED,可以通过按键设置温湿度、光照强度、土壤湿度等每一个模块对应的阀值,从而更好的控制。
  • (4)通过小程序、APP、网页,可以控制LED、风扇等设备。
  • (5)系统设计完成3路家电开关的开启与关闭控制,相互之间不能有干扰。
  • (6)显示时间,这样方便实用。

硬件设备

软件小程序

设计流程

硬件

  • 首先通过STM32主控器读取温湿度及光照模块的具体数值,然后通过计算转为实际单位数值;将得到的具体环境数值通过ESP8266-wifi模块发送至远程服务器端,在通过前端显示出来。前端的显示目前由微信小程序实现。
  • 蜂鸣器作为环境报警响应,有被动式及主动式。被动式因环境参数超过预定标准触发。主动式可通过实体按键或小程序进行通断。LED作为日光灯功能,有自动式及主动式。自动式通过判断环境亮度自行触发。主动式可通过实体按键或小程序进行灯的通断。

软件

小程序设计

小程序使用 MPVUE 构架开发,使用开发工具:VSCODE+微信开发工具。

基础使用
  • 1.安装全局vue-cli
npm install --global vue-cli@2.9
  • 2.创建一个mpvue-quickstart模板的新项目
vue init mpvue/mpvue-quickstart project

3.安装依赖

cd projectnpm installnpm run dev

成功后可以看到以下文件夹:

主要介绍src目录和static 目录 ,static 目录主要放静态文件。

src目录下有:

pages 主要用于写view ,compontents 写template,utils写public js

pages下边写view ,一般的文件结构都是类似 index.vue main.js main.json 这样的三个文件,

index.vue 写我们的vue文件,mpvue 支持大多数的vue语法,例如具体支持什么不支持什么:http://mpvue.com/mpvue/#_9 请传送致官网main.js :暴露index.vue 文件

main.json 写配置文件

使用微信api
  • 1.首先导出wx

然后在需要的页面使用

main.js

接下来是indx.vue 文件

wx.getLocation是获取当前的地理位置、速度。

整个index.vue文件如下

查看天气

服务器设计

我们使用自己的云服务器安装开源的EMQ服务器,通过EMQ,我们可以通过MQTT可以让8266和小程序、网页和APP结合。EMQ服务器可以实现高并发,多用户在线访问,也不会网络出现问题。

EMQ下载

下载地址:https://www.emqx.io/downloads#broker

下载界面如下图所示:

我们此处选择了开原版。

  • 版本号为:v4.2.11
  • 系统和软件:Linux/centos7/zip
  • 下载后的文件为: emqx-centos7-4.2.11-x86_64.zip
解压缩包

具体命令如下:

unzip  emqx-centos7-4.2.11-x86_64.zip

emqttd目录结构如下图所示:

bin目录结构如下图所示:

启动EMQ服务器

具体命令如下:

./emqttd start

该命令在bin目录下。

启动状态查询确认

具体命令如下:

./emqttd_ctl status

该命令在bin目录下。

浏览器访问确认

访问地址:http://39.97.125.79:18083

这里的IP地址,是我本地虚拟机中CentOS系统的IP地址,服务器部署在那台主机上,应该把IP地址换成对应主机的真实地址。

访问后会出现登陆界面,如下图所示:

输入用户名和密码,尝试是否能正常登陆。

  • 用户名:admin
  • 密码:public

登陆后如果出现下图的界面,则表示EMQ服务器已正常运行。

MQTT服务器安装完成,MQTT使用EMQX,STM32通过WIFI模块把数据上传MQTT服务器,然后小程序订阅STM32设备的主题,就可以获取STM32设备的数据,同样STM32可以订阅小程序的主题。

点击STM32智能家居小助手 - 古月居 可查看全文

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

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

相关文章

6_6_SQL

//名词 Candidate key:若表中记录的某一字段或字段组合能够唯一标志记录,则称该字段或字段组合为候选关键字 Primary key:若一个表有多个候选关键字,则选定其中一个为主关键字,也称为主键 Foreignkey:若某字段或字段组合不是数据库中A表的关键…

鼠标灵敏度怎么调,鼠标灵敏度怎么调最稳

鼠标和键盘是操作计算机过程中使用最频繁的设备之一,用电脑的时,我敢说你一定离不开鼠标。有些用户发现鼠标不太好用,尤其是在游戏时,总觉得鼠标移动太慢了。另外,如果你感觉鼠标按键失灵、鼠标单击变双击以及反应迟钝…

MySQL的存储引擎、索引与事务

常见的端口号 MySQL–3306http–80https–443tcp–23fcp–21tomcat–8080ssh–22oracle–1521rockermq–9876 存储引擎 使用指令查看所有引擎: show engines;从图中可以看出MySQL默认的存储引擎是InnoDB;并且在5.7版本所有的存储引擎中只有 InnoDB 是…

SpringBoot3整合RabbitMQ之四_发布订阅模型中的fanout模型

SpringBoot3整合RabbitMQ之四_发布订阅模型中的fanout模型 文章目录 SpringBoot3整合RabbitMQ之四_发布订阅模型中的fanout模型3. 发布/订阅模型之fanout模型1. 说明1. 消息发布者1. 创建工作队列的配置类2. 发布消费Controller 2. 消息消费者One3. 消息消费者Two4. 消息消费者…

如何在 Node.js 中使用 bcrypt 对密码进行哈希处理

在网页开发领域中,安全性至关重要,特别是涉及到用户凭据如密码时。在网页开发中至关重要的一个安全程序是密码哈希处理。 密码哈希处理确保明文密码在数据库受到攻击时也难以被攻击者找到。但并非所有的哈希方法都是一样的,这就是 bcrypt 突…

MySQL操作DML

目录 1.概述 2.插入 3.更新 4.删除 5.查询 6.小结 1.概述 数据库DML是数据库操作语言(Data Manipulation Language)的简称,主要用于对数据库中的数据进行增加、修改、删除等操作。它是SQL语言的一部分,用于实现对数据库中数…

无尽加班何时休--状态模式

1.1 加班,又是加班! 公司的项目很急,所以要求加班。经理把每个人每天的工作都排得满满的,说做完就可以回家,但是没有任何一个人可以在下班前完成的,基本都得加班,这就等于是自愿加班。我走时还有…

模块十 面向对象

模块十 重点 知道继承的好处会使用继承知道继承之后成员变量以及成员方法的访问特点会方法重写以及知道方法重写的使用场景会使用 this 关键字调用当前对象中的成员会使用super关键字调用父类中的成员会定义抽象类方法以及抽象类会重写抽象方法 第一章 继承 1.1 什么是继承 …

遥感影像处理利器:PyTorch框架下CNN-Transformer,地物分类、目标检测、语义分割和点云分类

目录 专题一 深度卷积网络知识详解 专题二 PyTorch应用与实践(遥感图像场景分类) 专题三 卷积神经网络实践与目标检测 专题四 卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】 专题五 Transformer与遥感影像目标检测 专题六 Transformer的遥…

Qt:窗口、按钮类、行编辑器、标签类

作业&#xff1a;QQ登录界面 mywidget.h #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> #include <QIcon> #include<QMovie> #include <QLabel> #include <QPushButton> #include <QLineEdit> class MyWidget : public QWid…

系统监测工具-tcpdump的使用

一个简单的tcpdump抓包过程。主要抓包观察三次握手&#xff0c;四次挥手的数据包 有两个程序&#xff1a;客户端和服务器两个程序 服务器端的ip地址使用的是回环地址127.0.0.1 端口号使用的是6000 tcpdump -i 指定用哪个网卡等&#xff0c;dstip地址端口指定抓取目的地址…

如何在 iPhone 15/14/13/12/11/XS/XR 上恢复误删除的短信?

无论你的iPhone功能多么强大&#xff0c;数据丢失的情况仍然时有发生&#xff0c;所以当你发现一些重要的消息有一天丢失了。别担心&#xff0c;让自己冷静下来&#xff0c;然后按照本页的方法轻松从 iPhone 中检索已删除的短信。 在这里&#xff0c;您需要奇客数据恢复iPhone…