私はArduino UnoにSigfox経由でデータを送信しようとしています。 ArduinoのためのLibelium Xbee ShieldとSigfoxモジュールの使用(Cooking Hacks) Arduinoライブラリにある例を使って文字列を送信しようとしました。 Arduinoのスケッチは単純です:ArduinoシールドのSigfox UARTをオンにすることはできません
#include <Wire.h>
// Cooking API libraries
#include <arduinoClasses.h>
#include <arduinoUART.h>
#include <arduinoUtils.h>
#include <arduinoSigfox.h>
// Pin definition for Sigfox module error LED:
const int error_led = 13;
//////////////////////////////////////////////
uint8_t socket = SOCKET0; //Asign to UART0
//////////////////////////////////////////////
uint8_t error;
void setup()
{
Serial.begin(9600);
pinMode(error_led, OUTPUT);
//////////////////////////////////////////////
// 1. switch on
//////////////////////////////////////////////
error = Sigfox.ON(socket);
// Check status
if(error == 0)
{
//"Switch ON OK"
digitalWrite(error_led, LOW);
Serial.println("Sigfox Switch ON -> SUCCES");
}
else
{
//"Switch ON ERROR"
digitalWrite(error_led, HIGH);
Serial.println("Switch Switch ON -> FAILED");
}
//////////////////////////////////////////////
// 2. send data
//////////////////////////////////////////////
// Send 12 bytes at most
error = Sigfox.send("000102030405060708090A0B");
// Check sending status
if(error == 0)
{
//"Sigfox sending -> SUCCES"
digitalWrite(error_led, LOW);
Serial.println("Sigfox sending -> FAILED");
}
else
{
//"Sigfox packet sent ERROR"
digitalWrite(error_led, LOW);
Serial.println("Sigfox packet sent ERROR");
}
}
void loop()
{
//////////////////////////////////////////////
// 3. sleep
//////////////////////////////////////////////
}
シリアルポートの出力は以下の通りです:Sigfox.getID()が働いているので、Sigfoxモジュールとボードの間
AT
Sigfox Switch ON -> FAILED
AT$SF=000102030405060708090A0B
Sigfox sending -> FAILED
接続は、OKのようです正しいIDが検索されます。また、Sigfoxプラットフォームでのデバイスの購読もOKと思われる。
これをどのようにデバッグできますか?私はどのように診断を始めるのか分かりません。送信の何か?ハードウェアの何か?これに関するすべての助けに感謝します。
ご協力ありがとうございます。以下の私の解決策をご覧ください。あなたの答えは私の元のセットアップがうまくいかなかった理由を説明しています:Sigfoxとシリアルケーブルの両方がシリアルポートについて競合しています。 –