robtillaart / sht31 Goto Github PK
View Code? Open in Web Editor NEWArduino library for the SHT31 temperature and humidity sensor
License: MIT License
Arduino library for the SHT31 temperature and humidity sensor
License: MIT License
I tried to compile the example SHT31_I2Cspeed but get a compiler-error
That's what I love best about "examples" if not even the examples compile
heres the full error-message
`C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:47:6: error: prototype for 'bool SHT31::begin(uint8_t, uint8_t, uint8_t)' does not match any in class 'SHT31'
bool SHT31::begin(const uint8_t address, const uint8_t dataPin, const uint8_t clockPin)
^
In file included from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:21:0:
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:35:8: error: candidates are: bool SHT31::begin(uint8_t, TwoWire*)
bool begin(const uint8_t address, TwoWire *wire);
^
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:34:8: error: bool SHT31::begin(uint8_t)
bool begin(const uint8_t address);
^
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:32:8: error: void SHT31::begin(uint8_t, uint8_t, uint8_t)
void begin(const uint8_t address, uint8_t dataPin, uint8_t clockPin);
^
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp: In member function 'void SHT31::setHeatTimeout(uint8_t)':
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: error: no matching function for call to 'min(int, uint8_t&)'
_heatTimeOut = min(180, seconds);
^
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: note: candidates are:
In file included from c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Stefan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Arduino.h:237,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:12,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:21:
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
min(initializer_list<_Tp> __l, _Compare __comp)
^
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4226:5: note: template argument deduction/substitution failed:
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: note: mismatched types 'std::initializer_list<_Tp>' and 'int'
_heatTimeOut = min(180, seconds);
^
In file included from c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\algorithm:62:0,
from C:\Users\Stefan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Arduino.h:237,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:12,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:21:
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>)
min(initializer_list<_Tp> __l)
^
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algo.h:4221:5: note: template argument deduction/substitution failed:
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: note: mismatched types 'std::initializer_list<_Tp>' and 'int'
_heatTimeOut = min(180, seconds);
^
In file included from c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Stefan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Arduino.h:237,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:12,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:21:
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: template argument deduction/substitution failed:
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'uint8_t {aka unsigned char}')
_heatTimeOut = min(180, seconds);
^
In file included from c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\algorithm:61:0,
from C:\Users\Stefan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Arduino.h:237,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.h:12,
from C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:21:
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&)
min(const _Tp& __a, const _Tp& __b)
^
c:\users\stefan\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:193:5: note: template argument deduction/substitution failed:
C:\Users\Stefan\Documents\Arduino\libraries\SHT31\SHT31.cpp:137:34: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'uint8_t {aka unsigned char}')
_heatTimeOut = min(180, seconds);
^
Bibliothek Wire in Version 1.0 im Ordner: C:\Users\Stefan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\Wire wird verwendet
Bibliothek SHT31 in Version 0.2.1 im Ordner: C:\Users\Stefan\Documents\Arduino\libraries\SHT31 wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Generic ESP8266 Module.
`
Goal is to prevent that the heater is switched on after it just have been switched of.
The library cannot prevent heating over reboots, but at least it can in normal operation.
if this works the SHT85 needs similar fix.
Hi Rob,
I recently installed your library for my ESP32 T-Beam which I am building with the arduino-esp32 v1.0.6 (from this url). Everything works fine!
However, I decided to update the arduino-esp32 version to 2.0.5 and same code does not work.
This is the conflicting code itself:
SensorX::SensorX() {
Wire.begin();
bool sht_begin = sht.begin(SHT31_ADDRESS);
sht.reset();
Wire.setClock(100000);
}
When commenting sht
(declared as SHT31 sht;
) calls, the rest of the code continues working.
I am using SHT31 v0.3.4 and TinyWireM v1.1.0.
Any help?
Hi, Rob!
I have: Arduino ATmega2560, 4 pcs SHT31.
2 sensors (addr. 0x44 and 0x45) connect to hardware I2C, with you library and wire,
2 senors (addr. 0x44 and 0x45) connect to software I2C, with library https://github.com/felias-fogg/SoftI2CMaster (SoftWire.h)
Everything works fine! But ...I can't make friends SoftWire + SHT31 libraries, to use all the charms of your library.
You could contact the author: https://github.com/felias-fogg and develop a joint decision? or specify me the possible solutions.
Thank you in advance.
Move TwoWire from begin to constructor
Hi, how to effectively use a heater in a real environment? Should it be full time on?
Hello!
I'm making a small tester for an SHT31 that passes though a connector. I'm making a small test to check if the connetor is well made. I tried using the isConnected function and simulate different connection errors and turns out that the funcion returns true when no power is provided to the sensor.
Is this normal or there is an issue?
Using an Arduino Nano board and a common SHT31 sensor board. To trigger this issue, just attach or detach the respective pins
Regards!
I'm planning on using an SHT31 in an environment that's 70 - 100% humidity, I was going to leave the heater on permanently to keep condensation away from the sensor (To both extend its lifespan and provide more accurate humidity readings) and then calculate/compensate for the increased temperature and decreased humidity in code, but I see you have a warning about leaving the heater on for long periods.
Do you have any recommendations (in your experience) with using the heater long term? Is there a minimum heat up and cool down period before taking readings?
Hi there! I'm using your awesome library for a low-power wireless temperature sensor I'm building.
To save power on my wireless node, I want to transmit the raw two-byte values for temperature and humidity instead of the four-byte floats. Would you be open to a PR that:
getTemperature()
and getHumidity()
functions?_needToRecomputeTemp
/_needToRecomputeHumidity
that are set to True when the raw values are read in readData(bool)
. Then, every time getTemperature()
or getHumidity()
check those flags and if they're true, then recompute the value based off the raw two-byte values, store it in the appropriate variable, and set the flag to false, so that if getTemperature()
or getHumidity()
is called again, we skip redundant recomputation and just return the cached value.WDYT?
If this is all too complicated for you and you'd rather not accept a PR like this, no worries--I can always fork the library for my own purposes. I just thought since I was going to do the work anyway, I'd offer to share it back upstream.
Do you have a suggested way of handling errors? I didn't see it in the examples.
Currently I am checking the status and if its less that FFFF then I am assuming I found the sensor.
I am using the sht31 on a probe that can be plugged or unplugged and I noticed that during an unplug I got invalid data as it probably interrupted the read stream. The humidity then showed 100 and the temp showed 1085. Is there a way to to check if the data read back is valid?
Hi, I'm using an Heltec Wireless Stick (ESP32 LoRa, wifi, ble etc).
I wired the sensor and launched the SHT31_IsCOnnected.ino but the result is
23:08:36.642 -> 194035 160 0.0 0.0
23:08:37.644 -> 195035 160 0.0 0.0
23:08:38.644 -> 196035 160 0.0 0.0
23:08:39.644 -> 197035 160 0.0 0.0
23:08:40.644 -> 198035 160 0.0 0.0
23:08:41.648 -> 199035 160 0.0 0.0
23:08:42.660 -> 200035 160 0.0 0.0
23:08:43.660 -> 201035 160 0.0 0.0
23:08:44.661 -> 202035 160 0.0 0.0
23:08:45.661 -> 203035 160 0.0 0.0
what I wrong?
Thank you, bye
check latest PR
Hi Rob,
I have a custom ATSAMD21G18A based board where I try to read 4 SHT31 sensors connected to 2 I2C interfaces.
I have had no luck with Adafruit_SHT31.h library reading both them (switching back and forth to read).
If I declare TwoWire myWire(&sercom5, 16, 17); , I can read only sensors in the second I2C interface.
If I leave out the declaration, I can read only sensors in default I2C interface.
Your library mentions:
Does it mean I could accomplish the task of reading from 2 I2C interfaces with your library?
Could you give an example how to do it exactly? How to switch back on forth reading with 2 interfaces?
Thanks,
Tipo
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.