2016-10-15 3 views
0

Я пытаюсь получить Arduino Uno для отправки данных через Sigfox. Использование модуля Libelium Xbee Shield и Sigfox для Arduino (Cooking Hacks). Я попытался отправить строку, используя пример, найденный в библиотеке Arduino. Эскиз Arduino прост:Невозможно включить Sigfox UART на щите 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() работает , и будет восстановлен правильный идентификатор. Также подписка на устройство на платформе Sigfox кажется ОК.

Как я могу отладить это? Я не знаю, как начать диагностику: что-то в библиотеках? что-то в отправке? что-то в аппаратном обеспечении ?. Вся помощь в этом приветствуется.

ответ

0

Проблема была относительно простой в решении. Оказывается, невозможно запустить комбинацию Arduino/Xbee/Sigfox с подключенным последовательным кабелем (я использовал его для питания и для отправки информации об отладке на свой компьютер). Все, что я должен был сделать:

  • положить переключатель на USB
  • загрузить новый код через последовательный кабель
  • отсоедините кабель последовательного интерфейса
  • устанавливает переключатель в положении XBee
  • власти Arduino через 12V (или другая потребляемая мощность)

Тогда это работает.

1

Пожалуйста, проверьте Arduino TX подключен к Sigfox RX и RX Arduino подключен к Sigfox TX Проверьте также, что модуль имеет VCC на выводе 1 и GND на выводе 9. Если он все еще не работают , это, вероятно, потому, что есть что-то еще, связанное с линиями RX и TX. Убери это. Personnaly, я поставил логический анализатор на этих строках, чтобы проверить диалог. для «ВКЛ»: AT \ r \ n отправляется, и на «OK \ r \ n» отвечает.

Надеюсь, что это поможет

+0

Благодарим за помощь, см. Мое решение ниже. Ваш ответ объясняет, почему моя первоначальная настройка не работала: оба Sigfox и Serial-кабель конкурируют за последовательные порты. –