如何使用 ESP8266 发送短信 (SMS)

发布于:2025-08-18 ⋅ 阅读:(15) ⋅ 点赞:(0)

 

使用 ESP8266 和 Arduino IDE 发送短信 (SMS)

本教程将帮助您从 ESP8266 向任何注册的手机号码发送短信。ESP8266 是一个强大的 Wifi 模块,一直在 IOT 项目领域占据主导地位。这是一个独立于微控制器的教程含义;您不需要任何 UC/UP,如 Arduino 或 PIC。我们将使用 Arduino IDE 直接对 ESP8266 模块进行编程。一旦它被编程,我们就可以从它向任何预编程的手机号码发送短信。我正在使用 IFTTT 小程序来完成此任务。如果您是 ESP8266 新手,请访问下面的教程,这些教程将帮助您开始使用 ESP8266 并教您如何使用 Arduino IDE 对 ESP8266 模块进行编程。

除此之外,您不需要本教程的任何先决条件,因为我将通过图片和视频详细解释所有步骤。所以让我们开始吧......

教程背后的概念:

我们知道 ESP8266 模块可以配置为 AP 或 STA。在这里,我们已将其配置为作为工作站工作,并将其连接到我们的 Wifi 路由器。建立连接后,我们必须找到一种在线发送 SMS 的方法。此在线模块也必须易于访问ESP8266。这就是我们利用 IFTTT (If This Then That) 网站的力量的地方。使用此网站,我们可以发送短信、电子邮件、Whatsapp 消息、Facebook 更新、Twitter 推文等等。他们有很多工具,即使很少的知识就可以使用,但在本教程中,我们将使用发送消息功能,其余的留给其他未来的教程。

在 IFTTT 网站中进行一些调整后,我们将能够获得一个 HTTPS URL,当触发时,它将向特定手机号码发送预定义的文本消息。现在,我们的 ESP8266 模块必须在需要时调用此 URL,并且您的 SMS 将被发送到您的手机号码。听起来很简单,对吧!?让我们看看所涉及的步骤。

创建 IFTTT 小程序:

让我们看看如何创建 IFTTT 小程序并获取触发特定手机号码的 SMS。我已经尽力逐步解释它们,如果您遇到困难,请使用本教程末尾的视频。

第 1 步:访问 www.IFTTT.com 并注册新 ID(如果您还没有)。注册后,您将收到一封发送到您的电子邮件 ID 的邮件,对其进行验证,然后您将登录到 IFTTTT。

第 2 步:搜索 SMS Applet 或访问链接。现在使用该小程序注册您的手机号码,我在此处使用数字“00919612365489”作为示例号码。始终包含前导“00”,后跟您的国家/地区代码,然后是您的手机号码。我来自印度,因此我的国家代码是“91”,我的手机号码是“96123456789”。输入号码后,点击“发送 Pin”并验证您的手机号码

 

第 3 步:现在我们已经配置了一个小程序,我们将配置另一个名为 Maker Webhooks 的小程序,因此请搜索它或使用此链接。现在单击 “Connect”,您将获得以下屏幕。

 

第 4 步:现在是时候创建我们自己的 Applet 了,它可以同步上述两个 Applet。为此,请导航到 My Applets -> New Applet,或访问链接。您将转到此页面。

 

第 5 步:术语 IF THIS THEN THAT 意味着如果 “this” 上发生了什么事情,那么我们必须在 “that” 上做一些事情。此处,如果触发了制作者 Webhook 小程序,则必须发送短信。因此,单击“this”(蓝色加号图标)并搜索 Maker Webhooks,然后单击它。现在,系统会要求您选择一个触发器,因此请单击“接收 Web 请求”

第 6 步: 现在您必须通过为其提供 Event Name 来配置触发器。我将其命名为 “ESP”,如下所示。您可以使用任何事件名称,但请记住此名称,以便我们稍后必须使用它。最后点击 “Create Trigger”

 

 第 7 步:您应该获得下面的屏幕,您必须配置“那个”小程序。单击“that”附近的加号图标

 

第 8 步:搜索 SMS Applet 并单击它。然后,为了选择 Action(作),请单击 Send me SMS(向我发送短信)。您将转到下面的屏幕,您必须在其中输入必须发送到您手机的短信。最后点击 “Create action”

 

第 9 步:您可以查看并完成您的小程序,它应该如下所示。点击“完成”

 

第 10 步:现在,搜索 Maker Webhooks 或使用此链接并单击“文档”。您应该在下面看到类似这样的内容

 

这是一个非常重要的页面。此页面将向您展示有关如何触发事件的关键和说明。您的页面将显示您的 ID 的唯一密钥,请保持非常机密,因为任何拥有此密钥的人都可以访问您的所有小程序。我隐藏了 API 密钥的最后五位数字,以便保持机密。

第 11 步:现在在“Make a Post or get web request”下,您可以看到我们有一个选项来添加事件名称。请记住,在第 6 步中,我们创建了一个名为 “ESP” 的事件,因此我们必须使用相同的名称并配置我们的 URL,如下所示。

 

更改事件名称后,单击 “Test it”。您应该会收到一条消息到您注册的手机号码。在我们的示例中,消息应为“Maker 服务上发生了偶数名称 ESP。SMS sent from ESP8266 – CircuitDigest“ 您可以根据需要配置自己的 SMS。您还可以使用值 1 和值 2 选项从 ESP 模块发送传感器值。

就是这样,我们现在有一个 HTTPS URL,触发时,它会向指定号码发送特定消息。您可以复制此 URL 并将其保存在安全的地方,因为我们必须在 Arduino 程序中使用此 URL。您也可以简单地将此 URL 复制并粘贴到任何 Web 浏览器上,然后您会注意到事件已触发。您还将收到如下所示的回复。

 

对 ESP8266 模块进行编程:

现在我们必须使用 Arduino IDE 对 ESP8266 模块进行编程。在这个程序中,我们只需要连接到路由器并调用我们刚刚在上面演示的 HTTPS URL,然后该 URL 就会触发消息。本教程的末尾给出了完整的程序,但下面将解释一些需要修改的重要代码块。

<span style="color:#121212"><span style="background-color:#ffffff"><span style="color:#e4e4e4"><span style="background-color:#1e1e1e">const char* ssid = "BPAS home";
const char* password = "cracksun";</span></span></span></span>

在上面的代码行中,使用您自己的 Wifi 凭据,在我的情况下,“BPAS home”是我的 Wifi 信号名称,“cracksun”是我的密码。

<span style="color:#121212"><span style="background-color:#ffffff"><span style="color:#e4e4e4"><span style="background-color:#1e1e1e">String url = "/trigger/ESP/with/key/b8h22xlElZvP27lrAXS3ljtBa0092_aAanYN1IXXXXX";</span></span></span></span>

确保您已根据您的事件名称和密钥修改了上述行,在我的情况下,事件名称为 ESP(如果您在第 6 步中将其命名为 ESP,则对您来说将是相同的),我的 API 密钥为 b8h22xlElZvP27lrAXS3ljtBa0092_aAanYN1IXXXXX。将其更改为您收到的密钥

注意:此步骤对于代码的运行非常重要。

代码中的其余行是不言自明的,无论如何,如果您有任何疑问,您可以使用评论部分。

代码经过修改后,即可将其上传到 ESP8266 模块。您可以从 Arduino IDE 上传程序,如本教程“使用 Arduino IDE 对 ESP8266 进行编程”中所述

输出:

上传完成后,在 Arduino IDE 上打开您的串行监视器。您应该看到以下调试信息:

 

如果您的串行监视器显示“恭喜!您已触发 ESP 事件“,这意味着一切都已按预期工作。现在您可以检查您的手机,您应该已经收到了该消息。消息的屏幕截图如下所示

 

下面的视频将向您展示上述讨论的完整工作。希望您已经学会了如何使用 IFTTT 平台从 esp8266 发送短信。您还可以查看从 Nodemcu 发送短信 ESP8266如果您来自印度,本教程使用电路摘要中的 API,让您非常轻松地发送短信。

 
 

完成项目代码

复制代码
/*Program to send SMS from ESP8266 via IFTTT.
 * For complete detials visit: www.circuitdigest.com
 * EXAMPLE URL: (do not use This)
 *  https://maker.ifttt.com/trigger/ESP/with/key/b8h22xlElZvP27lrAXS3ljtBa0092_aAanYN1IXXXXX
 *  
 */
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
const char* ssid = "BPAS home";
const char* password = "cracksen";
const char* host = "maker.ifttt.com";
const int httpsPort = 443;
void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.print("connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  WiFiClientSecure client;
  Serial.print("connecting to ");
  Serial.println(host);
  if (!client.connect(host, httpsPort)) {
    Serial.println("connection failed");
    return;
  }
  String url = "/trigger/ESP/with/key/b8h22xlElZvP27lrAXS3ljtBa0092_aAanYN1IXXXXX";
  Serial.print("requesting URL: ");
  Serial.println(url);
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: BuildFailureDetectorESP8266\r\n" +
               "Connection: close\r\n\r\n");
  Serial.println("request sent");
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      Serial.println("headers received");
      break;
    }
  }
  String line = client.readStringUntil('\n');
  Serial.println("reply was:");
  Serial.println("==========");
  Serial.println(line);
  Serial.println("==========");
  Serial.println("closing connection");
}
void loop() {
}

 

 


网站公告

今日签到

点亮在社区的每一天
去签到