无法在 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 供电
然后就可以了。
我正在尝试让 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 供电
然后就可以了。