ajouter une liaison sans fil avec un APC220 sur un data logger

Bonjour,

je débute dans l’arduino (en fait cela fait un an que je me suis lancé) et je cherche à améliorer un data logger pour un projet éducatif. Le but est de mesurer la température de l’eau de mer sur un bateau radiocommandé, de l’enregistrer sur SD en précisant l’heure et de récupérer en même temps ces données sur un ordinateur distant.

La partie data logger fonctionne bien. J’ai utiliser une carte arduino uno R3, un capteur de température DS18B20, un lecteur SD et un RTC DS3231. En liaison série, le moniteur de l’IDE m’affiche bien les valeurs. En rajoutant l’APC220 côté arduino et un APC220 couplé côté PC, le résultat est nul:j’utilise le logiciel serial port utility pour faire les tests avec l’APC220 car depuis la version 1.6 de l’IDE, l’affichage est impossible (pourquoi?)

J’ai testé l’APC220 seul. Le code est le suivant. aucun problème.


void setup()
{
Serial.begin(9600); //Set serial baud rate to 9600
}

void loop()
{
Serial.println(“Hello!”); //print out hello string
delay(1000); //1 second delay
}


Je teste la SD seule. Pas de problème, les messages s’inscrivent par liaison USB. Je rajoute l’APC220 à la place de l’USB, pas de données. J’ai testé avec une lecteur SD puis avez un ethernet shield (code ci dessous):


/*

#include <SD.h>
#include <SPI.h>

File myFile;

int pinCS = 4; // Pin 10 on Arduino Uno, Pin 4 sur Ethernet Shield, pin 11,12 et 13 pour les autres

void setup() {

pinMode(10, OUTPUT); // Ethernet désactivé
digitalWrite(10,HIGH);
Serial.begin(9600);

// SD Card Initialization
if (SD.begin(4))
{
Serial.println(“SD card is ready to use.”);
} else
{
Serial.println(“SD card initialization failed”);
return;
}

// Create/Open file
myFile = SD.open(“test.txt”, FILE_WRITE);

// if the file opened okay, write to it:
if (myFile) {
Serial.println(“Writing to file…”);
// Write to file
myFile.println(“Testing text 1, 2 ,3…”);
myFile.close(); // close the file
Serial.println(“Done.”);
}
// if the file didn’t open, print an error:
else {
Serial.println(“error opening test.txt”);
}

// Reading the file
myFile = SD.open(“test.txt”);
if (myFile) {
Serial.println(“Read:”);
// Reading the whole file
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
else {
Serial.println(“error opening test.txt”);
}

}
void loop() {
// empty
}


Dernier code, celui du data logger qui fonctionne en liaison série par USB:


/*

#include <SD.h>
#include <SPI.h>
#include <DS3231.h>
#include <OneWire.h>
#include <DallasTemperature.h>

File myFile;
DS3231 rtc(SDA,SCL);

int pinCS = 10; // Pin 10 on Arduino Uno

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);

// SD Card Initialization
if (SD.begin())
{
Serial.println(“SD card is ready to use.”);
} else
{
Serial.println(“SD card initialization failed”);
return;
}
rtc.begin();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
Serial.print(rtc.getTimeStr());
Serial.print(",");
Serial.print(int(rtc.getTemp()));
Serial.print(",");
Serial.println(sensors.getTempCByIndex(0));
myFile = SD.open(“test.txt”, FILE_WRITE);
if (myFile) {
myFile.print(rtc.getTimeStr());
myFile.print(",");
myFile.print(int(rtc.getTemp()));
myFile.print(",");
myFile.println(int(sensors.getTempCByIndex(0)));
myFile.print(",");
myFile.close(); // close the file
}
// if the file didn’t open, print an error:
else {
Serial.println(“error opening test.txt”);
}
delay(3000);
}


Bref, je suis un peu bloqué…
Es-ce un problème entre la communication sans fil et la carte ED. Faut-il utiliser un arduino méga qui possède plusieurs paires TX/RX.

J’ai bien pensé à utiliser du Xbee à la place de l’APC220 mais le fournisseur est incapable pour le moment de me livrer au Vanuatu (alors qu’il n’y a pas de soucis d’habitude)

Je pense qu’il faut modifier quelque chose au niveau du code mais je débute. Si vous avez des idées ou des solutions, je suis preneur.

Merci d’avance.

Jean-Philippe

Pour l'émetteur - Sur quelles pins est connecté l'APC220 ? Si c'est 0/1 vous ne pouvez pas avoir en même temps la sortie dans la console série par USB de cet uno (et Le module est alimenté comment?)

Pour faire mes tests, la carte arduino est alimentée et branchée d'abord en USB sur le PC (com 4). Je televerse le programme et le test via le moniteur série (IDE ou autre logiciel). Pas de problème.

Je déconnecte l'USB. Je connecte l'APC220 sur la carte (VCC -->5V, GND -->GND, RX -->TX et TX-RX) et l'autre APC220 via l'adaptateur USB côté PC j'essaie de lire sur le com 7. Et là, rien.

si je téléverse le code simple de test de l'APC220 et que je fais la même procédure, il n'y a pas de problème.

Bref, la communication ne semble pas se faire dès qu'il y a le lecteur SD...

Une idée ou un conseil?