Arduino-Remote控制家庭自动化

Arduino-Remote控制家庭自动化

在这个项目中,我们将向您展示如何使用电视遥控器控制家用电器。同样的原则也适用于办公室和其他行业。

该项目涉及四家家电的自动化,如管灯,风扇,灯泡,以及电视。自动化它们,必须使用四个继电器。下面提供的电路旨在切换继电器。但是为了自动化和控制家用电器,您必须具有将它们连接到交换机的基本思想,并且必须在远程故障的情况下了解该怎么办。我们的文章家庭自动化总机会让你对这个问题有个清晰的认识。

有关家庭自动化的其他文章也已发表。你也可以参考他们并尝试一下。

参考:基于Arduino和GSM模块的家庭自动化使用AVR和Android应用程序的蓝牙家庭自动化

一个Arduino Nano.在项目中使用,因为它的大小很小,不需要任何外部程序员。如果您是Arduino的专业人士,您可以根据自己的选择使用其他Arduino。根据遥控器上按下的按钮Arduino控制继电器。Arduino连接一个3针传感器TSOP 1838T,读取信号并发送给Arduino。Arduino解码信号,并相应地打开和关闭设备。

这个项目不是很容易,但是你可以很容易地做,因为PCB是在EAGLE上设计的,所以你只需要打印PCB。

家庭遥控系统PCB

遥控房屋PCB

IR远程控制家庭自动化-使用的组件

组件 规范 数量
arduino. 纳米 1
DC适配器 12伏 1
红外传感器 TSOP 1838吨 1
中继 12伏 4.
晶体管 BC547 4.
电阻 10k. 4.
电阻 330欧姆 4.
领导 红色的 4.
指示灯 240伏 4.

工作

在该项目中,Arduino使用作为控制单元。TSOP 1838T传感器用于从遥控器接收信号。传感器的输出引脚连接到Arduino,当按下任何遥控器的按钮时,Remote的IR LED发送唯一的编码信号,该信号由传感器接收并发送到Arduino,Arduino解码信号并打开根据信号关闭灯。12伏继电器用于切换设备。

TSOP 1838

TSOP 1838在家庭自动化中连接

这是一个红外传感器,接收红外遥控信号。该传感器有三个引脚,第一个是Vcc,第二个是GND,第三个是OUT;传感器的工作电压为3.7 ~ 5伏。

中继

与继电器的家庭自动化连接

在该项目中,用于切换家用电器的A12电压继电器。它可以容纳7AMP电流。晶体管用于切换继电器,并且二极管平行于继电器连接,但是在反向偏压中,用于限制反向电流。

你可能会发现这个有用的 -中继工作

晶体管

使用红外遥控的家庭自动化电路

Arduino可以操作LED和蜂鸣器等小电流组件,但继电器需要大电流(100 mA到250mA)来切换电器。因此,晶体管被用来开关继电器。晶体管的发射极引脚连接GND,集电极引脚连接继电器的线圈引脚,Arduino通过一个电阻对晶体管的基脚发出信号。当Arduino集电极和发射极的基脚逻辑HIGH短路时,电流通过继电器线圈。现在线圈通电,继电器接通。

红外遥控家庭自动化电路

线路图

使用IR遥控器的家庭自动化
使用IR遥控器的家庭自动化

在电路传感器的输出引脚连接到Arduino的D12引脚,剩余的传感器引脚连接到VCC和GND。

A2,A3,A4和A5引脚的Arduino连接到晶体管的底销通过10K欧姆电阻。发射器销连接到GND和集电极销连接到继电器的线圈销。继电器的其他引脚连接到12伏。

电器通过继电器的C(常见)和否(常开)引脚连接到电源。

远程控制家庭自动化

视频演示

附加库

在上传代码之前,将Remote的IR Remote的库附加到Arduino,因为这是以下步骤

  1. 下载图书馆在这里
  2. 提取zip文件
  3. 复制内部文件夹并粘贴到libraries文件夹。
  4. 关闭Arduino IDE并重新打开。
  5. 检查示例中的新库。

远程代码

远程发送唯一的编码信号,所以首先我们需要根据开关识别代码,所以按照这些步骤。

  1. 按电路图做一个电路。
  2. 将代码1上传到Arduino。
  3. 打开串口监视器。
  4. 设置“波特率9600”。
  5. 按下遥控器按钮,记录串口显示器的数值。
  6. 仔细检查值并忽略“FFFFFFFF”代码。

现在我们有了所有按钮的代码,所以我们可以为家用电器Arduino编程。

编程

我们拥有所有开关代码,用于上传主代码按照以下步骤操作。

  1. 打开代码2.
  2. 选择任意四个按钮来操作电器。
  3. Go Line 42的Code2。
  4. 复制yyyyyyy的交换机的任何代码值和粘贴瞬间
  5. 对第43、44和45行执行此操作,并选择不同的开关代码。

代码

本项目使用两个代码,第一个用于读取Switch代码的值,第二个是主代码。

code1:

程序读取值的开关代码-下载

在code1中,IR Remote的第一个头文件(IRremote.h)被声明。下一行函数“IRrecv IRrecv(12)”用于声明Arduino的引脚,该引脚与IR传感器相连。在此之后,一个“decode_result results”函数用于解码交换码。

在“void Setup”中“Serial.Begin(9600)”用于启用串行监视器。在此之后,用于启用IR传感器的“Irrecv.EnableIrin”。

在void循环中,使用了一个“if Condition”,当遥控器的任何按钮被按下时,它变成真。然后将结果的十六进制值打印在串行监视器上。毕竟“irrecv.resume()”恢复了红外传感器。

Code2:

主要代码,下载

Code2的许多功能类似于代码,因此我们不会讨论相同的功能

从第6行到第9行,四个整数被命名为lig1、lig2、lig3和lig4,它们用于表示引脚。

在此之后,由名称Flag1,Flag2,Flag3和Flag4声明四个整数;所有标志都用于存储输出引脚的状态。之后,由名称值声明的无符号整数。

在“void setup()”中,首先启用First IR传感器。在它之后,所有引脚Lig1,Lig2,Lig3,Lig4和D13声明为输出。

在Void循环中使用“如果条件”,在按下任何开关时变为真,现在已解码值在整数“值”中保存。在此之后,IR传感器恢复。在第34,35和36和36上,电路板LED接通100毫秒。

在第38行中,“如果条件”用于比较来自遥控器的保存值和值。当变为真时,FLAG1被反转('0'to'1'和'1'到'0'),并且Arduino的相应引脚开启并关闭。在此之后,值变为零。在39,40和41线中使用的这种方法用于切换其他引脚。

作者

3.评论

  1. Ashad扎卡里亚正在搜索

    8通道??????的代码如何修改

  2. it4ubd

    你好,

    我想用arduino做一个数字铝箔打印机!有人能帮我开始这个项目吗?
    我已经有热转印头了。!
    有人做过这类项目吗。
    请与我联系。

    谢谢你

  3. Mark Glickman博士

    似乎是LED连接方式的错误。两个LED连接到相同的电线。

    另外,BC547是一个不好的继电器晶体管。它是用于音频应用程序的。它可能很快就会失败。更好的选择是2N2222或功率晶体管。