对GSM模块
我们将使用的GSM模块SIM800L。紧凑和高效相比其他GSM模块。这种类型的模块使用的是当你想使用一个Arduino蜂窝网络。SIM800L支持quadband 850/900/1800/1900MH的频率。通过使用这个模块可以很容易地传输语音、发送短信和上网。
当你打开这个模块与3.8 - -4.2伏特的电源LED出现在董事会将开始闪烁。如果是闪烁的非常快,这意味着SIM没有注册任何网络。如果是慢慢地闪烁那么SIM已经成功地登录到网络。确保你的电源至少2这个模块消耗大量的电力。
SIM800L销图

SIM800L的特点
- 输入电压:3.8 - -4.2 v
- 当前操作:2
- 操作温度:-40到85摄氏度
- 四波段850/900/1800/1900MHz
- GPRS类12:max。85.6 kbps(下行和上行)
- 接口:UART使用命令
- SIM卡类型:MicroSIM
这个项目所需的组件
- Arduino UNO
- SIM800L模块
- 4.2 v锂离子电池
- 5 v继电器模块
- 设备
工作的项目
我们将使用我们的手机GSM模块发送消息。这一信息将包含一个字母。假设您有一个设备,那么我们将有一个字母打开设备和一个字母关掉设备。让我们假设我们寄一个字母“a”打开设备和一个字母“b”关掉设备。你的设备是通过继电器连接到Arduino电路板。Arduino将持续监控的数据来自于GSM模块。如果GSM模块接收一条消息,其中包含字母“a”然后Arduino将打开设备通过发送一个信号继电器模块。如果GSM模块接收一条消息,其中包含字母“b”然后Arduino关掉电器通过发送一个信号继电器模块。
框图

家庭自动化线路图

为家庭自动化Arduino代码
重要提示:上传代码Arduino UNO董事会之前,确保你有断开的RX和TX线GSM模块。后上传的代码Arduino UNO板连接RX和RX pf GSM模块连接到Arduino UNO董事会。
int appliance1 = 2;char gsmData;无效的设置(){/ /把你设置代码,运行一次:Serial.begin (115200);延迟(25000);pinMode (appliance1、输出);并同时在+ CMGF = 1 \ r);延迟(100);并“在+ CNMI = 2, 2, 0, 0, 0 \ r”);延迟(100);digitalWrite (appliance1、高); } void loop() { // put your main code here, to run repeatedly: if(Serial.available()>0) { gsmData=Serial.read(); if(gsmData=='a') { digitalWrite(appliance1,LOW); } else if(gsmData=='b') { digitalWrite(appliance1,HIGH); } } Serial.print("AT+CMGD=1,4"); }
工作的代码
int appliance1 = 2;char gsmData;
创建一个名为appliance1的变量来存储密码,你有连接信号继电器的销。同时,创建另一个名为gsmData的变量来存储接收到的数据由Arduino的GSM模块。
无效的设置(){/ /把你设置代码,运行一次:Serial.begin (115200);延迟(25000);pinMode (appliance1、输出);
无效的设置(),第一套GSM的波特率为115200。然后给一个大的延迟,所以GSM模块成功地登录到网络。然后设置继电器作为输入的信号销Arduino将使用这个销继电器发出一个信号。
并同时在+ CMGF = 1 \ r);延迟(100);并“在+ CNMI = 2, 2, 0, 0, 0 \ r”);延迟(100);
使用+ CMGF = 1命令,设置短信文本模式。然后给100毫秒的延迟。,使用后+ CNMI = 2, 2, 0, 0, 0命令,向串口发送短信的内容。
digitalWrite (appliance1、高);
把逻辑高信号继电器模块的销最初关掉它。
无效循环(){/ /把你的主要代码,重复运行:如果(Serial.available () > 0) {gsmData = Serial.read ();
无效循环(),首先检查是否可用的串行通信是通过使用可用的()命令。之后从GSM模块将数据存储到变量gsmData。
如果(gsmData = = a) {digitalWrite (appliance1、低);}else if (gsmData = = b) {digitalWrite (appliance1、高);}}
如果else if语句检查GSM数据使用。如果数据等于“a”,打开继电器模块。如果数据等于“b”,关闭继电器模块。
并同时在+ CMGD = 1, 4);
评论都关门了。