Page 1 sur 1

TD1208 qui arrête d'envoyer des messages au bout d'une heure

Message non luPosté: Mar 14 Juin 2016 08:11
de prokium
Bonjour à tous,

Voici ma configuration :
- Andruino Uno,
- Breakout TD1208,
- Capteurs de température (bon... je viens de découvrir qu'il y avait ce capteur dans le TD1208... no comment) & luminosité

Comportement :
Toutes les 30 secondes, andruino check la température/luminosité du capteur, la prend, la convertie en Hexa, et renvoi le tout au TD1208 qui l'envoi à son tour sur le net via le réseau SIGFOX/Actoboard.

L'incident :
Tout fonctionne bien, mais au bout d'un laps de temps; plus ou moins une heure à premiere vue; les messages ne sont plus envoyés : sur ma board actoboard, j' ai un message "Last activity: an hour ago".
Est il possible que la connection entre Andruino et le TD1208 "se coupe" (le modem passe en veille? qui surchauffe?)?
Si je débranche et re-branche mon montage, les messages sont renvoyés pendant une heure.

Je pense mettre ce soir une led qui s'allumera lors de la prise de température afin de vérifier si tout le montage plante ou si il ne s'agit que du modem.

Merci d'avance pour vos lumières.

Benoît.




Code: Tout sélectionner
#include "Arduino.h"
#include <SoftwareSerial.h>
#include <Adafruit_MMA8451.h>
#define RX_PIN 4
#define TX_PIN 5
SoftwareSerial sigfox(RX_PIN,TX_PIN);

unsigned long lastCheck;
bool doCheckValues;

const int sensorPinTemp = A2;
const int sensorPinLumi = A5;
const float baseLineTemp = 20;


void setup(){
Serial.begin(9600);
sigfox.begin(9600);

doCheckValues = true;

}


void loop(){

   if (doCheckValues) {
      int sensorValueTemp = analogRead(sensorPinTemp);
      float voltage = (sensorValueTemp/1024.0) * 5.0;
      float temperature =(voltage - 0.5) *100;
      Serial.print("temp : ");
      Serial.println(temperature);
      /*
       * Check Temp
       *
       */


      int sensorValueLumi = analogRead(sensorPinLumi)/4;
      Serial.print("lumi : ");
      Serial.println(sensorValueLumi);
      /* Check Luminosité
       *
       */


      int temperaturefinal = (round(temperature));
      Serial.println(temperaturefinal);
      //String tempStr = String(temperature,HEX);

      char *strcTemp = new char[4];
      char *strcTempFinal = new char[5];
      char *space = " ";


      String str = "AT$SF=";
      str.concat(decToHex(temperaturefinal,2));
      str.concat(decToHex(sensorValueLumi,2));
      str.concat("\r");
      char *strc = new char[str.length()];
      strcpy( strc, str.c_str() );

      Serial.println(strc);

      sigfox.write(strc);

       lastCheck = millis();
       doCheckValues = false;
   }


     if(!doCheckValues) {
       if(millis() - lastCheck > 30000) {

         doCheckValues =true;
       }
     }
}

String decToHex(byte decValue, byte desiredStringLength) {

  String hexString = String(decValue, HEX);
  while (hexString.length() < desiredStringLength) hexString = "0" + hexString;

  return hexString;
}

//sigfox.write("AT$SF=48 45 4c 4c 4f 20 57 4f 52 4c 44\r");

Re: TD1208 qui arrête d'envoyer des messages au bout d'une h

Message non luPosté: Mar 14 Juin 2016 10:23
de Laetitia
Bonjour,

Un message toutes les 30 secondes, ça fait environ 120 messages par heure.

Sur la fiche produit il est bien indiqué une limite de 140 messages par jour. Même s'il est possible de la contourner, la librairie Akeru inclut de base une limitation pour vous éviter de dépasser votre quota.

Je vous conseille de revoir l'intervalle entre deux envois sur le réseau Sigfox si vous ne voulez pas avoir d'avertissement...

Re: TD1208 qui arrête d'envoyer des messages au bout d'une h

Message non luPosté: Mar 14 Juin 2016 15:38
de prokium
Hum, autant pour moi... Je vais essayer cela.
Merci pour votre retour.