毕业设计 基于Arduino的智能移动保湿器

news/2024/11/16 14:37:20/

0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 基于Arduino的智能移动保湿器

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 选题指导, 项目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md

1 简介

基于Arduino开发板的智能移动保湿器,可以实时检测室内温湿度的变化并显示。该保湿器可根据检测到的室内湿度与设定值(该阈值可修改)进行比较,自动启动加湿操作并提示,相比以往的家用保湿器,实现了智能化。还具有移动避障等功能。而传统的保湿器基本上都是固定式的,这样只能在局部进行加湿,而对于室内整体的湿度上却没有改善,即容易造成局部湿度过高,且其它区域干燥无变化,因而,移动避障的设计克服了该缺点,具有更好的适应性。同时二次开发性强,还可以集成多种功能。目前市场上暂无该类产品,所以可以增加类似扫地机器人的清扫功能,向家用服务机器人迈进一步。

2 主要器件

  • Arduino开发板

  • SDAH01温湿度传感器

  • Mini空气加湿与继电器模块

  • LCD1602显示屏

  • L298N驱动模块与直流电机

  • 红外与超声避障模块

  • 实时检测室内温湿度的变化并显示

  • 根据检测到的室内湿度与设定值(该阈值可修改)进行比较,自动启动加湿操作

  • 具有移动避障等功能,而传统的保湿器基本上都是固定式的

3 实现效果

4 设计原理

硬件设计

主控制器:Arduino开发板

该开发板有数字、模拟输入输出接口以及支持I2C,串行等多种通讯模式,本次设计开发板由9V镍氢电池供电,采用I2C协议与温湿度传感器通讯,并通过数字模拟检测控制其余各模块。

环境检测传感器

IDT公司的SDAH01温湿度传感器,具有±1.5%的相对湿度 (RH) 精度误差,快速 RH 响应时间,0.01% RH的分辨率以及平均1.0μA的低功耗;

在这里插入图片描述

Mini空气加湿与继电器模块

专用微孔雾化片和振荡电路组成加湿模块,采用5V直流供电,为了保证驱动功率,由Arduino的5V电源供电并由数字I/O给继电器信号从而实现对加湿模块的控制。

在这里插入图片描述

LCD1602显示屏

实时显示温湿度变化,并通过电位器调节背光亮度;

在这里插入图片描述

L298N驱动模块与直流电机

L298N模块可隔离控制部分与驱动电路,且L298N驱动能力远高于Arduino,驱动模块使用9V镍氢电池直接供电,Arduino只需输出PWM脉冲信号到L298N驱动模块中,从而实现对移动速度的无级调节,最终达到移动加湿,保持室内湿度均匀的目的。

红外与超声避障模块

在物体进入红外光电开关与超声测距模块的检测范围内时,可以输出数字(红外)与模拟信号(超声)到Arduino中,进行条件判断并输出相应的控制信号到电机驱动电路中,例如控制电机的转向,实现避障功能。

在这里插入图片描述

相关原理图

在这里插入图片描述

软件设计

本项目采用Arduino自带IDE进行编程,C语言编程;

程序运行流程

1. 超声及红外避障检测;

2. 若障碍物进入避障范围内时,执行避障操作,停止并根据不同方位传感器的输入信号可进行停止,后退,左转或直接向左后方及右后方转向;

3. 同步进行温湿度检测及保湿操作,通过I2C协议读取传感器的温湿度值,并把该值通过LCD1602进行显示,同时把湿度值与预先设定的30%RH进行比较,若当前室内湿度值小于湿度值,则给继电器输出信号,启动振荡器进行加湿操作

4. 程序结束,循环执行。

5 部分核心代码

#include#includeLiquidCrystal lcd(12, 11, 10, 13, 8, 7);//设置LCD1602接口#define ADDRESS_HUMIDITY 0x44//定义温湿度传感器高低位变量byte humidity_high = 0;byte humidity_low = 0;byte tempature_high = 0;byte tempature_low = 0;int humidity_temp,tempature_temp;double humidity,tempature;//定义振荡加湿器控制输出int humidifer=1;//定义控制电机的PWM脉冲输出int INA = 3;int INB = 5;int INC = 6;int IND = 9;//定义超声测距的控制接口const int TrigPin = 2;const int EchoPin = 4;double distance;//定义电机初始速度int low_motor_speed=80;int high_motor_speed=160;int motor_speed=100;//定义红外光电传感器输入接口int left_infrared_detect=A0;int right_infrared_detect=A1;int left_infrared=0;int right_infrared=0; //程序初始化void setup() {pinMode(INA,OUTPUT);pinMode(INB,OUTPUT);pinMode(INC,OUTPUT);pinMode(IND,OUTPUT);pinMode(humidifer,OUTPUT);pinMode(TrigPin, OUTPUT);// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态pinMode(EchoPin, INPUT);Wire.begin();lcd.begin(16,2);lcd.clear(); //清屏delay(500); //延时1000ms}void loop() {//超声传感器检测// 产生一个10us的高脉冲去触发TrigPindigitalWrite(TrigPin, LOW);delayMicroseconds(2);digitalWrite(TrigPin, HIGH);delayMicroseconds(10);digitalWrite(TrigPin, LOW);// 检测脉冲宽度,并计算出距离//delayMicroseconds(2);distance = pulseIn(EchoPin, HIGH) / 58.00;//检测到避障传感器输入,进行避障动作if(infrared()){stopmove();if(left_infrared<100&&right_infrared>900){negative_left();delay(500);}else if(left_infrared>900&&right_infrared<100){negative_right();delay(500);}    else {negative();delay(1000);left();delay(500);}}else if(distance<12){negative();delay(500);left();delay(500);}elsepositive();//调用温湿度检测显示函数HUMIDITY();}void positive()//前进{digitalWrite(INA,LOW);analogWrite(INB,motor_speed);analogWrite(INC,motor_speed);digitalWrite(IND,LOW);}void negative()//后退{analogWrite(INA,motor_speed);digitalWrite(INB,LOW);digitalWrite(INC,LOW);analogWrite(IND,motor_speed);}void right()//右转{digitalWrite(INA,LOW);analogWrite(INB,motor_speed);digitalWrite(INC,LOW);digitalWrite(IND,LOW);}void left()//左转{digitalWrite(INA,LOW);digitalWrite(INB,LOW);analogWrite(INC,motor_speed);digitalWrite(IND,LOW);}void stopmove()//停止{digitalWrite(INA,LOW);digitalWrite(INB,LOW);digitalWrite(INC,LOW);digitalWrite(IND,LOW);}void negative_left()//向左后方倒退{analogWrite(INA,low_motor_speed);digitalWrite(INB,LOW);digitalWrite(INC,LOW);analogWrite(IND,high_motor_speed);}void negative_right()//向右后方倒退{analogWrite(INA,high_motor_speed);digitalWrite(INB,LOW);digitalWrite(INC,LOW);analogWrite(IND,low_motor_speed);}void HUMIDITY()//温湿度检测{//HS300x传感器与Arduino通过I2C协议通讯Wire.beginTransmission(ADDRESS_HUMIDITY); Wire.endTransmission(); delay(200);Wire.requestFrom(ADDRESS_HUMIDITY,20);humidity_high = Wire.read();humidity_low = Wire.read();tempature_high = Wire.read();tempature_low = Wire.read();//数据转换humidity_temp=((humidity_high<<8)|humidity_low)&0x3fff;tempature_temp=((tempature_high<<6)|tempature_low>>2)&0xfffc;humidity=humidity_temp/(pow(2,14)-1)*100.0*10;tempature=(tempature_temp/(pow(2,14)-1)*165-40)*10;//LCD1602屏显示温湿度lcd.setCursor(0, 0) ;   //设置光标位置为第1行第1个位置lcd.print("IDT Humi=");lcd.print((int)humidity/10);//显示整数部分lcd.print(".");lcd.print((int)humidity%10);//显示小数部分lcd.print("%RH");lcd.setCursor(0, 1) ;lcd.print("IDT Temp=");lcd.print((int)tempature/10);//显示整数部分lcd.print(".");lcd.print((int)tempature%10);//显示小数部分lcd.print((char)223);lcd.print("C");if(humidity<300)digitalWrite(humidifer,LOW);elsedigitalWrite(humidifer,HIGH);}int infrared()//红外光电检测{left_infrared=analogRead(left_infrared_detect);right_infrared=analogRead(right_infrared_detect);if(left_infrared<100||right_infrared<100)return 1;elsereturn 0;}

最后


http://www.ppmy.cn/news/188160.html

相关文章

全球与中国医院床垫市场深度研究分析报告

【报告篇幅】&#xff1a;95 【报告图表数】&#xff1a;136 【报告出版时间】&#xff1a;2022年1月 2021年全球医院床垫市场销售额达到了 亿美元&#xff0c;预计2028年将达到 亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为 %&#xff08;2022-2028&…

今天,滴滴被爆亏损109亿,需裁员2000多人,哪些员工会被裁掉?

全世界只有3.14 % 的人关注了 数据与算法之美 近日&#xff0c;一份滴滴出行内部流传出来的财务数据显示&#xff0c;该公司2018年持续巨额亏损&#xff0c;全年亏损高达109亿元人民币。 若消息属实&#xff0c;那将说明&#xff0c;自2012年滴滴成立以来就一直处于亏损状态&am…

用esp8266+DHT11实现小爱同学查看家中温湿度

接着上一次做的小爱同学脱离局域网控制三路开关&#xff0c;我还找到另外一个好玩的项目&#xff0c;&#xff0c;接下来我讲解一下项目过程 用到的东西和上一次差不多&#xff0c;有esp8266nodemcu、点灯科技app、Arduino IDE&#xff0c;但是还需加上一个DHT11模块 如果是直…

滴滴服务器不稳定,“滴滴崩了”登上热搜!是什么原因导致滴滴崩了呢?

原标题&#xff1a;“滴滴崩了”登上热搜&#xff01;是什么原因导致滴滴崩了呢&#xff1f; 前几天&#xff0c;不少网友反馈滴滴崩了&#xff0c;出现打不了车、发布的行程也看不见、司机接到人后开启不了订单、司机无法结束订单等多种异常情况。 因此&#xff0c;很多人都发…

滴滴打车的创新性

现如今&#xff0c;完成了品牌迭代的“滴滴出行”正变成创业者的梦魇&#xff0c;恐惧是唯一比死亡还可怕的东西&#xff0c;爱拼车和考拉班车就是吓死而不是战死&#xff0c;但平台化的滴滴真那么吓人吗&#xff1f; 归纳起来&#xff0c;滴滴的优势不外三点&#xff1a; 首…

滴滴裁员2000多人,去年亏损超百亿

作者 | 非主流 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 据多家媒体的消息&#xff0c;在今天&#xff08;1 月 15 日&#xff09;上午的月度全员会上&#xff0c;滴滴 CEO 程维宣布公司将做好过冬准备&#xff0c;2019年会聚焦当前最重要的出行主业&#xff…

滴滴打的架构

LBS的瓶颈和方案 先看看基本的系统模型&#xff0c;如图1所示。 图1 系统模型示意图 司机每隔几秒钟上报一次经纬度&#xff0c;存储在MongoDB里&#xff1b;乘客发单时&#xff0c;通过MongoDB圈选出附近司机&#xff1b;将订单通过长连接服务推送给司机&#xff1b;司机接单…

“花小猪”,滴滴搬起石头砸自己的脚?

养成习惯&#xff0c;先赞后看&#xff01;&#xff01; 目录 1.花小猪与滴滴1.1公司高层1.2 短信提示1.3 界面1.4资金链 2.运营模式2.1计价模式2.2市场范围2.3受众群体2.3.1用户2.3.1.1羊毛党2.3.1.2各种补贴 2.3.2司机2.3.2.1收入多变2.3.2.2门槛极低 3.真相真的就是如此吗&…