Getting back to my IoT projects, I decided to pick up a temperature sensor. While looking through the Adafruit breakout boards, I found they offered nine different digital temperature sensors! This list is in addition to the analog TMP36 temperature sensor, so that’s ten. I needed an Adafruit Temperature Sensor comparison.
With so many options, I quickly found myself getting lost between the various modules. The 10 I found all measured temperature and provided an I2C interface. Except for the MCP9808 board, they all made at least one other type of measurement. The MCP9808 is the cheapest digital temperature sensor breakout that Adafruit offers, and also the most accurate.
I couldn’t find a comparison in my quick search, so I built my own comparison table. Here’s my chart for an Adafruit Temperature Sensor comparison of their breakout boards.
Updated: 2016-JUL-27
If you want three measurements: Temperature, Humidity, and Barometric pressure the clear winner is the Bosch BME280 board. At about 20 bucks, there isn’t a combination of other breakouts that would work. The tradeoff, however, is that it’s humidity sensor isn’t as accurate as some of the other options.
If you’re interested in any of the boards, just the SKU in the first column to either search their site or go directly there with this URL:
https://www.adafruit.com/products/#product sku#
Understanding the Adafruit Temperature Sensor Comparison Chart
While most of my columns are probably obvious, I’ve written some notes about each.
Sensor / Board VCC
These sensors can work on 3.3V systems, while most will work at lower voltages. Adafruit’s breakout boards contain 3.3V regulators and level-shifters for boards not compatible with 5V systems. I broke out the information into two columns. If you’re considering one of these sensors for a project without an Adafruit board, keep in mind, most are designed for 3.3V logic.
Also, in most cases, there are pull-up resistors on the breakout boards. Don’t forget those when you are designing the chip into your own PCB.
I2C Addresses
Except for the BMP183, all of these modules support I2C. Only two offer user-settable addresses. You’ll want to keep this in mind for whatever other I2C devices your project contains. You may also want to consider one of the SPI alternatives if you suspect an address collision may happen. (Each I2C widget needs its own address.)
Bosch Sensors
There are several Bosch sensors offered by Adafruit. It is pretty easy to get all of the part numbers mixed up. The BMP180 and BMP183 appear to be the same sensor, but different with ad digital interface. Also, don’t confuse the BMP280 and the BME280. The “P” model lacks the humidity sensor.
Using the BME280 on a Raspberry Pi? Check out this BME280 I2C Temperature Sensor in Python Tutorial.
Altitude measurement
If you read the Adafruit descriptions, any of the sensors that offer a barometric sensor you can also make altitude “measurements.” However, only the MPL3115A2 based board provides a built-in altitude measurement.
Conclusion
After building my Adafruit temperature sensor comparison, I found the clear winner for me. For my data logging project, the Adafruit BME280 breakout’s combination of temperature, humidity, and barometric pressure is perfect. After I get it in my lab, I will let you know how I integrated it with MQTT. Want to see what I’m working on? Subscribe to my RSS or email to find out in a future post. 😉
Fan of making things beep, blink and fly. Created AddOhms. Writer for Hackster.io News. Freelance electronics content creator for hire! KN6FGY and, of course, bald.
Chris offered this weather “proofed” module which is bread-boardable, even though it isn’t a module. –Totally missed that one!
Adafruit also sells the AM2315 (I2C temp & humidity sensor). It’s a nice unit. It’s not a “break-out” version but is easy to setup on a bread board and circuit board (4 pins & two resistor for the I2C pull-ups.
Vilmos sent me some additional information that is great, so wanted share it with you all.
My experiences was the following:
Sensirion sourcing is not easy and so expensive, although the company is really professional and making most of they products for medical industries.
Usually the humidity sensors are used in a moisture and dirt environment, where the PCBs should be coated. If the coating material is covering the hole on the top of the sensor it will not work correctly. Some humidity sensors have the hole on the bottom side of the chip. For example, TI HDC1008, which can improve the dirt resistant and it can be solve the coating problem too.
MCP9808 precision is really good and does not require to calibrate. The chip price is better than Adafruit solution. $1.13 USD at Digikey with free international shipping.
The sourcing of the chip is really important if you want to manufacturing a product. But as I see your BME280 can be buy from more US distributor in a really good price. http://www.findchips.com/search/bme280 The chip price at Future Electronics is 3.78 USD only, therefore the 20 USD adafruit price seems terrible high.
(James Note: This is really true for all of them. For a prototype, Adafruit modules are great. Sure you can buy the chip and get a cheap PCB made and solder them. But at even $20, for a prototype, that’s a great way to go. Once you are ready to source the bare chip for a product, you need to look at a component distributor like Mouser or Digikey.)
Like other websites, this one uses cookies to remember things. Mostly, I use Google Analytics to know how many people come here. ¯\_(ツ)_/¯
By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
CookieLawInfoConsent
1 year
Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Cookie
Duration
Description
language
session
This cookie is used to store the language preference of the user.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
_ga
2 years
The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
_ga_LHR6J24XSY
2 years
This cookie is installed by Google Analytics.
_gat_gtag_UA_42726312_1
1 minute
Set by Google to distinguish users.
_gid
1 day
Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.
browser_id
5 years
This cookie is used for identifying the visitor browser on re-visit to the website.
CONSENT
2 years
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
VISITOR_INFO1_LIVE
5 months 27 days
A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSC
session
YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devices
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-id
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt.innertube::nextId
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
yt.innertube::requests
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
2 Comments
Chris offered this weather “proofed” module which is bread-boardable, even though it isn’t a module. –Totally missed that one!
Adafruit also sells the AM2315 (I2C temp & humidity sensor). It’s a nice unit. It’s not a “break-out” version but is easy to setup on a bread board and circuit board (4 pins & two resistor for the I2C pull-ups.
Vilmos sent me some additional information that is great, so wanted share it with you all.
My experiences was the following:
Sensirion sourcing is not easy and so expensive, although the company is really professional and making most of they products for medical industries.
Usually the humidity sensors are used in a moisture and dirt environment, where the PCBs should be coated. If the coating material is covering the hole on the top of the sensor it will not work correctly. Some humidity sensors have the hole on the bottom side of the chip. For example, TI HDC1008, which can improve the dirt resistant and it can be solve the coating problem too.
MCP9808 precision is really good and does not require to calibrate. The chip price is better than Adafruit solution. $1.13 USD at Digikey with free international shipping.
The sourcing of the chip is really important if you want to manufacturing a product. But as I see your BME280 can be buy from more US distributor in a really good price. http://www.findchips.com/search/bme280 The chip price at Future Electronics is 3.78 USD only, therefore the 20 USD adafruit price seems terrible high.
(James Note: This is really true for all of them. For a prototype, Adafruit modules are great. Sure you can buy the chip and get a cheap PCB made and solder them. But at even $20, for a prototype, that’s a great way to go. Once you are ready to source the bare chip for a product, you need to look at a component distributor like Mouser or Digikey.)