使用Arduino MEGA智能窗户控制系统
这是一个智能窗户的开窗系统,能够定时开关窗,根据外部环境自动调节,外部环境的参数主要有:温度,湿度,空气污染指数,是否下雨。
思维流程图
根据系统的功能,确定传感器,单片机的选型。
思维导图
代码
/*实验内容:智能窗户系统作者:红石榴汽水儿时间:20-7-20,20-7-22,20-9-23
*/
/*20-7-22,程序更加模块化,注意程序的结构,循环有序,输出也更加简洁明了,增加蓝牙模块
*/#include <Arduino.h>
#include <MQ135.h> //烟雾传感器
#include <dht11.h> //温湿度
#include "DS1302.h" //时钟模块
#include <Servo.h> //舵机
#include <String.h>#include <LiquidCrystal.h>//LCD液晶屏#define DHT11_PIN 4 //温湿度传感器
#define MQ_PIN A3 //定义烟雾传感器端口
#define PIR_PIN 3 //红外检测端口,中断引脚
#define WATER_PIN A2 //雨滴传感器数据引脚WATER_PIN
#define WINDOW_UP_BUTTON 9 //手动控制窗户开关的按钮
#define WINDOW_DOWN_BUTTON 10#define SwitchB_D12PIN 12 //手动模式切换按钮 为12
unsigned int LED=8; //手动模式指示灯 为13//boolean buttonUP=true; //flag 之前被按下过为trueServo myservo; //舵机
dht11 DHT11; //温湿度传感器函数
MQ135 gasSensor = MQ135(MQ_PIN); //定义烟雾传感器的函数
LiquidCrystal lcd(22,24,26,28,30,32);//LCD1602的引脚,rs,en,d4,d5,d6,d7//电机的驱动设置
const int MOTOR1_DirPin=44; //电机旋转方向,高电平逆时针,低电平顺时针
const int MOTOR1_StepPin=46; //步进
const int MOTOR1_EnPin=48; //使能引脚
const int MOTOR1_STEP_PER_REV=200; //全步进旋转一周
//电机二
const int MOTOR2_DirPin=45; //电机旋转方向,高电平逆时针,低电平顺时针
const int MOTOR2_StepPin=47 ; //步进
const int MOTOR2_EnPin=49; //使能引脚
const int MOTOR2_STEP_PER_REV=200; //全步进旋转一周unsigned int MQflag,Pirflag,Dhtflag,Timeflag,Motorflag=0,Waterflag,Runflag=0; //变量标志,窗户开始处于关闭状态
unsigned int waterflag=800;
unsigned int motorSpeed=1000; //电机的运转速度float ppmflag=400; //空气质量标准
float humflag=90, tempflag_1=10,tempflag_2=38; //空气湿度的临界值,温度的临界值
float rzero,ppm,temp,hum;unsigned int water;//变量
unsigned char Alarm_Hour=7; //定时
unsigned char Alarm_Minute=30;
unsigned char hour,minute;
bool Always=false;
String comdata;
unsigned int comdata_clock_hour;
unsigned int comdata_clock_min;
unsigned char BUTTONState;//舵机角度参数
unsigned int frist_pos=0;
unsigned int final_pos=180;void Display_RTCC();
void Display_Begin();
void Display_HC08();
void Init();
void Choose();
void Motor_run();
void Motor_CLOCK();
void Motor_ANTICLOCK();
void Motor_STOP();
void sensor_Time();
void sensor_DHT11();
void sensor_MQ135();
void sensor_Water();
void sensor_Pir();
void Scan_Input();
void Set_Time(String &command);
void help();void setup() { Serial.begin(9600); //设置波特率;Serial3.begin(9600);Serial.print("Temp Test Code:");Serial.println("OK ");Serial.println("Intelligence Window");//时钟初始化DS1302_Init(); delay(200);DS1302_GetTime(&DS1302Buffer);/*舵机初始化*/myservo.attach(50);myservo.write(frist_pos);delay(20);/*LCD1602模块初始化*/lcd.clear();lcd.begin(16,2); //屏幕的高度和宽度lcd.setCursor(0,0); lcd.print("Intelligent");lcd.setCursor(0,1);lcd.print("Window System ");for(int i=0;i<3;i++){lcd.setCursor(14,0);lcd.print(i);delay(1000);}lcd.clear();delay(20);
写代码及调试过程
中间真的出现过很多问题,让我意识到了电器基本元件的重要性。写代码的过程,基本就是边写边调试的过程,其实对于我一个小白来说,还是有点问题的。
最后,作为一个新手写代码,中间会有很多问题,希望能够多多交流。
如果想要代码,评论区留言即可。
使用Arduino MEGA智能窗户控制系统相关推荐
- 51单片机WIFI手机APP智能窗户窗帘控制系统手动自动定时
实践制作DIY- GC0045(2)-WIFI手机APP智能窗户窗帘控制系统 一.功能说明: 基于51单片机设计-WIFI手机APP智能窗户窗帘控制系统 功能介绍: STC89C52(AT89C52) ...
- 51单片机手动自动智能窗户窗帘控制系统手动自动定时
实践制作DIY- GC0045-智能窗户窗帘控制系统 一.功能说明: 基于51单片机设计-智能窗户窗帘控制系统 二.功能介绍: STC89C52(AT89C52)系列最小系统板+5VUSB电源+ULN ...
- 基于Arduino的智能家居系统设计
基于Arduino的智能家居系统设计 一.设计要求 1.利用DHT11温湿度检测模块和光敏电阻采集环境温度.湿度和光强信息: 2.通过Arduino开发板对DS1302时钟模块进行初始设置,并每隔一定 ...
- 基于Arduino的智能泡茶机(1)——机械系机械创新比赛总结技术点与不足处
1.智能泡茶机项目需求 1.1.目标项目需求(总体:机械结构+电控) 机械为主.电控为辅. 突出机械部分创新点. 项目主要机械部分需要ANSYS有限元分析. 符合时代智能家居的理念. 1.2.作品完成 ...
- arduino灯光装置_基于Arduino的智能家居灯控系统设计
&能应用 ------ T X 阵 W S 2 8 1 2 全 彩 灯 带 R X 工 G N D r 0 引言 智能家居的概念虽然已经有了几十年,但进入我国并取 得一定发展还是最近几年的事, ...
- 机智云AIoT+arduino单片机+智能家居系统及安防控制
摘要:提出了一种基于机智云物联网云平台和Arduino单片机控制的智能家居安防系统设计模式,主要研究智能家居系统在无线组网技术和下位机子系统的软硬件功能,经过理论验证.仿真实验.电路搭建到智能家居模型 ...
- PCB 零件尺寸图:Arduino Mega 2560 尺寸
Arduino Mega 2560 尺寸图
- knx智能照明控制系统电路图_咻享智能|智能家居照明控制系统的功能特点
当下提倡节能环保,而智能家居照明控制系统很好地顺应了这一概念.不仅如此,可自动调节的灯光亮度还给用户带来最舒适.健康的照明环境.如此智能的照明系统,我们不妨往下多了解一些! 智能家居照明控制系统简介 ...
- Arduino MEGA 2560找不到驱动怎么办
刚买了Arduino MEGA 2560(比Arduino UNO稍微高级一点的板子),按照视频一步一步操作(似乎插板子也不太一样,不管他,能插上去就完事了),但是到了代码烧录的时候,点击Tools- ...
最新文章
- resultset需要关闭吗_微信视频号能关闭吗?怎么操作?3秒教你搞定
- 运行第一个 docker image 并在浏览器中查看
- dababase 差异
- sublime不认识python_Python3小白入门 Sublime Text3
- 三道简单算法题(二)
- 编译GDAL支持ArcObjects
- LeetCode 56. 合并区间(合并区间+排序)
- 强悍的 vim —— 可视模式(visual mode)
- 3.1 API : DecisionTreeClassifier、DecisionTreeRegressor
- 2019年华南理工大学程序设计竞赛(春季赛)-H-Parco_Love_GCD
- python办公软件教程书籍_针对office办公软件初学者有什么推荐书籍?
- python 在图片的指定位置添加文字及图片
- 计算机键盘指示灯不亮也不启动不了,终于明白电脑开机黑屏鼠标键盘灯不亮
- 蜡笔小新模拟器汉化版_蜡笔小新历险记PC电脑版-蜡笔小新历险记电脑版下载v1.12.20 官方最新版-西西软件下载...
- 生成对抗网络训练_生成对抗网络
- [Tips]Ubuntu20.04域名解析失败或网速很慢
- CoherenceModel官网翻译
- java统计词频算法_Java实现的词频统计——功能改进
- 简单描述 MySQL 的 IOPS、QPS、TPS含义
- 国家2020年区划数据爬取
热门文章
- innerText textContent innerHTML
- 关于css的position属性的描述
- 反向题在测试问卷信效度_人格测验正反向题目的时间效应
- Magic Battery for Mac(苹果设备电池查看)v7.0
- 金仓数据库KingbaseES数据库参考手册(服务器配置参数4. 连接和认证)
- PostgreSQL服务器管理:从源代码安装
- html编辑转码,4种方法实现Html转码
- 投影仪参数哪些最重要?什么品牌投影仪好
- 测试员工作三年后的工资对比,没达到这个数的都属于拖后腿了
- Word怎么插入艺术字