Go Down

Topic: MKRFOX 1200 (Read 323 times) previous topic - next topic

vidalv

Bonjour à tous, je viens de recevoir ma carte MKRFOX1200 et j'essaie en vain de la mettre en fonction.
Après consultation de nombreux sites et forum je n'arrive pas à obtenir son ID et PAC afin de pouvoir m'inscrire sur le site d'inscription. Mon IDE Arduino est en version 1.8.5, j'ai inclus les bibliothèques Arduino_SigFox_for_MKRFox1200-1.0.4, Arduino_Low_Power-1.2.0, RTCZero-1.5.2. Le code que j'utilise renvoie l'ensemble des messages (en partie, sauf ce qui m'intéresse) dans la fenêtre de compilation, il m'est en effet impossible d'ouvrir une fenêtre de moniteur car l'IDE me dits que le port est déjà utilisé, par défaut j'ai dans la liste des ports le COM3 et COM23 (Arduino MKR FOX 1200) ou selon COM26.
Voici ce code:

Code: [Select]
#include <SigFox.h>

/*
  SigFox First Configuration

  This sketch demonstrates the usage of MKRFox1200 SigFox module.
  Since the board is designed with low power in mind, it depends directly on ArduinoLowPower library

  This example code is in the public domain.
*/

#include <SigFox.h>
#include <ArduinoLowPower.h>

void setup() {
  Serial.begin(9600);
  while (!Serial) {};

  // Uncomment this line and comment begin() if you are working with a custom board
  //if (!SigFox.begin(SPI1, 30, 31, 33, 28, LED_BUILTIN)) {
  if (!SigFox.begin()) {
    Serial.println("Shield error or not present!");
    return;
  }
  // Enable debug led and disable automatic deep sleep
  // Comment this line when shipping your project :)
  SigFox.debug();

  String version = SigFox.SigVersion();
  String ID = SigFox.ID();
  String PAC = SigFox.PAC();

  // Display module informations
  Serial.println("MKRFox1200 Sigfox first configuration");
  Serial.println("SigFox FW version " + version);
  Serial.println("ID  = " + ID);
  Serial.println("PAC = " + PAC);

  Serial.println("");

  Serial.print("Module temperature: ");
  Serial.println(SigFox.internalTemperature());

  Serial.println("Register your board on https://backend.sigfox.com/activate with provided ID and PAC");

  delay(100);

  // Send the module to the deepest sleep
  SigFox.end();

  Serial.println("Type the message to be sent");
  while (!Serial.available());

  String message;
  while (Serial.available()) {
    message += (char)Serial.read();
  }

  // Every SigFox packet cannot exceed 12 bytes
  // If the string is longer, only the first 12 bytes will be sent

  if (message.length() > 12) {
    Serial.println("Message too long, only first 12 bytes will be sent");
  }

  Serial.println("Sending " + message);

  // Remove EOL
  message.trim();

  // Example of message that can be sent
  // sendString(message);

  Serial.println("Getting the response will take up to 50 seconds");
  Serial.println("The LED will blink while the operation is ongoing");

  // Example of send and read response
  sendStringAndGetResponse(message);
}

void loop()
{
}

void sendString(String str) {
  // Start the module
  SigFox.begin();
  // Wait at least 30mS after first configuration (100mS before)
  delay(100);
  // Clears all pending interrupts
  SigFox.status();
  delay(1);

  SigFox.beginPacket();
  SigFox.print(str);

  int ret = SigFox.endPacket();  // send buffer to SIGFOX network
  if (ret > 0) {
    Serial.println("No transmission");
  } else {
    Serial.println("Transmission ok");
  }

  Serial.println(SigFox.status(SIGFOX));
  Serial.println(SigFox.status(ATMEL));
  SigFox.end();
}

void sendStringAndGetResponse(String str) {
  // Start the module
  SigFox.begin();
  // Wait at least 30mS after first configuration (100mS before)
  delay(100);
  // Clears all pending interrupts
  SigFox.status();
  delay(1);

  SigFox.beginPacket();
  SigFox.print(str);

  int ret = SigFox.endPacket(true);  // send buffer to SIGFOX network and wait for a response
  if (ret > 0) {
    Serial.println("No transmission");
  } else {
    Serial.println("Transmission ok");
  }

  Serial.println(SigFox.status(SIGFOX));
  Serial.println(SigFox.status(ATMEL));

  if (SigFox.parsePacket()) {
    Serial.println("Response from server:");
    while (SigFox.available()) {
      Serial.print("0x");
      Serial.println(SigFox.read(), HEX);
    }
  } else {
    Serial.println("Could not get any response from the server");
    Serial.println("Check the SigFox coverage in your area");
    Serial.println("If you are indoor, check the 20dB coverage or move near a window");
  }
  Serial.println();

  SigFox.end();
}


Voici le résultat:

Le croquis utilise 38488 octets (14%) de l'espace de stockage de programmes. Le maximum est de 262144 octets.
Atmel SMART device 0x10010005 found
Device       : ATSAMD21G18A
Chip ID      : 10010005
Version      : v2.0 [Arduino:XYZ] Mar 10 2017 12:20:17
Address      : 8192
Pages        : 3968
Page Size    : 64 bytes
Total Size   : 248KB
Planes       : 1
Lock Regions : 16
Locked       : none
Security     : false
Boot Flash   : true
BOD          : true
BOR          : true
Arduino      : FAST_CHIP_ERASE
Arduino      : FAST_MULTI_PAGE_WRITE
Arduino      : CAN_CHECKSUM_MEMORY_BUFFER
Erase flash
done in 0.816 seconds

Write 38952 bytes to flash (609 pages)

[===                           ] 10% (64/609 pages)
[======                        ] 21% (128/609 pages)
[=========                     ] 31% (192/609 pages)
[============                  ] 42% (256/609 pages)
[===============               ] 52% (320/609 pages)
[==================            ] 63% (384/609 pages)
[======================        ] 73% (448/609 pages)
[=========================     ] 84% (512/609 pages)
[============================  ] 94% (576/609 pages)
[==============================] 100% (609/609 pages)
done in 0.255 seconds

Verify 38952 bytes of flash with checksum.
Verify successful
done in 0.059 seconds
CPU reset.
La carte sur COM25 n'est pas disponible

Note: Afin de valider et téléverser le programme dans l'Arduino je suis obligé de pressez deux fois le bouton de Reset de la carte afin de "réveiller" le module, si non j'ai un message d'erreur dans l'IDE m'indiquant qu'il ni a pas de carte connectée.

Merci pour vos suggestions !



Go Up