使用Twilio和UP Squared板在Ubuntu上发送短信

在本文中,将探讨如何利用Twilio服务和UP Squared开发板在Ubuntu操作系统上发送短信。这包括硬件的准备、软件的安装、编程示例以及如何运行程序。

Twilio简介

Twilio是一个允许软件开发者通过编程方式接收和发送短信(SMS)及多媒体消息服务(MMS)的平台。可以使用Twilio的REST API发送短信和MMS消息,跟踪短信对话,甚至在电话通话中发送短信。

UP Squared开发板介绍

UP Squared开发板是一个低功耗、高性能的平台,非常适合物联网(IoT)应用。根据性能需求,可以选择基于Intel® Celeron®处理器(N3350)或Intel® Pentium®处理器(N4200)的UP Squared开发板。更多信息,请访问官方UP Squared网站。

准备材料

以下是本项目所需的硬件组件列表:

  • UP Squared开发板
  • Grove Pi板
  • 传感器套件
  • UP Squared 5V@6A电源
  • 带有HDMI接口的显示器
  • HDMI线缆
  • 带有互联网访问的网络连接(以太网或WiFi套件)
  • USB键盘和鼠标

软件方面,需要安装Ubuntu桌面操作系统。

创建Twilio账户

要接收短信和MMS消息,需要一个启用了短信功能的Twilio电话号码。要获取自己的专用电话号码,请注册Twilio试用账户。一旦获得短信功能的Twilio访问权限,就可以访问账户仪表板,找到Twilio账户SID和Twilio认证令牌。

安装Ubuntu操作系统

在开始之前,应该在UP Squared平台上安装Ubuntu操作系统。本指南使用了Ubuntu 16.04.1 LTS 64位桌面版本。有关如何在UP Squared上安装Ubuntu操作系统的更多信息,请访问。

安装Twilio

为确保Ubuntu操作系统是最新的,并且相关的Ubuntu软件包已安装,请打开命令提示符(终端)并输入以下命令:

sudo apt-get update

安装Node版本管理器(NPM)软件包:

sudo apt-get install npm

从NPM安装Twilio节点软件包:

npm install twilio

安装Ubuntu内核

Ubuntu核心默认情况下不提供对GPIO引脚的访问。安装所需的内核以访问GPIO引脚。

在更新内核之前,使用以下命令检查是否拥有正确的UP Squared内核:

uname -srv

UP Squared的内核应该如下所示:

Linux 4.10.0-42-generic #5000~upboard9-UbuntuSMP Tue Dec 12 11:46:16 UTC 2017

添加仓库:

sudo add-apt-repository ppa:ubilinux/up

更新仓库列表:

sudo apt update

移除已安装的通用内核:

sudo apt-get autoremove -purge ‘linux-.*generic’

安装UP Squared的内核:

sudo apt-get install linux-image-generic-hwe-16.04-upboard

重启:

sudo reboot

验证内核是否已安装:

uname -srv

安装MRAA

安装MRAA软件包以管理IO通信:

sudo npm install -g mraa

读取光传感器

要与Grove盾连接,请在代码中添加以下行:

mraa.addSubplatform(mraa.GROVEPI, "0")

使用GROVEPI会将所有引脚号偏移512,因此光传感器连接到模拟A1的引脚将是引脚512+1:

var OFFSET = 512; var light = new groveSensor.GroveLight(OFFSET + 1);

从模拟引脚读取光传感器值:

var lightValue = light.value();

如果光传感器指示变暗,这将打开LED并发送短信消息:

if (light.value() < 10) { ledPin.write(1); }

最后,使用以下代码读取并写入数字引脚D5以打开LED:

var ledPin = new mraa.Gpio(OFFSET + 5); ledPin.dir(mraa.DIR_OUT); ledPin.write(1);

发送外发短信消息

要发送短信消息,向Twilio发出请求,并指定“to”、“from”和“body”。其中“to”是手机号码,“from”是启用短信功能的Twilio电话号码,“body”是正在发送的短信消息。有关详细信息,请参见Twilio API文档中的。

以下是发送短信的代码示例:

var ACCOUNT_SID = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; var ACCOUNT_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; var twilio_number = '1480405xxxx'; var your_number = '1480xxxxxx'; var twilio = require('twilio'); var client = new twilio(ACCOUNT_SID, ACCOUNT_TOKEN); var message = client.messages.create({ from: twilio_number, to: your_number, body: 'Hello World!!!' }, function(error, message) { if (!error) { console.log('The request was successful.'); console.log(message.Sid); } else { console.log('The request was failed. Error code:'); console.log(message.ErrorCode); console.log(message.sid); } });

示例草图

以下是一个示例,当光传感器指示变暗时,向手机发送短信消息。

代码示例:发送外发短信消息示例(send_sms_msg.js)

var ACCOUNT_SID = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; var ACCOUNT_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; var twilio_number = '1480405xxxx'; var your_number = '1480xxxxxx'; var twilio = require('twilio'); var client = new twilio(ACCOUNT_SID, ACCOUNT_TOKEN); var mraa = require('mraa'); mraa.addSubplatform(mraa.GROVEPI, "0"); console.log("MRAA version: " + mraa.getVersion()); var OFFSET = 512; var ledPin = new mraa.Gpio(OFFSET + 5); var ledState = true; ledPin.dir(mraa.DIR_OUT); var groveSensor = require('jsupm_grove'); var light = new groveSensor.GroveLight(OFFSET + 1); var sleep = require('sleep'); function activity() { console.log("Enter activity()"); console.log("ledState: " + ledState); var lightValue = light.value(); if (light.value() < 10) { ledPin.write(1); var message = client.messages.create({ from: twilio_number, to: your_number, body: "Hello World!!!" }, function(error, message) { if (!error) { console.log(message.Sid); console.log(message.ErrorCode); } else { console.log("Error!"); } }); } ledState = !ledState; sleep.sleep(1); ledPin.write(0); }

运行Node示例

导出MRAA依赖模块:

export NODE_PATH=/usr/local/lib/node_modules

注意,需要以root用户身份访问GPIO,因此请确保包含“sudo”。要运行示例,请在终端中输入以下命令:

sudo -E node send_sms_msg.js

当光传感器指示变暗时,LED将闪烁,短信消息将被发送。如果手机收到以下消息,则短信消息已成功发送:

Sent from your Twilio trial account - Hello World!!!

在本文中,通过在Ubuntu上使用Twilio账户和UP Squared开发板在暗条件下发送短信进行了实验。这个实验设计得可以在任何支持Intel微控制器并运行Ubuntu的物联网设备上工作,例如Intel®IoTGateway GB-BXTB-3825。现在尝试在UP Squared开发板和其他Intel®物联网设备上使用不同的传感器创建自己的实验。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485