Bonjour,
je reviens vers vous avec un nouveau problème ...
j'essaie d'enregistrer le nombre de clignotement d'une led sur une carte SD puis de stocker cette valeur sur COSM.
j'ai donc commencé par l'enregistrement sur la carte SD => cela fonctionne
puis j'ai essayé l'envoie d'une valeur à COSM avec l'exemple de l'IDE cela fonctionne
j'essaie maintenant de regrouper les deux progs et là ... problème
j'ai dans l'interface série ceci qui n'arrête pas de défiler
InitInitialisation de la SD card...
InitInitialisation de la SD card...
InitInitialisation de la SD card...
InitInitialisation de la SD card...
j'ai essayé d'isoler le morceaux de code pour identifier d'ou vient le problème mais impossible de trouver ce qui cloche.
Auriez vous une idée ?
#include <SD.h>
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <Time.h>
// --- Déclaration des constantes utiles ---
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
// cosm
#define APIKEY "xxxxxxxxxxxxxxxxxx" // replace your Cosm api key here
#define FEEDID 56809 // replace your feed ID
#define USERAGENT "Vera" // user agent is the project name
//
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
unsigned int localPort = 8888; // local port to listen for UDP packets
IPAddress timeServer(192, 43, 244, 18); // time.nist.gov NTP server
const int NTP_PACKET_SIZE= 48; // NTP time stamp is in the first 48 bytes of the message
byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets
// A UDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
// cosm
// initialize the library instance:
EthernetClient client;
char server[] = "api.cosm.com"; // name address for cosm API
unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
boolean lastConnected = false; // state of the connection last time through the main loop
const unsigned long postingInterval = 10*1000; //delay between updates to cosm.com
//
time_t prevDisplay = 0; // when the digital clock was displayed
const int timeZoneOffset = +1; // GMT zone;
// --- Déclaration des constantes des broches E/S numériques ---
const int brocheSDCardSelect=4;
// --- Déclaration des constantes des broches analogiques ---
// --- Déclaration des variables globales ---
volatile long comptageImpulsion=0; // variable accessible dans la routine interruption externe 0
int test; // Variable utilisée pour tester valeur renvoyée par fonctions SD Card
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
File file; // objet file
File root; // objet root pour le répertoire racine
// ////////////////////////// 2. FONCTION SETUP = Code d'initialisation //////////////////////////
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --- ici instructions à exécuter 1 seule fois au démarrage du programme ---
// ------- Initialisation fonctionnalités utilisées -------
Serial.begin(115200); // initialise connexion série à 115200 bauds
// IMPORTANT : régler le terminal côté PC avec la même valeur de transmission
//---- initialise l'utilisation de la carte mémoire SD en mode SPI
pinMode(10, OUTPUT); // met la broche 10 (SS) en sortie (nécessaire avec module ethernet)
digitalWrite(10, HIGH); // mais désactive le circuit intégré W5100 du module ethernet!
//----- initialisation de la carte SD -----
Serial.println("Initialisation de la SD card...");
pinMode(10, OUTPUT); // laisser la broche SS en sortie - obligatoire avec librairie SD
test=SD.begin(brocheSDCardSelect); // initialisation de la carte SD avec broche 4 en tant que CS - renvoie true/false
if (test!=true) { // si initialisation n'est pas réussie
Serial.println("Echec initialisation!"); // message port Série
}
else { // si nitialisation réussie
Serial.println("Initialisation reussie !"); // message port Série
//----- affiche le contenu du répertoire
root = SD.open("/"); // ouvre la SD Card à la racine
Serial.println("Repertoire racine ouvert !");
}
attachInterrupt(0, gestionINT0, RISING); // attache l'interruption externe n°0 à la fonction gestionINT0()
// mode déclenchement possibles = LOW, CHANGE, RISING, FALLING
// start Ethernet and UDP
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
Udp.begin(localPort);
setSyncProvider(getNtpTime);
while(timeStatus()== timeNotSet)
; // wait until the time is set by the sync provider
//---- crée fichier en écriture ---
file = SD.open("data.txt", FILE_WRITE); // ouvre le fichier en écriture
// NB : le fichier est créé si il n'existe pas !
//---- test si fichier dispo en écriture
if (!file) { // si fichier pas dispo
Serial.println ("Erreur ouverture fichier !");
} // fin if
else { // si le fichier existe et est ouvert
Serial.println ("Fichier pret pour ecriture !");
//----- Ecriture dans le fichier au format CSV -----
// premiere ligne du fichier CSV - entete avec liste des champs
file.println("Nbreimpulsion;Millis;Heure;Minute;Seconde;Jour;Mois;Annee");
file.close(); // ferme le fichier
Serial.println("Fin enregistrement !");
Serial.println("Fermeture fichier !");
}
// ------- Broches en sorties numériques -------
// ------- Broches en entrées numériques -------
// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------
// ------- Initialisation des variables utilisées -------
} // fin de la fonction setup()