08 ožu easyC BMP180 – mjerenje temperature i tlaka zraka
Što ćete naučiti:
– Spojiti BMP180 senzor koristeći easyC priključak
– Očitati i prikazati temperaturu i tlak zraka
Zadatak
Spojite BMP180 senzor koristeći easyC priključak na nosač Arduino MKR1000 mikrokontrolera te izradite program kojim ćete na Serial Monitor-u prikazati tlak i temperaturu zraka.
Kako bi uspješno riješili zadatak, preuzmite biblioteku SFE_BMP180.h na svoje računalo i dodajte je u Arduino razvojno okruženje odabirom Sketch -> Include Library -> Add .ZIP Library…
Prikaz spajanja
Arduino kod
#include "SFE_BMP180.h" // omogućava korištenje BMP180 senzora #include "Wire.h" SFE_BMP180 tlak; double tlakZraka, tempZraka; void setup() { Serial.begin(9600); // provjera je li senzor povezan i radi li sve ispravno if(tlak.begin()) Serial.println("BMP180 uspjesno povezan."); else { Serial.print("BMP180 nije uspjesno povezan."); while(1); } } void loop() { // ocitavam i printam tlak zraka tlakZraka = ocitajTlak(); Serial.println("Tlak zraka = " + String(tlakZraka) + "hPa"); // ocitavam i zapisujem temp zraka tempZraka = ocitajTemperaturu(); Serial.print("Temp zraka = " + String(tempZraka)); Serial.print(char(248)); Serial.println("C"); // ispisuj podatke svakih 1000ms = 1sekundu delay(1000); Serial.println(); } double ocitajTlak() { char status; /* * definiramo varijable: * temp - temperatura zraka * Tlak - tlak zraka * tlak0 - tlak na povrsini mora * nadVisina - nadmorska visina */ double temp, Tlak, tlak0, nadVisina; status = tlak.startTemperature(); if(status != 0) { delay(status); status = tlak.getTemperature(temp); if(status != 0) { status = tlak.startPressure(3); if(status != 0) { delay(status); status = tlak.getPressure(Tlak,temp); if(status != 0) { return(Tlak); } } } } } double ocitajTemperaturu() { char status; double temp; status = tlak.startTemperature(); if(status != 0) { delay(status); status = tlak.getTemperature(temp); if(status != 0) { return(temp); } } }