1. เตรียมตัวให้พร้อม
- ต้องมีบัญชี Temboo ก่อนนะน้อง ถ้ายังไม่มี ก็ไปสมัครฟรีได้เลย
- ต้องมีบัญชี Twilio ด้วย ตัวนี้ก็สมัครฟรีได้เหมือนกัน
- โค้ดของเราต้องใช้เบอร์โทร Twilio ของน้อง รวมถึง Account SID กับ Auth Token ที่ได้ตอนสมัคร Twilio ด้วย ระวังให้ดี ต้องใช้ Account SID กับ Auth Token จากหน้า Dashboard จริงๆ ของ Twilio (ตามรูปด้านล่าง) ห้ามใช้ของทดสอบจาก Dev Tools Panel เด็ดขาด!
- ถ้าใช้บัญชี Twilio แบบฟรี น้องต้องไปยืนยันเบอร์โทรที่เราจะส่ง SMS ไปก่อน ตามขั้นตอนในเมนู "Numbers > Verified Caller IDs" ใน Twilio นั่นแหละ และแน่นอนว่า Yún ของน้องต้องต่ออินเทอร์เน็ตไว้แล้ว
- ย้ำอีกที! ต้องแน่ใจว่า Arduino Yún ของน้องต่ออินเทอร์เน็ตอยู่

Cloud Gateway Connectivity
โปรเจคนี้ทำให้ Arduino ส่งการแจ้งเตือนไปทั่วโลกได้ทันที ด้วยการเชื่อมต่อฮาร์ดแวร์ในบ้านเราเข้ากับ Twilio SMS service ผ่านทาง Temboo platform
- Temboo Choreography Interface: Temboo ทำหน้าที่เป็น "Cloud Middleware" คอยจัดการเรื่องยุ่งยากอย่าง HTTP และ SSL authentication ที่ Twilio ต้องการให้ Arduino ของเราส่งแค่แพ็กเก็ตเล็กๆ ง่ายๆ ไปหา Temboo แล้ว Temboo จะแปลงมันเป็นการเรียก REST API แบบโปรให้เอง
- IoT Alert Logic: เหมาะมากสำหรับระบบเตือนภัยหรือสิ่งแวดล้อม เช่น ถ้าเซ็นเซอร์แก๊สตรวจพบการรั่วไหล Arduino ก็จะสั่งให้ "Choreo" บน Temboo ส่ง SMS ฉุกเฉินไปหาเจ้าของบ้านได้เลย
Global Reach
- No-SIM Wireless: ต่างจาก GSM shield ที่ต้องใช้ซิมการ์ดและสัญญาณเครือข่ายมือถือ ระบบนี้ทำงานผ่าน WiFi/Ethernet ธรรมดา ทำให้เป็นทางเลือกที่เสถียรและประหยัดกว่า สำหรับระบบแจ้งเตือน IoT ในบ้านหรือออฟฟิศ
2. เขียนโค้ด Sketch กัน
คัดลอกโค้ดด้านล่างไปวางในแท็บใหม่ของ Arduino IDE ได้เลย โค้ดนี้จะเรียกใช้ SendSMS Choreo อย่าลืมเปลี่ยนค่าตัวแปรในโค้ดให้เป็นข้อมูลบัญชี Twilio ของน้องเองด้วยล่ะ
/*
SendAnSMS
Demonstrates sending an SMS via a Twilio account using the Temboo Arduino Yun SDK.
This example code is in the public domain.
/
#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
/** SUBSTITUTE YOUR VALUES BELOW: ***/
// Note that for additional security and reusability, you could
// use #define statements to specify these values in a .h file.
// the Account SID from your Twilio account
const String TWILIO_ACCOUNT_SID = "xxxxxxxxxx";
// the Auth Token from your Twilio account
const String TWILIO_AUTH_TOKEN = "xxxxxxxxxx";
// your Twilio phone number, e.g., "+1 555-222-1212"
const String TWILIO_NUMBER = "xxxxxxxxxx";
// the number to which the SMS should be sent, e.g., "+1 555-222-1212"
const String RECIPIENT_NUMBER = "xxxxxxxxxx";
boolean success = false; // a flag to indicate whether we've sent the SMS yet or not
void setup() {
Serial.begin(9600);
// for debugging, wait until a serial console is connected
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop()
{
// only try to send the SMS if we haven't already sent it successfully
if (!success) {
Serial.println("Running SendAnSMS...");
// we need a Process object to send a Choreo request to Temboo
TembooChoreo SendSMSChoreo;
// invoke the Temboo client
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
SendSMSChoreo.begin();
// set Temboo account credentials
SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT);
SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendSMSChoreo.setAppKey(TEMBOO_APP_KEY); // ระบุ Choreo ใน Temboo Library ที่จะรัน (Twilio > SMSMessages > SendSMS) SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS"); // ตั้งค่า Input ที่จำเป็นสำหรับ Choreo // ดูรายละเอียดทั้งหมดเกี่ยวกับ Input สำหรับ Choreo นี้ได้ในเอกสาร // Input แรกคือ AccountSID ของคุณ SendSMSChoreo.addInput("AccountSID", TWILIO_ACCOUNT_SID);
// ต่อไปคือ Auth Token ของคุณ
SendSMSChoreo.addInput("AuthToken", TWILIO_AUTH_TOKEN);
// ต่อไปคือเบอร์โทรศัพท์ Twilio ของคุณ
SendSMSChoreo.addInput("From", TWILIO_NUMBER);
// ต่อไป ระบุเบอร์ปลายทางที่จะส่ง SMS ไป
SendSMSChoreo.addInput("To", RECIPIENT_NUMBER);
// สุดท้าย ข้อความที่ต้องการส่ง
SendSMSChoreo.addInput("Body", "Hey, there! This is a message from your Arduino Yun!");
// บอกให้ Process เริ่มรันและรอผลลัพธ์
// ค่า return code (returnCode) จะบอกเราว่า Temboo client ส่ง request ไปหาเซิร์ฟเวอร์สำเร็จมั้ย
unsigned int returnCode = SendSMSChoreo.run();
// return code เป็นศูนย์ (0) แปลว่าทุกอย่างโอเค
if (returnCode == 0) {
Serial.println("Success! SMS sent!");
success = true;
} else {
// return code ไม่ใช่ศูนย์แปลว่ามีข้อผิดพลาด
// อ่านและพิมพ์ข้อความ error ออกมา
while (SendSMSChoreo.available()) {
char c = SendSMSChoreo.read();
Serial.print(c);
}
}
SendSMSChoreo.close();
// ไม่ต้องทำอะไรเป็นเวลา 60 วินาทีต่อไป
Serial.println("Waiting...");
delay(60000);
} }
3. สร้างไฟล์ Header ของคุณ
สเก็ตช์ด้านบนอ้างอิงไปที่ไฟล์เฮดเดอร์ TembooAccount.h ซึ่งเก็บข้อมูลบัญชี Temboo ของคุณ
ถ้าคุณล็อกอินอยู่ คุณจะเห็นรายละเอียดบัญชีของคุณในโค้ดด้านล่าง (ไม่งั้นจะเห็นค่า placeholder) ให้คัดลอกโค้ดไปวางในแท็บใหม่ใน Arduino แล้วตั้งชื่อไฟล์ว่า TembooAccount.h เลย
เมื่อมีไฟล์ครบทั้งสองแล้ว คุณก็พร้อมที่จะอัปโหลดสเก็ตช์และส่ง SMS จาก Yún ของคุณแล้ว จัดไปวัยรุ่น!
#define TEMBOO_ACCOUNT "accountName" // ชื่อบัญชี Temboo ของคุณ
#define TEMBOO_APP_KEY_NAME "myFirstApp" // ชื่อ App Key ของคุณ
#define TEMBOO_APP_KEY "abc123xxxxxxxxxxxxxx" // App Key ของคุณ
4. ต่อไปทำอะไรดี?
ตอนนี้ส่ง SMS เป็นแล้ว ไปเช็คดู Choreo อีก 2000+ ใน Library ของเรา แล้วเริ่มวางแผนโปรเจค Yún ต่อไปกันดีกว่า สู้งานนะน้อง!
5. ต้องการความช่วยเหลือ?
พวกเรายินดีช่วยเสมอ ถ้ามีคำถามอะไร ก็ติดต่อมาหาพวกเราได้เลย