Project to use SF weather shield over cell link
Dependencies: MPL3115A2_for_weather_shield htu21d_for_weather_shield mbed
Diff: main.cpp
- Revision:
- 0:924cb994fc16
diff -r 000000000000 -r 924cb994fc16 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Oct 20 16:49:21 2016 +0000 @@ -0,0 +1,86 @@ +#include "mbed.h" +#include "MPL3115A2.h" +#include "htu21d.h" + + +I2C i2c(I2C_SDA, I2C_SCL); // sda, scl +Serial pc(USBTX, USBRX); // tx, rx +MPL3115A2 mpl(&i2c, &pc); +htu21d htu(i2c); +DigitalOut bled(PTC3); +DigitalOut gled(PTC12); +AnalogIn light(A1); +AnalogIn lightref(A3); + +float readLightSensor(AnalogIn sig, AnalogIn ref); + +int main() { + pc.baud(115200); + wait_ms(300); + gled.write(1); + bled.write(1); + + + pc.printf("** Temperature Shield **\r\n"); + + + // Initialize the MPL3115A2 pressure and temp. + Temperature t; + Pressure p; + + mpl.init(); + pc.printf("MPL3115A2 ID: 0x%X\r\n", mpl.whoAmI()); + // Offsets for Dacula, GA + mpl.setOffsetTemperature(20); + mpl.setOffsetPressure(-32); + + + //initialize the HTU21D humidity and temp. + float H21Temp = 0.0; //Temperture from HTU21D + float H21Hum = 0.0; //Humidity from HTU21D + int htu21 = htu.softReset(); + if(htu21 == 0){ + pc.printf(" - HTU21D broken...\r\n"); + } + else{ + uint8_t HTU21DuserReg = htu.getUserReg(); + pc.printf("HTU21D UserReg: 0x%02x SN: 0x%04x %08x %04x\r\n", + HTU21DuserReg, htu.HTU21sn.HTU21D_sna, htu.HTU21sn.HTU21D_snb, htu.HTU21sn.HTU21D_snc); + } + + //main loop + while(1) + { + //read mpl + bled = 0; + wait(1); + mpl.readTemperature(&t); + mpl.readPressure(&p); + bled = 1; + pc.printf("Temp: %s C, Pressure: %sPa \r\n", t.print(), p.print()); + + //read htu + gled = 0; + wait(1); + if(htu21 == 1) { //if HTU21D didn't initialize, don't access HTU21D anymore + H21Hum = htu.getHum(); + if((double)H21Hum == 255.0) pc.printf("\r\n*** HTU21D Hum error!!\r\n"); + H21Temp = htu.getTemp(); + if((double)H21Temp == 255.0) pc.printf("\r\n*** HTU21D Temp error!!\r\n"); + } + gled = 1; + pc.printf("Temp: %7.2f C Hum: %4.1f %% \r\n ", H21Temp, H21Hum); + + //read photoresistor + wait(1); + float lightLvl = readLightSensor(light,lightref); + pc.printf("Light: %3.2f \r\n", lightLvl); + + } +} + +float readLightSensor(AnalogIn sig, AnalogIn ref){ + float opVoltage = 3.3/ref.read(); + float lightSen = opVoltage *sig.read(); + return lightSen; + } \ No newline at end of file