当前位置: 首页 > news >正文

基于Arduino的环境监测装置

基于Arduino的环境监测装置

  • 引言
  • 痛点
  • 功能
  • 前期准备
    • 软件
    • 硬件
  • 项目开发
    • 硬件开发
    • 软件开发
  • 功能演示
  • 更多精彩,欢迎关注

引言

本项目使用机智云Gokit2.0开发板,实现基于Arduino的环境监测装置,解决目前大多数人对环境数据要求逐渐增高的痛点。

痛点

  1. 环境数据可检测
  2. 温湿度可智能调控
  3. 人起床自动开灯
  4. 按下开关调控屋内设备

功能

  1. 当温度超过20°C后,风扇打开一档;当温度超过30°C后,风扇打开二档。温度低于20°C,风扇自动关闭。
  2. 实时检测温湿度传感器、红外人体检测传感器等数据,并通过串口发送出来进行数据显示。
  3. 红外人体检测传感器实时检测是否有人起床,有人则打开白灯。
  4. 按下按键一,打开白灯;按下按键二,打开风扇。

前期准备

软件

  1. Arduino IED
  2. 串口调试助手

硬件

机智云Gokit2.0开发板(Arduino)

项目开发

硬件开发

软件开发

  1. 首先申明引用的头文件
    #include <Gizwits.h>
    #include <Wire.h>
    #include <SoftwareSerial.h>
    #include <DHT.h>
    #include <ChainableLED.h>
    #include <MsTimer2.h>

  2. 根据电路图,定义温湿度传感器、按键1、按键2、RGB灯、红外传感器和电机的管脚。
    #define Infrared_PIN 2 ///< 红外IO管脚
    #define DHTPIN 3 ///< 温湿度IO管脚
    #define MOTOR_PINA 4 ///< 电机IO管脚
    #define MOTOR_PINB 5 ///< 电机IO管脚
    #define KEY1 6 ///< 按键IO管脚
    #define KEY2 7 ///< 按键IO管脚
    //温湿度功能值定义
    #define DHTTYPE DHT11
    //电机功能值定义
    #define MOTOR_MAX 100
    #define MOTOR_MAX1 -100
    #define MOTOR_MIN 0
    #define MOTOR_16
    DHT dht(DHTPIN, DHTTYPE);
    ChainableLED leds(A5, A4, 1);
    SoftwareSerial mySerial(0, 1); // A2 -> RX, A3 -> TX

  3. 编写温湿度读取功能函数
    void DHT11_Read_Data(unsigned char * temperature, unsigned char * humidity)
    {
    *temperature = (unsigned char)dht.readTemperature();
    *humidity = (unsigned char)dht.readHumidity();
    return;
    }

  4. 编写电机控制功能程序
    void Motor_status(long motor_speed)
    {
    unsigned char Temp_motor_speed = 0;
    if (motor_speed == 0) //停止
    {
    digitalWrite(MOTOR_PINA, LOW);
    }
    if (motor_speed > 0) //正转
    {
    Temp_motor_speed = (motor_speed - 0) * 51;
    if (Temp_motor_speed > 255) Temp_motor_speed = 255;
    digitalWrite(MOTOR_PINA, LOW);
    analogWrite( MOTOR_PINB, Temp_motor_speed);
    }
    if (motor_speed < 0) //反转
    {
    Temp_motor_speed = 255 - (0 - motor_speed) * 51; //Temp_motor_speed = (255 ‐ (5 + motor_speed))* 51;
    if (Temp_motor_speed > 255) Temp_motor_speed = 255;
    digitalWrite(MOTOR_PINA, HIGH);
    analogWrite( MOTOR_PINB, Temp_motor_speed );
    }
    }

  5. 编写RGB灯功能程序
    void LED_RGB_Control(byte red, byte green, byte blue)
    {
    leds.setColorRGB(0, red, green, blue);
    }

  6. 声明温湿度暂存变量
    unsigned char temperature_buf=0;
    unsigned char humidity_buf=0;

  7. 在初始化程序中,定义串口波特率,初始化RGB,定义GPIO。
    mySerial.begin(115200);
    leds.init();
    digitalWrite(A0, HIGH);//使能RGB LED
    pinMode(KEY1, INPUT_PULLUP); //KEY1 上拉输入
    pinMode(KEY2, INPUT_PULLUP); //KEY2 上拉输入
    LED_RGB_Control(0,0,0);

  8. 在主循环中,首先检测温湿度值,并将温湿度传感器的值进行显示。当温度超过20°C后,风扇打开一档;当温度超过30°C后,风扇打开二档。温度低于20°C,风扇自动关闭。
    DHT11_Read_Data(&temperature_buf, &humidity_buf);
    if(temperature_buf>20)
    {
    Motor_status(1);
    }
    else if(temperature_buf>30)
    {
    Motor_status(2);
    }
    else
    {
    Motor_status(0);
    }
    mySerial.println(“temperature:”);
    mySerial.println(temperature_buf, DEC);
    mySerial.println(“humidity:”);
    mySerial.println(humidity_buf, DEC);
    按下按键一,打开白灯;按下按键二,打开风扇。
    if(digitalRead(KEY1) == LOW)
    {
    LED_RGB_Control(255,255,255);
    mySerial.println(“open led!”);
    }
    else if(digitalRead(KEY2) == LOW)
    {
    Motor_status(1);
    mySerial.println(“open fan!”);
    }

  9. 检测红外人体检测传感器是否有人,有人则打开白灯,没人则关闭。并通过串口发送出来。
    if (digitalRead(Infrared_PIN))
    {
    mySerial.println(“No one appears and disappears!”);
    LED_RGB_Control(0,0,0);
    }
    else
    {
    LED_RGB_Control(255,255,255);
    mySerial.println(“Someone is appearing!”);
    }

功能演示



在这里插入图片描述

更多精彩,欢迎关注

抖音号:《物联网知识》

公众号:《物联网知识》

B站:《跋扈洋》

CSDN:《跋扈洋》

相关文章:

基于Arduino的环境监测装置

基于Arduino的环境监测装置 引言痛点功能前期准备软件硬件 项目开发硬件开发软件开发 功能演示更多精彩&#xff0c;欢迎关注 引言 本项目使用机智云Gokit2.0开发板&#xff0c;实现基于Arduino的环境监测装置&#xff0c;解决目前大多数人对环境数据要求逐渐增高的痛点。 痛…...

深度学习:模型攻击(Model Attack)详解

模型攻击&#xff08;Model Attack&#xff09;详解 模型攻击通常指在机器学习和人工智能领域中&#xff0c;故意设计的行为或方法&#xff0c;旨在操纵或欺骗机器学习模型的输出。这类攻击可能导致模型做出错误的决策或泄露敏感信息&#xff0c;对于安全性至关重要的应用&…...

CesiumLab介绍

软考鸭小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 CesiumLab是一个围绕Cesium平台设计的完整易用的数据预处理工具集&#xff0c;它旨在最大化提升三维数据可视化效率。本文将详细介绍CesiumLab的安装、主要功能…...

PyQt 入门教程(3)基础知识 | 3.2、加载资源文件

文章目录 一、加载资源文件1、PyQt5加载资源文件2、PyQt6加载资源文件 一、加载资源文件 常见的资源文件有图像与图标&#xff0c;下面分别介绍下加载资源文件的常用方法 1、PyQt5加载资源文件 2、PyQt6加载资源文件 PyQt6版本暂时没有提供pyrcc工具&#xff0c;下面介绍下在不…...

老照片修复工作流教程:用 ComfyUI 轻松还原历史记忆

你是否有过这样的遗憾&#xff1f; 那些珍贵的老照片因为时间的流逝&#xff0c;早已失去了当年的色彩&#xff0c;变得模糊、褪色&#xff0c;甚至破损&#xff1f; 今天带你了解如何使用 ComfyUI 的老照片修复工作流&#xff0c;通过简单的几步操作&#xff0c;在短短十几秒…...

ESP-IDF Blink实例学习

文章目录 一、引言二、工程创建1、打开vscode点击ESP-IDF资源管理器2、选择ESP-IDF框架3、选择Show Examples4、选择blink5、点击Create project using example blink ,选择创建目录6、创建完成 三、硬件电路LED管脚分配四、修改menuconfig五、编译和下载运行 一、引言 Blink实…...

QT QML 练习8-Simple Transformations

简单的转换&#xff08;Simple Transformations&#xff09; 转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移&#xff0c;旋转&#xff0c;缩放。下面我们将讲解这些简单的操作和一些更高级的用法。 我们先从一个简单的转换开始。用下面的场景作为我们学习的开始…...

低空产业园搭建技术详解

低空产业园的搭建技术是一个复杂而系统的工程&#xff0c;涉及多个方面的技术和策略。以下是对低空产业园搭建技术的详细解析&#xff1a; 一、规划与设计 1. 总体规划&#xff1a;低空产业园的规划需要结合地方经济发展、产业基础、政策导向等因素&#xff0c;制定科学合理的…...

Python网络爬虫从入门到实战

目录 引言 一、网络爬虫的概念 二、 网络爬虫的基本工作流程 &#xff08;一&#xff09;过程&#xff1a; &#xff08;二&#xff09;安装requests模块和beautifulsoup4模块 &#xff08;三&#xff09;requests库的使用 1、requests库的基本介绍 2、导入requests库的…...

探索Theine:Python中的AI缓存新贵

文章目录 探索Theine&#xff1a;Python中的AI缓存新贵背景&#xff1a;为何选择Theine&#xff1f;Theine是什么&#xff1f;如何安装Theine&#xff1f;简单的库函数使用方法场景应用场景一&#xff1a;Web应用缓存场景二&#xff1a;分布式系统中的数据共享场景三&#xff1…...

js拼图(神鹰黑手哥)

直接上代码 再解释 这是最终效果图 css代码如下 * {margin: 0;padding: 0;}body {height: 800px;width: 100%;background-color: blanchedalmond;display: flex;justify-content: space-around;align-items: center;position: relative;}.img-box {display: flex;flex-wrap: w…...

值得推荐的五款数据恢复工具!!

当谈及我们日常工作生活中无法避免的数据丢失情况时&#xff0c;很多小伙伴一定急得如热锅上的蚂蚁&#xff0c;无助与忐忑。特别是现在社会&#xff0c;信息量庞大&#xff0c;一旦电脑上的重要数据不慎丢失&#xff0c;无论是工作文件、生活照片还是珍贵的视频&#xff0c;都…...

股票金融市场中的tick,分钟,日线数据

在金融市场中&#xff0c;股票数据的分析对于投资者来说至关重要。股票数据可以根据时间粒度的不同&#xff0c;分为几种不同的类型&#xff0c;包括Tick数据、分钟数据和日线数据。下面将详细介绍这些数据类型&#xff0c;并对比它们之间的差别。 Tick数据 Tick数据&#xf…...

OKG Research:如何衡量链上数据的开放价值?

在新加坡Token2049期间&#xff0c;欧科云链研究院受邀参加Bloomberg主办的企业另类资产投资峰会2024&#xff0c;与多位专家围绕未来数据形态与前景进行了深入交流。 活动后&#xff0c;欧科云链研究院负责人Lola Wang与资深研究员Jason Jiang在大公网发表署名文章《如何衡量…...

向日葵下载教程以及三款远程控制工具推荐!!!

向日葵远程控制下载教程&#xff01;&#xff01; 亲爱的朋友们&#xff0c;如果你对远程控制软件有所需求&#xff0c;那么向日葵绝对是一个不错的选择。现在我将带你走一遍向日葵的下载流程。 1. 打开你的浏览器&#xff0c;输入“向日葵官方网站”&#xff0c;进入官方网站…...

Studio One 6中文版及最新功能介绍 Studio One 6音乐软件安装包

Studio One 6是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;专为音乐制作和录音而设计。它提供了从初学者到专业人士的所有需求&#xff0c;无论是创作、录音、混音还是母带处理。 Studio One 6拥有直观的界面和强大的虚拟乐器、插件和音频处理工具&a…...

【数据结构】栈和队列 + 经典算法题

目录 前言 一、栈 二、栈的实现 三、栈的循环遍历演示 四、栈的算法题 // 一、队列 二、队列的实现 三、使用演示 四、队列的算法题 总结 前言 本文完整实现了栈和队列的数据结构&#xff0c;以及栈和队列的一些经典算法题&#xff0c;让我们更加清楚了解这两种数据…...

C# 基于winform 使用NI-VISA USB口远程控制电源 万用表

1.下载完整版本NI-VISA NI-VISA Download - NI *注意支持的操作系统&#xff0c;以便后期编译 安装完成之后&#xff0c;打开NI MAX&#xff0c;插上usb口&#xff0c;打开测试面板进行通信 2.编程示例 见本地文件夹C:\Users\Public\Documents\National Instruments\NI-VIS…...

Python设计方差分析实验

前言 方差分析(ANOVA)是一种用于检测多个样本均值之间差异的统计方法,广泛应用于实验设计与数据分析中。通过分析不同因素对实验结果的影响,方差分析能够帮助评估哪些因素显著影响了实验结果,并且可以提供各因素交互作用的深入理解。在多因子实验设计中,随机化、重复和平…...

【Oracle DB故障分享】分享一次由于SGA设置太小导致的DP备份失败

List item 今天给客户做Oracle例行数据库健康巡检&#xff0c;过程中检出一些备份异常&#xff0c;分享如下。 排查问题&#xff1a; 打开DP备份软件&#xff0c;随即弹出如下提示&#xff1a; 登录DP&#xff0c;查看备份情况&#xff1a;发现从10/6开始&#xff0c;DP备份…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...