基于单片机的智能温控风扇设计

目 录

摘 要 1
ABSTRACT 2
1 绪论 3
1.1 研究背景与目的 3
1.2 智能风扇的意义 4
1.3 国内外的研究现状 4
1.4 设计的要求 5
2 系统的总体设计 5
2.1 智能风扇总体的设计 5
2.2 方案选择 6
2.2.1 单片机的选择 6
2.2.2 温湿度传感器的选择 7
2.2.3 电机的控制模块的选择 8
2.2.4 无线通信协议 8
2.2.5 云平台技术 9
2.2.6 Web前端以及springboot 9
2.2.7 开发工具的选择 10
3 系统硬件设计 10
3.1 单片机模块 10
3.2 电源模块 11
3.3 温湿度监测模块 11
3.4 电机驱动模块 12
3.5 通信模块的设计 12
3.6 系统核心模块程序设计 13
4 系统程序的设计 13
4.1 主程序设计 13
4.2 温湿度程序的编写 15
4.3 电机控制程序的编写 16
4.4 循环程序的编写 18
4.5 前端显示页面和后台程序的编写 19
5 测试 20
5.1 系统软硬件测试 20
5.2 测试过程 20
5.3 测试结果 21
6 结论 22
致 谢 24
参考文献 25
附 录 27

该智能风扇监控平台设计利用学习到的模拟电路技术,数字电路技术,C语言编程,嵌入式开发等课程知识为基础来完成设计与实现。设计主体构成部分包含;功能电路模块包括温湿度传感器模块、电机驱动模块。该智能风扇监控平台实现的功能包括实时监测基站环境的温湿度、管理人员在浏览器中打开指定的网页来远程监控基站的环境数据,并且可以在远端点击相应的按钮驱动风扇进行对环境的降温。

2 系统的总体设计
2.1 智能风扇总体的设计
该系统监控平台的设计与实现是基于物联网云平台技术的智能风扇监控平台,在对通信公司基站机柜环境考察,和相应的工作人员了解基站工作情况监管的问题,以及经过对成本和实现功能的诸多考量下,对系统进行了整体的设计。基于单片机的智能温控风扇设计以ESP8266单片机为控制核心,DHT11温湿度传感器来完成对基站温湿度等信息的采集工作,以及通过控制L298N电机控制模块驱动电机来完成对环境温度的降低。硬件系统在运行过程中收集到的温湿度信息返回给集成ESP8266WIFI模块中的开发板中,开发板将采集到的温湿度传感器器及对风扇的控制信息上传至中国移动的ONENET平台中。云平台起到中继的作用,转换为json的数据格式,将温湿度的信息显示在前端网页上,让管理人员直观地观察到机房的环境状况,从而使基站环境管理智能化、一体化、可视化。系统设计的整体框架如图2.1所示。

在这里插入图片描述
图2.1系统整体设计框架图

#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <PubSubClient.h>
#include <Thread.h>
#include "DHT.h"
#define DHTTYPE    DHT11     // DHT 11
#define DHTPIN  13  //温湿度传感器引脚
int fanPinA = 5; //风扇引脚
int fanPinB = 4; //风扇引脚
int fanEN = 14; //风扇调速引脚

DHT dht(DHTPIN, DHTTYPE);//生成DHT对象

const char* ssid = "vaemc";  //实验设置的wifi账号
const char* password = "1224657851"; //实验设置的wifi密码
#define IP  "183.230.40.39" //onenet 服务器地址
#define MQTT_PORT 6002 //端口
#define PRODUCT_ID    "504033" //产品ID
#define DEVICE_ID    "925008178" //设备ID
#define API_KEY    "ftIhdxf7isMavNvYVn1D=O6TLfA=" //API_KEY
#define HOST  "api.heclouds.com" //上传数据流的地址

Thread myThread = Thread();

WiFiClient espClient; //WIFI客户端对象

PubSubClient client(espClient); //定义MQTT客户端
HTTPClient http; //http请求对象
String readString;
//用来处理服务器下发的信息的指令的函数
void callback(char *topic, byte * payload, unsigned int length) {
  String str = "";
  for (int i = 0; i < length; i++) {
    str += (char) payload[i];
  }
  Serial.print(str);  //发送控制的命令到UNO
  //将控制指令进行输出到
  readString = str;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值