Stap 3: Arduino code
#include < Wire.h >#include < Adafruit_Sensor.h > //library beschikbaar op adafruit.com
#include < Adafruit_BMP085.h > //library beschikbaar op adafruit.com
Adafruit_BMP085 bmp = Adafruit_BMP085(10085);
int wSpeed;
int wDirect;
int temp1;
int press1;
int wsee;
/**************************************************************************/
/*
Arduino setup functie (die automatisch bij het opstarten wordt genoemd)
*/
/**************************************************************************/
void setup(void)
{
Serial.begin(9600);
/ * De sensor te initialiseren * /
if(!BMP.begin())
{
/ * Er was een probleem opsporen van de BMP085... check van uw verbindingen * /
Serial.Print ("Ooops, geen BMP085 gedetecteerd... Check uw bedrading of I2C ADDR!");
while(1);
}
}
void loop(void)
{
/ * Krijg een nieuwe sensor-gebeurtenis * /
sensors_event_t evenement;
bmp.getEvent(&event);
wsee=analogRead(a0);
wSpeed=map(wsee,0,1023,0,1534); Dit gaf me na het testen van nauwkeurige windsnelheid
wDirect=analogRead(A1); het is verschillend voor uw anemometer
/ * De resultaten (luchtdruk is maatregel in hPa) weergeven * /
Als (event.pressure)
{
/ * Sfeervolle pressue in hPa weergeven * /
press1=map(Event.pressure,850,1100,0,1023);
/ * Druk berekenen hoogte met een redelijke nauwkeurigheid vereist *
* zeespiegel druk voor uw positie op dit moment de gegevens *
* omgezet, evenals de omgevingstemperatuur in accrediteerde *
* Celsius. Hebt u geen van deze waarden, een 'generieke' waarde van *
* 1013.25 hPa kan worden gebruikt (gedefinieerd als SENSORS_PRESSURE_SEALEVELHPA *
* in sensors.h), maar dit is niet ideaal en krijgt de variabele *
* de resultaten van de ene dag naar de volgende. *
* *
* Kun je meestal vinden de huidige SLP-waarde door te kijken naar weer *
* websites of van milieu-informatie centra in de buurt van alle grote *
* luchthaven. *
* *
* Bijvoorbeeld voor Parijs, kunt u het huidige gemiddelde *
* druk en het zeeniveau op: http://bit.ly/16Au8ol * /
/ * Eerst krijgen we de huidige temperatuur van de BMP085 * /
float temperatuur;
bmp.getTemperature(&temperature);
temp1=map(Temperature,-30,55,0000,1023);
}
Als (wSpeed < 1000 & & wSpeed > 99) {}
Serial.Print("0"); deze als verklaringen 0 tot toevoegen de
Serial.Print(wSpeed); toonaangevende om een tekenreeks van te maken
} //16 nummers te sturen via de USB
else if (wSpeed < 100 & & wSpeed > 9)
{
Serial.Print("00");
Serial.Print(wSpeed);
}
anders if(wSpeed<10) {}
Serial.Print("000");
Serial.Print(wSpeed);
}
else {}
Serial.Print(wSpeed);
}
Als (press1 < 1000 & & press1 > 99) {}
Serial.Print("0");
Serial.Print(press1);
}
else if (press1 < 100 & & press1 > 9)
{
Serial.Print("00");
Serial.Print(press1);
}
anders if(press1<10) {}
Serial.Print("000");
Serial.Print(press1);
}
else {}
Serial.Print(press1);
}
Als (temp1 < 1000 & & temp1 > 99) {}
Serial.Print("0");
Serial.Print(temp1);
}
anders als (temp1 < 100 & & temp1 > 9)
{
Serial.Print("00");
Serial.Print(temp1);
}
anders if(temp1<10) {}
Serial.Print("000");
Serial.Print(temp1);
}
else {}
Serial.Print(temp1);
}
Als (wDirect < 1000 & & wDirect > 99) {}
Serial.Print("0");
Serial.Print(wDirect);
}
else if (wDirect < 100 & & wDirect > 9)
{
Serial.Print("00");
Serial.Print(wDirect);
}
anders if(wDirect<10) {}
Serial.Print("000");
Serial.Print(wDirect);
}
else {}
Serial.Print(wDirect);
}
Serial.Print("\n");
delay(996); 2 - 2 vertragingen voor analoog naar digitaal converter
aan stabalize en 996 vertraging voor het genereren van een seconde intervallen
} .