현재 Sparkfun esp2866 Wifi Shield를 사용하여 Arduino Uno를 통해 메시지를 보내려고합니다. Twilio와 Temboo 계정을 이미 설정했습니다. Temboo 및 Sparkfun esp2866 방패 라이브러리를 사용하여 아래의 모든 개인 정보를 추출한 코드를 생성했습니다.Esp8266 Sparkfun Wifi 방패와 Arduino가있는 SMS를 보내려면 어떻게해야합니까?
내 모든 Temboo 계정 정보를 포함하는 다른 파일을 내 코드에 포함시키지 않았습니다.
프로그램을 실행하려고하면 방패가 내 Wi-Fi 네트워크에 연결되지만 휴대 전화로 문자 메시지를 보내지 않습니다. 나는 IOT 장치로 일하는 데 많은 경험이 없으며 누군가가 도울 수 있는지 궁금해하고있었습니다. 모든 입력을 부탁드립니다!
미리 감사드립니다.
#include <SoftwareSerial.h>
#include <SparkFunESP8266WiFi.h>
#include <Temboo.h>
#include "TembooAccount.h"
const char mySSID[] = "ssid ";
const char myPSK[] = " password";
ESP8266Client client;
int numRuns = 1; // Execution count, so this doesn't run forever
int maxRuns = 10;
void setup()
{
// Serial Monitor is used to control the demo and view
// debug information.
Serial.begin(9600);
Serial.println("Serial started");
serialTrigger(F("Press any key to begin."));
// initializeESP8266() verifies communication with the WiFi
// shield, and sets it up.
initializeESP8266();
// connectESP8266() connects to the defined WiFi network.
connectESP8266();
// displayConnectInfo prints the Shield's local IP
// and the network it's connected to.
displayConnectInfo();
}
void loop()
{
if (numRuns <= maxRuns) {
Serial.println("Running SendSMS - Run #" + String(numRuns++));
delay(1000);
TembooChoreo SendSMSChoreo(client);
// Invoke the Temboo client
SendSMSChoreo.begin();
// Set Temboo account credentials
SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT);
SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendSMSChoreo.setAppKey(TEMBOO_APP_KEY);
// Set Choreo inputs
String AuthTokenValue = "";
SendSMSChoreo.addInput("AuthToken", AuthTokenValue);
String ToValue = "";
SendSMSChoreo.addInput("To", ToValue);
String FromValue = "";
SendSMSChoreo.addInput("From", FromValue);
String BodyValue = "Hello World";
SendSMSChoreo.addInput("Body", BodyValue);
String AccountSIDValue = "";
SendSMSChoreo.addInput("AccountSID", AccountSIDValue);
// Identify the Choreo to run
SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS");
// Run the Choreo; when results are available, print them to serial
SendSMSChoreo.run();
Serial.println("DONE!");
while(SendSMSChoreo.available()) {
char c = SendSMSChoreo.read();
Serial.print(c);
}
SendSMSChoreo.close();
}
Serial.println("\nWaiting...\n");
delay(30000); // wait 30 seconds between SendSMS calls
}
void initializeESP8266()
{
// esp8266.begin() verifies that the ESP8266 is operational
// and sets it up for the rest of the sketch.
// It returns either true or false -- indicating whether
// communication was successul or not.
// true
int test = esp8266.begin();
if (test != true)
{
Serial.println(F("Error talking to ESP8266."));
errorLoop(test);
}
Serial.println(F("ESP8266 Shield Present"));
}
void connectESP8266()
{
// The ESP8266 can be set to one of three modes:
// 1 - ESP8266_MODE_STA - Station only
// 2 - ESP8266_MODE_AP - Access point only
// 3 - ESP8266_MODE_STAAP - Station/AP combo
// Use esp8266.getMode() to check which mode it's in:
int retVal = esp8266.getMode();
if (retVal != ESP8266_MODE_STA)
{ // If it's not in station mode.
// Use esp8266.setMode([mode]) to set it to a specified
// mode.
retVal = esp8266.setMode(ESP8266_MODE_STA);
if (retVal < 0)
{
Serial.println(F("Error setting mode."));
errorLoop(retVal);
}
}
Serial.println(F("Mode set to station"));
// esp8266.status() indicates the ESP8266's WiFi connect
// status.
// A return value of 1 indicates the device is already
// connected. 0 indicates disconnected. (Negative values
// equate to communication errors.)
retVal = esp8266.status();
if (retVal <= 0)
{
Serial.print(F("Connecting to "));
Serial.println(mySSID);
// esp8266.connect([ssid], [psk]) connects the ESP8266
// to a network.
// On success the connect function returns a value >0
// On fail, the function will either return:
// -1: TIMEOUT - The library has a set 30s timeout
// -3: FAIL - Couldn't connect to network.
retVal = esp8266.connect(mySSID, myPSK);
if (retVal < 0)
{
Serial.println(F("Error connecting"));
errorLoop(retVal);
}
}
}
void displayConnectInfo()
{
char connectedSSID[24];
memset(connectedSSID, 0, 24);
// esp8266.getAP() can be used to check which AP the
// ESP8266 is connected to. It returns an error code.
// The connected AP is returned by reference as a parameter.
int retVal = esp8266.getAP(connectedSSID);
if (retVal > 0)
{
Serial.print(F("Connected to: "));
Serial.println(connectedSSID);
}
// esp8266.localIP returns an IPAddress variable with the
// ESP8266's current local IP address.
IPAddress myIP = esp8266.localIP();
Serial.print(F("My IP: ")); Serial.println(myIP);
}
// errorLoop prints an error code, then loops forever.
void errorLoop(int error)
{
Serial.print(F("Error: ")); Serial.println(error);
Serial.println(F("Looping forever."));
for (;;)
;
}
// serialTrigger prints a message, then waits for something
// to come in from the serial port.
void serialTrigger(String message)
{
Serial.println();
Serial.println(message);
Serial.println();
while (!Serial.available())
;
while (Serial.available())
Serial.read();
}
감사합니다. 귀하의 의견을 바탕으로 원래 답변을 업데이트했습니다. –