无法在 Arduino shield 上打开 Sigfox UART

Cannot switch on Sigfox UART on Arduino shield

我正在尝试让 Arduino Uno 通过 Sigfox 发送数据。将 Libelium Xbee Shield 和 Sigfox 模块用于 Arduino(烹饪技巧)。 我尝试使用 Arduino 库中的示例发送一个字符串。 Arduino 草图很简单:

   #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
   //////////////////////////////////////////////
   }

串口输出如下:

AT
   Sigfox Switch ON -> FAILED
   AT$SF=000102030405060708090A0B
   Sigfox sending -> FAILED

Sigfox 模块和电路板之间的连接似乎正常,因为 Sigfox.getID() 正在运行,并且检索到了正确的 ID。在 Sigfox 平台上订阅设备似乎也可以。

我该如何调试它?我不知道如何开始诊断:图书馆里有什么东西吗?发送的东西?硬件中的东西?对此的所有帮助表示赞赏。

请仔细检查 Arduino TX 连接到 Sigfox RX,Arduino RX 连接到 Sigfox TX 还要检查模块是否在引脚 1 上有 VCC,在引脚 9 上有 GND。 如果还是不行,可能是因为 RX 和 TX 线有别的东西连接。去掉它。 Personnaly,我在这些线路上放置了一个逻辑分析器来检查对话框。 对于 "ON":发送 AT\r\n,回答 "OK\r\n"。

希望对您有所帮助

问题解决起来比较简单。事实证明,不可能 运行 组合 Arduino/Xbee/Sigfox 与连接的串行电缆(我用它来供电,并将调试信息发送到我的计算机)。 我所要做的就是:

  • 切换到 USB
  • 通过串口线上传新代码
  • 拔下串口线
  • 切换到 Xbee
  • 通过 12V 夹克(或其他电源输入)为 arduino 供电

然后就可以了。