You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派传感器触发时,如何用Twilio API发送海外免费WhatsApp消息?

树莓派触发传感器后通过Twilio发送WhatsApp消息实现方案

前提说明

Twilio的WhatsApp服务相比SMS在海外使用成本更低,个人项目可先通过沙箱模式免费测试,后续可申请正式号码用于长期使用。


步骤1:Twilio账号与沙箱配置

  • 注册Twilio账号后,在控制台获取Account SID和Auth Token(可在"Account Info"板块找到)
  • 进入"Programmable Messaging" > "Try it out" > "Send a WhatsApp message",启用WhatsApp沙箱
  • 按照页面提示,用目标手机发送指定代码(如join xxx-xxxx)到Twilio提供的沙箱WhatsApp号码,完成绑定(仅绑定号码能接收沙箱消息)

步骤2:树莓派环境准备

  • 确保树莓派联网,安装Python及Twilio SDK:
    sudo apt update && sudo apt install python3-pip
    pip3 install twilio
    

步骤3:传感器检测与消息发送代码

以红外传感器接GPIO17为例,编写Python脚本(sensor_whatsapp.py):

import RPi.GPIO as GPIO
import time
from twilio.rest import Client

# Twilio配置信息
ACCOUNT_SID = '你的Account SID'
AUTH_TOKEN = '你的Auth Token'
TWILIO_WHATSAPP_NUMBER = 'whatsapp:+14155238886'  # Twilio沙箱默认号码,可替换为正式号码
YOUR_PHONE_NUMBER = 'whatsapp:+你的手机号(带国家码,比如+86xxxxxx)'

# GPIO配置
SENSOR_PIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)

def send_whatsapp_alert():
    client = Client(ACCOUNT_SID, AUTH_TOKEN)
    message = client.messages.create(
        body="传感器已被触发!",
        from_=TWILIO_WHATSAPP_NUMBER,
        to=YOUR_PHONE_NUMBER
    )
    print(f"消息已发送,SID: {message.sid}")

try:
    print("等待传感器触发...")
    while True:
        if GPIO.input(SENSOR_PIN):
            print("传感器触发!")
            send_whatsapp_alert()
            time.sleep(60)  # 防重复触发,间隔60秒
        time.sleep(0.5)
except KeyboardInterrupt:
    GPIO.cleanup()
    print("程序终止")

关键注意事项

  • 沙箱模式仅支持绑定的测试号码,若需向多个号码发送消息,需申请Twilio正式WhatsApp号码(个人非商用用途一般可通过审核)
  • 树莓派需保持稳定联网,建议配置静态IP或使用有线网络
  • 可根据实际传感器类型调整GPIO配置和触发逻辑,比如添加软件防抖避免误触发
  • Twilio的WhatsApp消息费用远低于国际SMS,具体费率可在Twilio控制台定价页查看

内容的提问来源于stack exchange,提问作者Abhinav Tavildar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:52:17