Bonsoir
je suis ne train de programmer ma station météo avec un moteur et boutons pour fermer "l'ouverture" en cas de pluie
sauf que j'ai de nouveau un problème
je débute avec XBee et je n'y connais rien
le premier code (celui qui mesure avec les capteurs) échoue à la compilation (j'ai le message no maching funtion ....) bref voici le message d'erreur et il me met aussi que je n'ai pas défini les boutons, mais je ne sais pas comment les définir, car c'est le module XBee qui prend la commande
message d'erreur 1 voir post 2 car je suis limité à 9000 caractères
le code 1 (celui qui prend les données avec les capteurs)
#include <Wire.h>
#include <SFE_BMP180.h>
#include <SoftwareSerial.h>
#include <AccelStepper.h>
SFE_BMP180 bmp180;
SoftwareSerial XBee(0, 1);
AccelStepper stepper1(AccelStepper::FULL4WIRE, 2, 3, 4 ,5);
void setup() {
Serial.begin(9600);
XBee.begin(9600);
bool success = bmp180.begin();
if (success) {
Serial.println("BMP180 init success");
}
stepper1.setMaxSpeed(5000);
stepper1.setSpeed(0);
}
void loop() {
if (Serial.available())
{
XBee.write(Serial.read());
}
if (XBee.available())
{
Serial.write(XBee.read());
}
if (XBee.read(bouton1 == LOW)){
steppeer1.setSpeed(5000);
}
if (XBee.read(bouton2 == LOW)){
steppeer1.setSpeed(-5000);
}
else {
stepper1.setSpeed(0);
}
stepper1.runSpeed();
char status;
double T, P;
bool success = false;
status = bmp180.startTemperature();
if (status != 0) {
delay(1000);
status = bmp180.getTemperature(T);
if (status != 0) {
status = bmp180.startPressure(3);
if (status != 0) {
delay(status);
status = bmp180.getPressure(P, T);
if (status != 0) {
Serial.print("Pressure: ");
Serial.print(P);
Serial.println(" hPa");
if (Serial.available())
{
XBee.write(Serial.read());
}
if (XBee.available())
{
Serial.write(XBee.read());
}
if (XBee.read(bouton1 == LOW)){
steppeer1.setSpeed(5000);
}
if (XBee.read(bouton2 == LOW)){
steppeer1.setSpeed(-5000);
}
else {
stepper1.setSpeed(0);
}
stepper1.runSpeed();
delay(10000);
Serial.print("Temperature: ");
Serial.print(T);
Serial.println(" C");
if (Serial.available())
{
XBee.write(Serial.read());
}
if (XBee.available())
{
Serial.write(XBee.read());
if (XBee.read(bouton1 == LOW)){
steppeer1.setSpeed(5000);
}
if (XBee.read(bouton2 == LOW)){
steppeer1.setSpeed(-5000);
}
else {
stepper1.setSpeed(0);
}
stepper1.runSpeed();
}
}
}
}
}
}
le deuxième problème est celui avec le deuxième code (celui qui fait le "poste des commandes")
il me met "Stepper 1 was not declared in this scope"
mais comme le Stepper 1 est utilisé avec l'arduino qui prend les mesures, je ne sais pas comme définir ce stepper1
le code 2
#include <SoftwareSerial.h>
SoftwareSerial XBee(0, 1);
const int bouton1 = 2;
const int bouton2 = 3;
void setup()
{
XBee.begin(9600);
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
XBee.write(Serial.read());
}
if (XBee.available())
{
XBee.write(XBee.read());
}
if (digitalRead(bouton1 == LOW)){
XBee.write(steppeer1.setSpeed(5000));
}
if (digitalRead(bouton2 == LOW)){
XBee.write(steppeer1.setSpeed(-5000));
}
else {
XBee.write(stepper1.setSpeed(0));
}
XBee.write(stepper1.runSpeed());
}
avez-vous une idée ??????
Merci
cdt