littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Arduino和SIM800L模块的远程温控系统

项目简介

本项目是基于Arduino Nano和SIM800L模块的远程温控系统。借助短信(SMS)控制方式,能让用户在无互联网连接的偏远地区实现远程温度监控与控制。该系统主要用于控制锅炉等设备,在冬季农村房屋场景中尤为适用。

项目的主要特性和功能

  • 短信控制:利用SIM800L模块接收和发送短信,达成远程控制目的。
  • 温湿度监测:通过SHT20 I2C传感器实时监测环境的温度和湿度。
  • 自定义响应:用户可依据接收到的短信内容自定义响应操作,像开关继电器、查询传感器数据等。
  • 易于扩展:系统设计具备灵活性,用户能按需添加更多功能和传感器。

安装使用步骤

硬件准备

  • 准备Arduino Nano、SIM800L模块、SHT20 I2C传感器以及对应的电源和连接线。
  • 依照电路图连接各个硬件组件。

软件准备

  • 下载并安装Arduino IDE。
  • 导入必要的库文件,如SMS800L.hSHT20.h

代码编写

  • 在Arduino IDE中创建新项目。
  • 复制并导入SMS800L.h文件: ```c++

include "SMS800L.h"

- 根据需求重写`inCycle`方法,添加自定义的控制逻辑:c++ class MySMS : public SMSManager { public: using SMSManager::SMSManager;

void inCycle() {
  SMSManager::inCycle();

  if (strstr(this->getRowData(), TOKEN1)) {
    // 自定义逻辑
    this->sms(RESPONSE1, this->getNumber());
  }
}

}; - 实例化`MySMS`类并配置SIM800L模块:c++ const char * initString [] = {"AT+CMGF=1", "AT+CNMI=1,2,0,0,1", "AT+CMGDA=\"DEL ALL\"", "AT+GSMBUSY=1"}; MySMS smska(&altSerial, &Serial, initString, 5000); - 在`loop`函数中调用`inCycle`方法:c++ void loop() { smska.inCycle(); } ```

上传代码

将编写好的代码上传到Arduino Nano。

测试运行

发送短信到SIM800L模块,测试系统的响应和功能。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】