智能家居自动化系统 - 电路和源代码
使用 Arduino 的智能家居自动化系统项目
自动化(如家庭自动化和工业自动化等)在当今世界变得很重要,因为它有助于以更少的人工协助和更智能的方式完成任务。如今,在自动化设备的帮助下,房屋变得更加智能和发展。家用电器正在使用遥控开关,而不是传统的开关。在当今世界,大多数人都可以使用智能手机,它的使用在我们的生活中变得非常流行和必不可少。我们可以用智能手机一键控制家电,一则消息。借助控制器和通信设备,可以远程控制家用电器。在这个项目中,我们将使用 Arduino UNO 板来开发智能家居自动化项目,该项目带有 HC-05 蓝牙模块,由智能手机远程控制。对于无法独立完成工作的瘫痪者来说,它真的很有帮助,这些设备可以成为这些人的一大帮助。
- 相关文章:基于语音识别的家庭自动化系统
需要的组件
- Arduino UNO
- HC-05 蓝牙模块
- 继电器
- 跳线
- 灯泡
- 蓝牙终端 HC-05 应用程序(从 Play 商店下载)
Arduino UNO
Arduino 是一个开源平台,用于开发电子项目。它可以随时轻松地进行编程、擦除和重新编程。市场上有许多 Arduino 板,如 Arduino UNO、Arduino Nano、Arduino Mega、Arduino lilypad 等,根据用途有不同的规格。在这个项目中,我们将使用 Arduino UNO 来自动控制家用电器。它上面有 ATmega328 微控制器 IC,以 16MHz 时钟速度运行。它功能强大,可以在 USART、I2C 和 SPI 通信协议上工作。该板通常使用微型 USB 电缆使用软件 Arduino IDE 进行编程。 ATmega328 带有预编程的板载引导加载程序,无需外部硬件帮助即可更轻松地上传代码。它在制作电子项目或产品方面有着广泛的应用。使用C和C++语言对板子进行编程,非常容易学习和使用。 Arduino IDE 使编程变得更加容易。它将代码分为两部分,即 void setup() 和 void loop()。函数 void setup() 只运行一次,主要用于启动某个进程,而 void loop() 包含应该连续执行的代码部分。
这个模型由6个模拟输入引脚和14个可用作输入输出的数字GPIO引脚组成,其中6个提供PWM输出和模拟使用pinMode(),digitalWrite( )、digitalRead() 和analogRead() 函数。 6 个模拟输入通道从引脚 A0 到 A5,提供 10 位分辨率。该板可以使用工作在 5 伏的 USB 电缆或工作在 7 到 20 伏之间的 DC 插孔供电。有一个板载电压调节器可产生 3.3 伏电压,用于运行低功率设备。由于 ATmega328 工作在 USART、SPI 和 I2C 通信协议上,有 0(Rx)和 1(Tx)引脚用于 USART 通信,SDA(A4)和 SCL(A5)引脚用于 I2C 和 SS(10),MOSI(11) , MISO (12) 和 SCK (13) 引脚用于 SPI 通信协议。这些规格使 Arduino Uno 板非常适合家庭自动化项目。
- 相关文章:使用 LDR 和 IC 4049 进行安全控制的电子眼电路
HC-05蓝牙模块
HC-05是一款用于无线通讯的蓝牙模块。它主要用于在微控制器、智能手机、计算机、传感器等之间建立串行双向无线通信。此蓝牙模块的范围小于 100 米,还取决于大气条件。它工作在 USART(通用同步异步收发器)协议上,可与其他设备进行通信。它可以在主模式和从模式下工作,支持的波特率 9600、19200、38400、57600、115200、230400 和 460800。默认情况下,它工作在从模式,并且可以使用 AT 命令配置主模式。它可用于从微控制器到任何设备和从设备到微控制器的双向传输数据。 HC-05蓝牙模块工作在命令模式和数据模式。命令模式用于使用一些 AT 命令访问 HC-05 的配置设置,数据模式用于串行发送数据。命令模式可以通过将“key”引脚接地并使用 AT 命令来访问,我们可以更改其设置。有 AT 指令可用于更改模块的名称、密码、波特率等。下面是几个AT指令:
- AT - 用于检查模块是否正在通信
- AT+NAME =hc-05 - 用于将设备名称更改为“hc-05”
- AT+PSWD =1234 - 用于将密码更改为 1234
- AT+UART =9600, 1, 0 – 用于将波特率更改为 9600,停止位更改为 1,奇偶校验位更改为 0。
相关项目:使用 LDR 的自动 LED 应急灯电路
HC-05 的引脚:
EN/Key pin :此引脚用于将蓝牙模块设置为命令模式 或数据模式 .通过将此引脚设置为高电平可以访问命令模式,将其设置为低电平可以访问数据模式。默认在数据模式下设置为低。
- VCC :这是连接到 5V 或 3.3V 的电源引脚。
- 接地 :这是蓝牙模块的接地引脚。
- TXD :此引脚用于数据的串行传输。
- RXD :此引脚用于串行接收数据。
- 状态 :此引脚指示模块是否与其他设备连接或断开连接。
固定在 HC-05 | 说明 |
EN/键 | 高 - 命令模式,低 - 数据模式 |
VCC | 3.3 V 至 5 V |
接地 | 地面 |
TXD | 发送串口数据 |
RXD | 接收串口数据 |
状态 | 显示模块是否连接 |
本项目中使用HC-05建立Arduino Uno和Smartphone之间的串行无线通信。这可以通过将 Hc-05 与 Arduino Uno 连接并在智能手机上安装应用程序来完成。尽管有多种应用程序可用于将智能手机连接到 HC-05。但这里我们将使用蓝牙终端 HC-05,它可以从 Play 商店下载。如电路图所示,将 HC-05 与 Arduino UNO 连接。 HC-05 的 TXD 引脚连接到 HC-05 的 RXD 引脚的 RX(引脚 0)连接到 Arduino Uno 的 TXD(引脚 1)。 EN/key 设置为 LOW。打开智能手机的蓝牙并搜索蓝牙设备。连接到名为“HC-05”的蓝牙设备。默认密码为“0000”或“1234”。
HC-05蓝牙模块内置红色LED指示连接状态。在任何连接之前,它会以某种周期性的方式连续闪烁,而在连接之后,它的闪烁速度会减慢。
- 相关项目:使用 555 定时器和 BC547 晶体管的简单触敏开关电路
HC-05蓝牙模块的应用:
- 计算机和外围设备
- GPS 接收器
- 工业控制
- 微控制器项目
中继
继电器是一种电磁开关,通过小电流操作来打开或关闭一个或多个更大的电路。它由一个电磁线圈组成,当一个小电流通过它时,它会转换成一个临时磁铁。相对较小的电流用于在带芯的线圈中产生磁场,并用于操作可以控制更大电流的开关。早期的继电器用于电报和电话交换机以放大信号。计算机发明后,继电器用于执行布尔和逻辑运算。继电器根据其在电路中的用途有不同的尺寸和品种。继电器的主要应用领域包括电机控制、汽车应用、工业应用、家庭自动化等。
在这个项目中,我们将使用电磁继电器来打开和关闭家用电器,如管灯、灯泡、风扇或我们家中的任何交流电源。来自 Arduino UNO 的直流信号。继电器有 6 个引脚,其中两个 VCC 和接地用于给继电器供电。一个引脚是数据引脚,用于从微控制器获取信号“1”或“0”。其他 3 针常闭 (NC)、通用、常开 (NO) 用于连接交流供电设备。该继电器在常开或常闭两种状态下工作:
常开:继电器激活时闭合电路,继电器停用时断开电路。
常闭:继电器开启时打开电路,继电器关闭时关闭电路。
- 相关项目:使用 Arduino 和 LDR 的自动夜灯
继电器引脚:
继电器引脚 | 说明 |
VCC | 5V |
接地 | 接地 |
数据引脚 | 来自微控制器的“1”或“0” |
NC | 常闭电路 |
COM | 普通 |
否 | 常开电路 |
继电器的应用:
- 继电器用于提供安全关键逻辑。
- 它们用于控制带有小电压信号的高压电路。
- 继电器也用于保护目的。
- 从一个点到另一个点供电时,变电站和电网中会使用继电器。
相关项目:使用 LDR 的自动路灯控制系统
电路图
电路使用Arduino、蓝牙、继电器和LED设计。我们已将蓝牙与 Arduino 串行连接。继电器用于操作家用电器。我们为四个电器使用了四个继电器。您可以更改继电器的编号以相应地操作各种家用电器。在转向硬件时,LED 将被灯泡取代。
控制家电的命令将通过“蓝牙终端HC-05 app”发送 从您的智能手机到蓝牙,连接到 Arduino。然后 Arduino 读取串行到蓝牙的数据。因此,动作是根据从蓝牙到 Arduino 的命令执行的。
- 相关项目:使用 IC 4017 和 555 定时器的交通灯控制电子项目
基于 Arduino 的家庭自动化的工作
按照电路图中给定的方式连接家庭自动化项目。首先,我们将灯泡与交流电源和电路图中给出的继电器连接起来。然后继电器从 Arduino Uno 板获得直流电源。继电器的数据引脚在引脚 8、9、10 和 11 处连接到 Arduino,它们是 Arduino 的输出引脚。然后如图所示将 HC-05 模块与 Arduino 板连接,并为 Adruino 板供电。使用 Arduino IDE 上传项目末尾给出的代码。打开智能手机中的蓝牙并输入密码连接 HC-05 模块。默认情况下,密码为“0000”或“1234”。成功连接智能手机与 HC-05 后,打开“智能手机中的蓝牙终端 HC-05 应用程序 ”,它将显示您的设备已连接到 HC-05。现在发送数据“Bulb1 打开”或“Bulb2 关闭”以打开或关闭任何灯泡。这样你就可以远程控制家里的灯了。
- 相关项目:使用 555 定时器的拍子开关电路电子项目
项目代码
#include
整数灯泡1 =8;
整数灯泡2 =9;
整数灯泡3 =10;
整数灯泡4 =11;
SoftwareSerial bt(0,1); /* (Rx,Tx) */
字符串str;
void setup() {
bt.begin(9600);
Serial.begin(9600);
pinMode(bulb1,OUTPUT);
pinMode(bulb2,OUTPUT);
pinMode(bulb3,OUTPUT);
pinMode(bulb4,OUTPUT);
}
无效循环(){
if (bt.available())
{
str =bt.read();
Serial.println(str);
//bulb1
if(str ==”bulb1 on”)
{
digitalWrite(bulb1,HIGH);
Serial.println(“BUlB 1 开启”);
}
否则(str==”bulb1 off”)
{
digitalWrite(bulb1,LOW);
Serial.println(“BUlB 1 关闭”);
}
else
{
digitalWrite(bulb1,LOW);
}
//bulb2
if(str==”bulb2 on”)
{
digitalWrite(bulb2,HIGH);
Serial.println(“BUlB 2 开启”);
}
else if(str==”bulb2 off”)
{
digitalWrite(bulb2,LOW);
Serial.println(“BUlB 2 关闭”);
}
else
{
digitalWrite(bulb2, LOW);
}
////bulb3
if(str==”bulb3 on”)
{
digitalWrite(bulb3,HIGH);
Serial.println(“BUlB 3 开启”);
}
else if(str==”bulb3 off”)
{
digitalWrite(bulb3,LOW);
Serial.println(“BUlB 3 关闭”);
}
else
{
digitalWrite(bulb3,LOW);
}
//bulb4
if(str==”bulb4 on”)
{
digitalWrite (bulb4,HIGH);
Serial.println(“BUlB 4 开启”);
}
else if(str==”bulb4 off”)
{
digitalWrite(bulb4,LOW);
Serial.println(“BUlB 4 关闭”);
}
其他
{
digitalWrite(bulb4,LOW);
}
}
}
编程代码说明
包含项目所需的库,导入SoftwareSerial.h库与蓝牙模块HC-05进行串口通信。
#include
声明 Arduino 输出引脚 8、9、10 和 11 的变量,分别连接到四个继电器的数据引脚。变量字符串“str”存储我们使用 HC-05 蓝牙模块从智能手机获取的数据。
intbulb1 =8;
intbulb2 =9;
int bulb3 =10;
int bulb4 =11;
String str;
pinMode(bulb1,OUTPUT);
pinMode(bulb2,OUTPUT);
pinMode(bulb3,OUTPUT);
pinMode(bulb4,OUTPUT);
Bluetooth serial communication and serial monitor are initiated at 9600 baud rate.
bt.begin(9600);
Serial.begin(9600);
If the data got from the smartphone using Bluetooth Module HC-05 is “bulb1 on” then we turn on the bulb 1 by setting data pin of the relay as HIGH. If data is “bulb1 off” then we turn off the bulb by setting the data pin of the relay as LOW. If no data received for bulb 1 then we set our bulb 1 to LOW. The same thing is done for bulb 2, bulb 3, bulb 4.
if(str==”bulb1 on”)
{
digitalWrite(bulb1,HIGH);
Serial.println(“BUlB 1 is ON”);
}
else if(str==”bulb1 off”)
{
digitalWrite(bulb1,LOW);
Serial.println(“BUlB 1 is OFF”);
}
else
{
digitalWrite(bulb1,LOW);
}
Hence, you can control any home appliance in your home by using Arduino UNO, Bluetooth, and relay. We have also provided the technical information for the components required for constructing this project. The circuit diagram consists of LEDs which will be replaced by the AC bulbs used in the home.
Related Projects:
- Automatic Plant Watering &Irrigation System – Circuit, Code &Project Report
- Rain Alarm Circuit – Snow, Water and Rain Detector Project
- Water Level Indicator Circuit Diagram- Two Simple Projects
- More Electrical &Electronics Engineering Projects
工业技术