亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 和 AC 设备 - 自动灯

组件和用品

Arduino UNO
× 1
节能灯
× 1
5v DC 适配器
× 1
跳线(通用)
× 1
中继(通用)
× 1
UTSOURCE 电子零件
× 1

必要的工具和机器

螺丝刀

应用和在线服务

Microsoft Visual Studio 2015
Arduino IDE

关于这个项目

智能家居灯

在这个项目中,我们将学习如何使用带有超声波传感器和 Arduino 的继电器使我们的家居灯(或任何设备)更智能。

我们的目标是让节能灯泡在您走出房间时关闭并在您回到房间时打开。这非常简单 实施并需要少量时间。

本教程假定基础 Arduino知识。如果您在很酷之前使用过 Arduino。

注意:本项目使用交流高压电源,如果您未满 16 岁或没有足够的经验,您必须有经验的人来帮助您处理交流部分。

但是,您可以使用在低电压下运行的直流设备来完成该项目,并将证明相同的概念。当它开始变得危险时,我会清楚地说明警告。

组件

1) Arduino Uno

2) 万用表

3) 跳线

4) 面包板

5) 真实模块

6) 用于 Arduino 的超声波传感器 (HC-SR04) 和超声波库您可以在此处找到它称为 (New Ping) 库,如果您是第一次为 Arduino 安装外部库,请查看此链接。

7) 直流电源(可选)

8) 螺丝刀(继电器模块+型)

9)节能灯泡及其安装和墙上插头(我用旧的无线电电源线来获得插头)。

我也用胶枪粘电线的末端,你应该用绝缘胶带。

10) 用于编写 Arduino 代码的 Visual Studio,想知道如何?检查此链接,它完全免费 或者您可以使用 Arduino IDE。

让我们开始吧。

准备超声波

首先,我们将知道如何将超声波传感器连接到如下图所示的 Arduino,稍后我们将描述如何测试超声波传感器。

继电器模块

然后我们将连接继电器模块的一个通道(因为我有 2 个通道),Vcc 引脚变为 5v,IN1 连接到 Arduino 引脚 8(或您选择的任何引脚)。

值得注意的是,我的继电器模块是低电平有效,要了解低电平有效和高电平有效之间的区别,请查看此链接。因此,在继续之前,您应该了解继电器的活动模式,为此您只需正常连接 Vcc 和 GND,然后将 IN 引脚连接到 5V,如果没有任何反应,则它处于低电平有效以确保将 IN 引脚连接到 GND。

然后准备将灯连接到墙上的插头上,继电器的一个端子将直接连接到插头,另一个端子在中间有一个切口,切口的一端将进入常开继电器模块中的引脚(NO1),另一个将连接到 COM1 引脚,然后是插头。

最终电路变成(灯被简化了:))

现在我们完成了硬件。

代码执行以下操作

  • 测量与超声波的距离
  • 检查是否有人从门口经过
  • 切换灯的状态

从超声波读取值

现在让我们试试超声波传感器,这是你图书馆的例子,它非常简单直接,因为它只是打印它读取的距离。

您可以使用(声纳是超声波实例名称)获取以厘米或英寸为单位的距离。

sonar.ping_cm();
// 或者
sonar.ping_inch();

正如我们所看到的,它还设置了超声波传感器的引脚和最大所需范围。

不幸的是,有时超声波传感器会时不时地读取错误的距离。

这可能会无意中打开和关闭灯,要解决这个问题,我们应该获得一些读数并选择它们的平均值,另一种解决方法是使用中值过滤器 它只是简单地获取一些读数,将它们排列在一个数组中,然后选择中间的值,这很酷,可以去除频繁出现的噪声。

幸运的是,NewPing 库在一个名为

的函数中实现了这个过滤器
sonar.ping_median(unsigned byte numReadings); 

您只需传递您想作为样本最大值 512 的读数,因为它们使用的是无符号字节 .

此函数返回回声用于反弹的时间,应将其转换为您使用的长度单位,这也可以在库中使用

轻松实现
sonar.convert_cm(unsigned int echoTime);
// 或
sonar.convert_in(unsigned int echoTime);

关于超声波的最后一个问题是,如果前面没有任何东西,它会读取 0 ,这可以通过告诉它如果读数为 0 将距离设置为 MAX_DISTANCE 来解决,最终读取传感器的代码变为 (距离是一个全局变量):

检测到某物已通过

现在让我们开始编码,要知道有人通过了超声波,必须读取临界距离,该距离可以是门宽度的一半。所以我们总是确定有人从门口经过。

我要记住的另一件事是光 当有东西经过超声波前面时切换,这意味着如果有人站在它前面不动,什么都不会发生。执行此操作的代码如下

恭喜!!你现在已经完成了,我将在我对库进行小的编辑时附加整个 Visual Studio 项目(使用动态内存分配而不是可变大小数组 - 因为 Visual Studio 不允许它们 - )并添加了一些文档。

在utsource.net上查看电子元件

尊重 这个项目如果你觉得有用,其他项目:

Arduino混色器

使用1Sheeld的遥控车

文章

使用 Visual Studio 开发 Arduino

代码

  • 智能家居灯
  • 超声波检测
智能家居灯Arduino
此代码从超声波中获取输入读数并相应地控制继电器
#define TRIGGER_PIN 12 // Arduino 引脚连接到超声波传感器上的触发引脚。#define ECHO_PIN 11 // Arduino 引脚连接到超声波传感器上的回波引脚.#define MAX_DISTANCE 200 // 我们想要 ping 的最大距离(以厘米为单位)。最大传感器距离为 400-500cm。 [这是一个任意数字]#define RELAY_LINE1_PIN 8#include "NewPing.h"NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // 引脚和最大距离的 NewPing 设置。unsigned int critical_distance_cms =50; // 灯光切换的截止距离 [这是一个任意数字]bool state =0;void setup() { Serial.begin(9600); // 以 115200 波特打开串行监视器以查看 ping 结果。 pinMode(RELAY_LINE1_PIN, OUTPUT);数字写入(RELAY_LINE1_PIN,高); // 关灯}void loop() { delay(50); // 在两次 ping 之间等待 50 毫秒(大约 20 次 ping/秒)。 29ms 应该是两次 ping 之间的最短延迟。无符号整数距离 =readDistance(); // 面向超声波传感器的任何物体的当前距离 Serial.print("Ultrasonic:");串行打印(距离); // 发送 ping,以厘米为单位获取距离并打印结果(0 =超出设置的距离范围) Serial.println("cm"); // 有人在门附近 if (distance  
超声波测试Arduino
使超声波打印其读取值的代码
// ----------------------------------- ----------------------------------------// 执行 ping 的 NewPing 库草图示例大约每秒 20 次。// ------------------------------------------ ---------------------------------#include #define TRIGGER_PIN 12 // Arduino 引脚绑定到超声波传感器上的触发引脚。#define ECHO_PIN 11 // Arduino 引脚连接到超声波传感器上的回声引脚。#define MAX_DISTANCE 200 // 我们想要 ping 的最大距离(以厘米为单位)。最大传感器距离额定为 400-500cm.NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // 引脚和最大距离的 NewPing 设置.void setup() { Serial.begin(115200); // 以 115200 波特打开串行监视器以查看 ping 结果。}void loop() { delay(50); // 在两次 ping 之间等待 50 毫秒(大约 20 次 ping/秒)。 29ms 应该是两次 ping 之间的最短延迟。 Serial.print("Ping:"); Serial.print(sonar.ping_cm()); // 发送 ping,以厘米为单位获取距离并打印结果(0 =超出设置的距离范围) Serial.println("cm");}
智能家居灯
这是带有编辑过的库的 Visual Studio 的完整项目 https://github.com/shakram02/Arduino_SmartHouseLights.git

示意图

这是描述整个项目的完整电路

制造工艺

  1. TinyML-Language Detector-基于 Edge Impulse &Arduino
  2. Arduino Gyroscope Game with MPU-6050
  3. Arduino 数字骰子
  4. 温湿度数据记录仪
  5. 带有 Arduino 的自动植物浇水系统
  6. 找到我
  7. 智能鞋(自动系带和发电)
  8. Sonar 使用 arduino 并在处理 IDE 上显示
  9. 生日快乐:灯光和声音
  10. 使用 Bolt 和 Arduino 控制 LED 亮度
  11. Arduino Audio Reactive Desk Light
  12. NeoMatrix Arduino Pong