2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

=======================================================================

1.系统概述


本项目旨在基于Arduino和树莓派,模拟开发一个简易的家用智能晾衣杆。在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。首先是自动模式下,在自动模式中,用户无需对晾衣杆进行操作。晾衣杆可以根据对当前光照的强度进行检测,来判断外边是否天气晴朗。同时,晾衣杆将检测外界的湿度,来检测外界是否下雨。

总结四大状况如下:

1.当外界光照亮,且没有下雨时,晾衣杆将会自动晒出;

2.当外界光照亮,但是下雨了,晾衣杆将会自动收回;

3.当外界光照暗,但是没下雨时,晾衣杆将会收回;

4.当外界光照暗,同时下雨了,晾衣杆将会收回;

在手动模式下,晾衣杆不再自动感应外界状况。用户可以通过按钮来使晾衣杆晒出和收回。

同时,在个人小屋中,增设了天气预报功能,显示屏将会把最近的天气实时显示出来,来方便用户进行判断。

综上,本系统的主要功能是:

1.晾衣杆自动感应天气

2.晾衣杆手动控制

3.天气预报

2.设计思路


(1)家用智能晾衣杆软硬件设计:

在这里插入图片描述

在这里插入图片描述

(2)家用智能晾衣杆流程图:

在这里插入图片描述

3.设计草图


房屋模型屋顶设计图

在这里插入图片描述

房屋模型大体设计图

在这里插入图片描述

衣物设计图

在这里插入图片描述

三、硬件设计

=======================================================================

1.硬件模块介绍


(1)SSD1306 OLED 显示模块:

在这里插入图片描述

端口连接:

在这里插入图片描述

功能:用于显示天气状况和风力大小。

(2)光敏传感器模块:

在这里插入图片描述

端口连接:

在这里插入图片描述

功能:用于检测房屋外光线强度,来决定晾衣杆的收回和晒出。

(3)雨滴传感器模块:

在这里插入图片描述

端口连接:

在这里插入图片描述

功能:用于检测房屋外是否下雨,来决定晾衣杆的收回和晒出。

(4)按钮:

在这里插入图片描述

连接:通过检测输出引脚的电压来检测线路连接和断开。

功能:用于切换晾衣杆的工作模式和控制晾衣杆的晒出和收回。

(5)舵机:

在这里插入图片描述

端口连接:

在这里插入图片描述

功能:用于控制晾衣杆的转动。

2.硬件系统的Fritzing模型图


在这里插入图片描述

四、软件设计

=======================================================================

软件设计对应系统主要的3个功能进行设计。分别是:晾衣杆自动感应,晾衣杆手动切换和天气预报。

1.晾衣杆自动感应


利用光敏传感器和雨滴传感器来检测外界光照和湿度。当外界光照亮度达标,并且没有下雨时,程序会控制舵机旋转,从而使晾衣杆晒出。

在这里插入图片描述

代码实现:

设置变量L表示检测亮度,变量R表示检测雨滴。当外界亮度超过160且雨滴值为0时,模拟了晴天下天黑的情况,晾衣杆自动收衣服;


  pinMode(A0,INPUT);

  pinMode(pinBtn,INPUT);

  pinMode(A1,INPUT);

  pinMode(pinBtn2,INPUT);



  int L = analogRead(A0); //L表示亮度

  int rainfall = analogRead(A1); //降水量



L和rainfall接收亮度和降水量信息。


#include <Servo.h>

Servo yj;



Servo是一个舵机驱动库,可以创建一个舵机对象。


  yj.attach(7);   //舵机7号引脚



attach(pin)方法可以绑定舵机和引脚。


  if(L>160 || rainfall <= 40){

    yj.write(15);   //天黑收衣服(舵机转到0度)

  }

  else{

    yj.write(105);  //天亮晒衣服(舵机转到90度)

  }



判断亮度和降水量后,write(tangle)方法可以将舵机旋转到需要的角度。

2.晾衣杆手动切换


利用按钮来实现退出和进入循环,从而实现自动和手动的切换。

在这里插入图片描述

代码实现:

tsLastReport变量实现每一秒中对心率和血氧进行一次采样,使用到了MAX30100Lib库中PulseOximeter类实例对象的getHeartRate和getSpo2方法分别获取心率和血氧数据。


  if(digitalRead(pinBtn)==HIGH){

    yj.write(15);   //强制收回

    delay(1000);

    while(1){

      if(digitalRead(pinBtn2)==HIGH){   //再次按下脱离强制收回

        break;

      }

    }



当强制收回按钮按下后,自动收回,并进入循环。

取消收回按钮后,根据环境自动调节舵机。

3. 天气预报


在这里插入图片描述

Python:

requests:

在这里插入图片描述

此处的respsonse=requests.get(url)方法,可以从url的目标网址得到一个响应,用result=response.json()的方法可以将json格式的数据转换成字典,最后用daily提取出需要的信息,url的接口可以参看心知天气的API。

serial:

在这里插入图片描述

serial是python的串口通讯库。

其中ser = serial.Serial(‘/dev/ttyACM0’,9600)查看树莓派接口得知串口为‘/dev/ttyACM0’,并设置传输速率为9600。ser.write(string),该方法可以向串口传递字符串数据,但接收时是单字节的,需要在arduino循环相加。

Arduino:

在这里插入图片描述

<Adafruit_SSD1306.h>:

该库依赖于<SPI.h><Wire.h><Adafruit_GFX.h>,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。

在这里插入图片描述

初始化屏幕

在这里插入图片描述

使用全局变量weather数组提取出字符串里的天气信息数据格式为

[a:b :c:d:e:f:],其中a、b和d、e为今天和明天的日夜间天气,c、f为风速等级。

天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。

在这里插入图片描述


display.clearDisplay()清楚屏幕缓存的信息;



**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/5db4b1cdc9b558560b7e10082983c6f2.png)
![img](https://img-blog.csdnimg.cn/img_convert/c36965f6ebed8fbf5b472f9ddc3fb295.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54i4ICDniLg=,size_20,color_FFFFFF,t_70,g_se,x_16)



display.clearDisplay()清楚屏幕缓存的信息;

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
[外链图片转存中…(img-J6VQJAzv-1715664213394)]
[外链图片转存中…(img-Lxyfu8Vh-1715664213395)]

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值