欢迎来到厦门皓佑物联科技有限公司官方网站!
您的位置: 首页 - 新闻资讯 - 基于STM32设计智能家居控制系统(OneNet)

基于STM32设计智能家居控制系统(OneNet)

来源:新闻资讯 / 时间: 2024-11-23

1. 前言

随着科学技术的发展,人们的生活方式发生着巨大改变,基于物联网技术实现的智能家居使我们的生活变得更加方便快捷。本次设计结合现代生活的具体需求,设计出一套基于物联网技术的智能家居电子系统设计,可以远程实时查看家里光照强度、温湿度等信息,支持在云端控制家里的电器设备,实现远程控制。

2. 具体需求

主要实现对光照强度、温湿度等信息的实时监测,将相关信息、设备状态信息等实时显示,通过ESP8266wifi模块进行联网可实现远程数据传输,利用OneNET云平台,MQTT传输协议,编辑应用实现手机端和电脑端的远程控制显示,操作界面美观方便,便于使用。

硬件选项要求:

(1)ESP8266 串口WIFI,用来与OneNet进行远程通信。

(2)DHT11 温度传感器,检测本地环境的温度湿度信息。

(3)继电器,来模拟控制家里的电器。

(4)BH1750 光敏传感器,检测环境光强度

(5)MQ135 空气质量传感器。可以检测可燃气体、烟雾浓度,实现火警预警。

(6)OLED显示屏显示本地的传感器的参数情况,实时展示

3. 硬件选型

3.1 继电器

3.2 ESP8266 WIFI

(1)模块采用串口(LVTTL)与MCU(或其他串口设备)通信,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换 (2)模块支持LVTTL串口,兼容3.3V和5V单片机系统 (3)模块支持串口转WIFI STA、串口转AP和WIFI STA+WIFIAP的模式,从而快速构建串口-WIFI数据传输方案

3.3 MQ-135空气质量传感器

MQ135传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害的监测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。

3.4 DHT11温湿度传感器

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有可靠性与卓越的长期稳定性,成本低、相对湿度和温度测量、快响应、抗干扰能力强、信号传输距离长、数字信号输出、精确校准。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。可用于暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。

特点如下:

1、可以检测周围环境的湿度

2、可以检测周围环境的温度

3、湿度测量范围:20%-95%(0度-50度范围)湿度测量误差:±5%4、温度测量范围:o度-50度温度测量误差:±2度

4、工作电压3.3V-5V

5、输出形式数字输出

3.5 STM32系统板

主控CPU采用STM32F103RCT6,这颗芯片包括48 KB SRAM、256 KB Flash、2个基本定时器、4个通用定时器、2个高级定时器、51个通用IO口、5个串口、2个DMA控制器、3个SPI、2个I2C、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口,芯片属于大容量类型,配置较高,整体符合硬件选型设计。当前选择的这款开发板自带了一个1.4寸的TFT-LCD彩屏,可以显示当前传感器数据以及一些运行状态信息。

3.6 OLED显示屏

特点:

3.7 母对母杜邦线

3.8 BH1750光敏传感器

4. OneNet平台创建产品与设备

4.1 创建产品

(1)登录账号注册

官网: https://open.iot.10086.cn/

点击右上角控制台。

(2)选择旧版本控制台
(3)选择MQTT物联网套件
(4)创建产品

填写信息。

4.2 创建设备

(1) 添加设备

添加成功。

(2)添加数据流模板

接下来根据自己传感器需要上传的数据,添加对应的数据点。

添加完成。

4.3 软件模拟设备登录测试

(1)MQTT服务器地址信息

文档: https://open.iot.10086.cn/doc/v5/develop/detail/248

(2)生成登录密匙信息

查看MQTT登录报文需要填写的参数来源与格式。

文档: https://open.iot.10086.cn/doc/v5/develop/detail/265

算法介绍文档:https://open.iot.10086.cn/doc/v5/develop/detail/241

下载token生成工具。

工具软件里需要填写的参数如下:

【1】res选项参数的格式: products/{产品ID}/devices/{设备名称}

比如: 超时时间设置为2022-4-7,那么,这里填入的秒就是:1970-1-1到2022-4-7之间的秒单位时间。

【3】key的参数格式: 就是设备创建之后,在设备详情页的key

C语言获取秒单位时间的代码:

设备密匙查看:

生成登录密匙:

生成的数据就是MQTT服务器登录的密匙。

(3)主题订阅与发布的格式

文档地址:https://open.iot.10086.cn/doc/mqtt/book/device-develop/protocol.html

上传数据点的格式介绍:https://open.iot.10086.cn/doc/mqtt/book/example/datapoints.html

当前设备的主题订阅与主题发布总结:

(4)软件模拟登录测试

当前采用MQTT客户端模拟设备,登录Onetnet测试,完成数据交互,测试云端产品设备交互是否OK。

软件下载地址:https://download.csdn.net/download/xiaolong1126626497/18784012

根据软件提示,填充好参数,点击连接服务器,接着订阅主题,发送主题。

然后网页登录OneNet查看设备状态,与数据显示。

查看上传的数据。

(5)云端下发命令给设备

onenet支持以同步的形式发送命令给设备,方便控制设备。

发送命令的方法和设备应答的说明文档:https://open.iot.10086.cn/doc/v5/develop/detail/267

总结:

下面来实操演示一下过程:

登录OneNet官网,点开设备列表页面,先让设备登录服务器,点击更多操作,点击下发命令。

编辑好参数,点击发送。

这时MQTT设备端就会收到提示。

然后拼接好命令再发送应答给服务器。

网页上收到正确的响应。

4.4 创建web网页应用

(1)访问新版编辑器

地址:https://open.iot.10086.cn/develop/mqtts/product/#/app/independent?pid=501579

(2)新建项目

根据自己需求设计界面。

接下来需要绑定数据来源,可以显示设备上传的数据。

选中控件,再选择数据源。

点击管理数据源,添加新的数据源。

新增数据源。

注意:上面提示栏里的key从产品页面获取。

创建完之后,在将控件的数据源绑定起来。

然后接下来就继续创建每个仪表盘需要显示的数据源。

注意:为了让数据可以实时显示,这里获取数据点数要填1。

添加的数据源如下:

依次绑定每个仪表盘的数据源。

绑定两个开关的数据源。

每个开关可以向设备端发送命令,修改命令下发的格式。

这里的{V} 表示是一个变量,如果我设置成LED:{V} 那么就表示下发的命令就是LED:0或者是LED:1

表盘可以设置最大数值的范围。

(3)测试数据显示

整体界面已经设计完成,点击右上角的预览。

(4)发布页面

在数据可视化页面发布项目。

然后得到的链接,可以分享给其他人,直接浏览器打开就可以查看传感器数据了。

https://open.iot.10086.cn/view/main/index.html#/share2d?id=624f0a67bb4cd1003509e43b

5. STM32设备端代码

整个项目代码的下载地址: https://download.csdn.net/download/xiaolong1126626497/85588806

串口上会输出当前程序运行的状态信息,可以打开串口调试助手查看。

5.1 LCD汉字取模

LCD上需要显示汉字,使用点阵字模取模软件进行取模。

5.2 硬件连线

5.2 keil工程布局

5.3 main.c代码

相关产品

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部