无法在Arduino屏蔽上打开Sigfox UART

时间:2016-10-15 09:57:22

标签: arduino arduino-uno

我想让一个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平台上订阅设备似乎还可以。

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

2 个答案:

答案 0 :(得分:1)

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

希望这有帮助

答案 1 :(得分:0)

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

  • 将开关置于USB
  • 通过串行电缆上传新代码
  • 拔下串行电缆
  • 将开关置于Xbee
  • 通过12V护套(或其他电源输入)为arduino供电

然后它有效。