I have the Adafruit BMP183 SPI Barometric Pressure & Altitude Sensor and it works (sort of).
Test result with Intel Edison:
Pressure: 111265.00 Pascals / 1112.65 millibar (hPa)
Temperature: 14.77 C
As you can see, the room temperature is around 20 C but it reads 14.77 C. When I put I hand on/off it, the value did change though.
Sometime, it is even worse, I saw something like 90 C many times.
I used the Adafruit_BMP183 library and BMP183test sketch from Adafruit web site.
Any idea why this happens with Intel Edison? Thanks a lot!
Also, the pressure is off as well. The room pressure is around 1020 mbar, but it reads 1112.65 mbar.
Adafruit BMP183 SPI Barometric Sensor issue with Intel Ediso
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
-
- Posts: 3
- Joined: Wed Jan 04, 2012 3:01 am
- Franklin97355
- Posts: 23910
- Joined: Mon Apr 21, 2008 2:33 pm
Re: Adafruit BMP183 SPI Barometric Sensor issue with Intel E
Have you tried this with an Arduino to make sure the code and your connections are sound? Also post on the Edison forums as someone over there may have found a reason this is happening.
-
- Posts: 3
- Joined: Wed Jan 04, 2012 3:01 am
Re: Adafruit BMP183 SPI Barometric Sensor issue with Intel E
Thanks for the reply! I have tested with UNO board and everything works fine. See below for testing result. Any idea why the code doesn't work for Intel Edison? Thanks again!
Pressure: 100461 Pascals / 1004 millibar (hPa)
Temperature: 23.97 C
Sea level pressure: 1013.25 millibar/hPa
Altitude: 72.27 m
Pressure: 100461 Pascals / 1004 millibar (hPa)
Temperature: 23.97 C
Sea level pressure: 1013.25 millibar/hPa
Altitude: 72.27 m
-
- Posts: 3
- Joined: Wed Jan 04, 2012 3:01 am
Re: Adafruit BMP183 SPI Barometric Sensor issue with Intel E
I made it work!
Basically, the raw values read from UNO and Edison are same, but the following code doesn't read the registers' values from Edison correctly (see below for my testing results),
/* read calibration data */
ac1 = read16(BMP183_REGISTER_CAL_AC1);
ac2 = read16(BMP183_REGISTER_CAL_AC2);
ac3 = read16(BMP183_REGISTER_CAL_AC3);
ac4 = read16(BMP183_REGISTER_CAL_AC4);
ac5 = read16(BMP183_REGISTER_CAL_AC5);
ac6 = read16(BMP183_REGISTER_CAL_AC6);
b1 = read16(BMP183_REGISTER_CAL_B1);
b2 = read16(BMP183_REGISTER_CAL_B2);
mb = read16(BMP183_REGISTER_CAL_MB);
mc = read16(BMP183_REGISTER_CAL_MC);
md = read16(BMP183_REGISTER_CAL_MD);
From UNO board,
ac1 = 7553
ac2 = -1093
ac3 = -14411
ac4 = 33233
ac5 = 25446
ac6 = 13402
b1 = 6515
b2 = 39
mb = -32768
mc = -11786
md = 2548
From Edison Board,
ac1 = 7553
ac2 = -1093
ac3 = -19071
ac4 = 25446
ac5 = 23065
ac6 = 39
b1 = 209
b2 = 2548
mb = 188
mc = 0
md = 0
As a temporary workaround, I just hard coded these variables with the values I got from UNO board in the following functions and it works now!
getTemperature()
getPressure()
For long term solution, I may need a little more time to figure it out. If you have any input, please do let me know, thanks a lot!
Basically, the raw values read from UNO and Edison are same, but the following code doesn't read the registers' values from Edison correctly (see below for my testing results),
/* read calibration data */
ac1 = read16(BMP183_REGISTER_CAL_AC1);
ac2 = read16(BMP183_REGISTER_CAL_AC2);
ac3 = read16(BMP183_REGISTER_CAL_AC3);
ac4 = read16(BMP183_REGISTER_CAL_AC4);
ac5 = read16(BMP183_REGISTER_CAL_AC5);
ac6 = read16(BMP183_REGISTER_CAL_AC6);
b1 = read16(BMP183_REGISTER_CAL_B1);
b2 = read16(BMP183_REGISTER_CAL_B2);
mb = read16(BMP183_REGISTER_CAL_MB);
mc = read16(BMP183_REGISTER_CAL_MC);
md = read16(BMP183_REGISTER_CAL_MD);
From UNO board,
ac1 = 7553
ac2 = -1093
ac3 = -14411
ac4 = 33233
ac5 = 25446
ac6 = 13402
b1 = 6515
b2 = 39
mb = -32768
mc = -11786
md = 2548
From Edison Board,
ac1 = 7553
ac2 = -1093
ac3 = -19071
ac4 = 25446
ac5 = 23065
ac6 = 39
b1 = 209
b2 = 2548
mb = 188
mc = 0
md = 0
As a temporary workaround, I just hard coded these variables with the values I got from UNO board in the following functions and it works now!
getTemperature()
getPressure()
For long term solution, I may need a little more time to figure it out. If you have any input, please do let me know, thanks a lot!
- parth9966
- Posts: 4
- Joined: Thu Jan 08, 2015 2:41 am
Re: Adafruit BMP183 SPI Barometric Sensor issue with Intel E
hi ,Tomx you got any solution about temperature sensor with intel edison ?
i have same problem ...here.
thanks!
i have same problem ...here.
thanks!
Please be positive and constructive with your questions and comments.