亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

自制基于Arduino的低成本即插即用房间自动化装置

发布时间:2021-07-08
分享到:

自制基于Arduino的低成本即插即用房间自动化装置

发布时间:2021-07-08
分享到:

有很多人都在努力制作各种diy项目满足他们日常需求。一个主要的例子就是房间自动化。尽管许多房间自动化设置的成本要高一点,但我们不能让它便宜一点。我们不能使用 Arduino 的初学者工具包吗?我的回答是“是的,有可能!”

补给品

  • Arduino 或任何其他微控制器
  • 带电机驱动的步进电机
  • 伺服电机
  • 螺丝杆(直径:8mm & 长度:取决于你)带铜螺母
  • 耦合器(8mm * 5mm)
  • 外部电源(可选)
  • 纸板或泡沫板
  • 红外接收器和遥控器
  • 电线

第 1 步:如何控制开关?
通常他们中的许多人更喜欢使用继电器来控制哪些处理您房屋的内部电路。如果您不擅长处理它,请避免使用它!

为了使这个项目简单而不同,我使用了 3D 打印中使用的核心组件之一。这就是线性执行器。这里我们的线性执行器将控制伺服电机的垂直运动,而伺服电机用于打开和关闭开关。

例如:- 打开灯

  • 我们必须找到步进电机必须旋转多少才能到达开关。
  • 我们必须设置伺服必须转动多少才能打开开关的值。
  • 几秒钟的延迟后,我们必须将伺服器设置回其初始位置。
  • 步进电机必须返回到它来自的位置(-旋转)。

根据这些条件,我们的程序如下所示:

if(lights="on"){
myStepper.set(Rotate);// How much the stepper motor has to turn to reach the switch?
myservo.write();//How much the servo has to turn in order to turn on the switch?
delay(1000);// Wait 1 second
myservo.write();// Set servo to initial position
myStepper.set(-Rotate);// Stepper motor turns back to initial position
}

补充说明:

即使步进电机运动准确,它也无法知道它旋转了多少,因为如果发生电源故障,它不会回到其初始位置并将当前点视为初始位置。
为了解决这个问题,我们必须添加另一个 3D 打印机的核心组件,称为限位开关。由于用线材DIY限位开关很容易,所以没去买!

如果你想添加一个 DIY 限位开关,那么你可以删除上面提到的这段代码。因为程序是以这样一种方式创建的,即在发出命令后,步进电机必须返回其初始位置。

myStepper.set(-Rotate);// Stepper motor turns back to initial position

第 2 步:构建和测试

在这里制作这个模型总是取决于你如何控制你的开关。

就我而言,首先我必须剪掉将安装到配电盘的布局。

然后我不得不粘上步进电机和一个由纸板制成的小支架,以将螺杆保持在适当的位置。

由于步进电机和螺杆的直径不同,我不得不在耦合器的帮助下将它们连接在一起。

之后,我必须为我们的伺服电机创建一个支架,它连接到铜螺母(图 4)。

由于我们的伺服支架自由移动很重要,因此我不得不使用铁杆添加支撑结构。

毕竟,我不得不添加我的 DIY 限位开关,它将位于顶部。当放置在伺服支架铜螺母上的电线接触到这个限位开关时,步进电机就会关闭。

补充说明

  • 请确保您制作的结构足够坚固,尤其是放置伺服电机的支架。如果它不是那么强大,它可能不会给你预期的正确结果!
  • 还要确保伺服和开关之间留有一个小间隙。这将确保平稳移动。
  • 在测试您时,人们可能会发现即使伺服电机旋转,它也可能只能完美地执行一个命令,否则它不会执行任何操作,如下面的视频所示。所以有时你可能需要对喇叭本身进行一些调整。(不知道喇叭是什么意思?点击这里!

第 3 步:最后进行编程

在制作和测试您的模型之后,是时候无线控制它了。由于 Arduino UNO 初学者套件提供了一个 IR 接收器和一个遥控器,我们的路径是完美的。但是,如果您没有它,则完全不必担心。因为这只是一个开始。他们有很多方法可以修改这个项目。所以请继续关注!

如果你想要代码,请点击这里!(链接到 Arduino 网络编辑器)

由于我是 Arduino 编程的初学者,我试图使这段代码尽可能简单,以便您能够理解我所写的内容。

补充说明:

让我们将整个代码分为两部分:步进初始位置和红外遥控

步进器初始位置

在 Void Loop 中,我从 If 条件开始,该条件表明步进电机将顺时针旋转,直到它从我们的 DIY 限位开关接收到 HIGH 信号。(使用步骤 2 中提到的 DIY 限位开关的原因)。

红外遥控

例如

如果我们的 IR 接收器接收到“0xEF807F”信号并且我们的 Switch1 处于“关闭”状态,那么我们的步进电机必须采取 -21000 步才能到达 Switch1 并且伺服必须旋转 30 度才能打开开关,并且延迟 1.5几秒钟后,我们的伺服系统将移动到其初始位置,并说明 Switch1 已“打开”。如果我们的 IR 接收器再次接收到“0xEF807F”信号并且 Switch1 处于“on”状态,那么我们的步进电机必须采取 -21000 步才能到达开关,并且伺服必须旋转 180 度以关闭开关,并且延迟 1.5几秒钟我们的伺服器将移动到其初始位置并声明 Switch1 处于“关闭”状态。

同样的条件也适用于所有交换机。

在这里,我们没有将步进电机向后旋转,因为当 Switch 外壳破裂时,我们的 DIY 限位开关将具有“低”值,这会使步进电机向后旋转。因此,我们将遇到一个问题,即我们一次只能发送 1 个 IR 信号。为了发送另一个信号,您必须等到伺服支架到达其初始位置。

下面是一些工作视频。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论