以下是一个Arduino代码示例,演示如何使用GSM模块在LED灯亮时向指定号码发送短信。

#include <SoftwareSerial.h>

// 定义GSM模块的TX和RX引脚
#define GSM_TX_PIN 2
#define GSM_RX_PIN 3

// 定义GSM模块的波特率
#define GSM_BAUD_RATE 9600

// 创建一个SoftwareSerial对象,用于与GSM模块通信
SoftwareSerial gsmSerial(GSM_TX_PIN, GSM_RX_PIN);

// 定义LED灯引脚
#define LED_PIN 13

void setup() {
  // 初始化串口通信
  Serial.begin(9600);
  gsmSerial.begin(GSM_BAUD_RATE);

  // 设置LED引脚为输出模式
  pinMode(LED_PIN, OUTPUT);

  // 建立GSM模块通信连接
  gsmSerial.println("AT"); // 发送AT指令,检查GSM模块是否正常工作
  delay(1000);
  if (gsmSerial.find("OK")) {
    Serial.println("GSM模块已连接");
  } else {
    Serial.println("GSM模块连接失败");
  }
}

void loop() {
  // 点亮LED灯
  digitalWrite(LED_PIN, HIGH);

  // 发送短信
  sendMessage('123456', '灯亮');

  // 等待5秒
  delay(5000);

  // 关闭LED灯
  digitalWrite(LED_PIN, LOW);

  // 等待5秒
  delay(5000);
}

void sendMessage(String phoneNumber, String message) {
  // 设置短信格式
  gsmSerial.println("AT+CMGF=1"); // 发送AT指令,设置短信格式为文本模式
  delay(1000);
  gsmSerial.println("AT+CMGS='" + phoneNumber + "'"); // 发送AT指令,设置接收短信的电话号码
  delay(1000);

  // 输入短信内容并发送
  gsmSerial.println(message);
  delay(1000);
  gsmSerial.println((char)26); // 发送Ctrl+Z字符,表示短信内容输入完成
  delay(5000);

  // 等待短信发送状态
  while (gsmSerial.available()) {
    Serial.write(gsmSerial.read());
  }
}

在该代码中,首先设置LED引脚为输出模式,然后在loop()函数中,先点亮LED灯,然后通过调用sendMessage()函数发送短信,发送完成后关闭LED灯,然后等待5秒后再次循环。

请注意,该代码仅为示例代码,实际应用中需要根据具体的硬件和GSM模块进行适配和调试,以确保正常工作。同时,还需确保GSM模块的SIM卡已插入并正常工作,并且确保正确设置短信格式和接收短信的电话号码。

更多Arduino和GSM模块相关信息,请参考相关技术文档和教程。

Arduino LED灯亮发送短信:GSM模块代码示例

原文地址: https://www.cveoy.top/t/topic/bKxV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录