IP Configuration
This commit is contained in:
46
lib/Adafruit_SHT31/.github/ISSUE_TEMPLATE.md
vendored
Normal file
46
lib/Adafruit_SHT31/.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
Thank you for opening an issue on an Adafruit Arduino library repository. To
|
||||
improve the speed of resolution please review the following guidelines and
|
||||
common troubleshooting steps below before creating the issue:
|
||||
|
||||
- **Do not use GitHub issues for troubleshooting projects and issues.** Instead use
|
||||
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
|
||||
something isn't working as expected. In many cases the problem is a common issue
|
||||
that you will more quickly receive help from the forum community. GitHub issues
|
||||
are meant for known defects in the code. If you don't know if there is a defect
|
||||
in the code then start with troubleshooting on the forum first.
|
||||
|
||||
- **If following a tutorial or guide be sure you didn't miss a step.** Carefully
|
||||
check all of the steps and commands to run have been followed. Consult the
|
||||
forum if you're unsure or have questions about steps in a guide/tutorial.
|
||||
|
||||
- **For Arduino projects check these very common issues to ensure they don't apply**:
|
||||
|
||||
- For uploading sketches or communicating with the board make sure you're using
|
||||
a **USB data cable** and **not** a **USB charge-only cable**. It is sometimes
|
||||
very hard to tell the difference between a data and charge cable! Try using the
|
||||
cable with other devices or swapping to another cable to confirm it is not
|
||||
the problem.
|
||||
|
||||
- **Be sure you are supplying adequate power to the board.** Check the specs of
|
||||
your board and plug in an external power supply. In many cases just
|
||||
plugging a board into your computer is not enough to power it and other
|
||||
peripherals.
|
||||
|
||||
- **Double check all soldering joints and connections.** Flakey connections
|
||||
cause many mysterious problems. See the [guide to excellent soldering](https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools) for examples of good solder joints.
|
||||
|
||||
- **Ensure you are using an official Arduino or Adafruit board.** We can't
|
||||
guarantee a clone board will have the same functionality and work as expected
|
||||
with this code and don't support them.
|
||||
|
||||
If you're sure this issue is a defect in the code and checked the steps above
|
||||
please fill in the following fields to provide enough troubleshooting information.
|
||||
You may delete the guideline and text above to just leave the following details:
|
||||
|
||||
- Arduino board: **INSERT ARDUINO BOARD NAME/TYPE HERE**
|
||||
|
||||
- Arduino IDE version (found in Arduino -> About Arduino menu): **INSERT ARDUINO
|
||||
VERSION HERE**
|
||||
|
||||
- List the steps to reproduce the problem below (if possible attach a sketch or
|
||||
copy the sketch code in too): **LIST REPRO STEPS BELOW**
|
||||
26
lib/Adafruit_SHT31/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
26
lib/Adafruit_SHT31/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
Thank you for creating a pull request to contribute to Adafruit's GitHub code!
|
||||
Before you open the request please review the following guidelines and tips to
|
||||
help it be more easily integrated:
|
||||
|
||||
- **Describe the scope of your change--i.e. what the change does and what parts
|
||||
of the code were modified.** This will help us understand any risks of integrating
|
||||
the code.
|
||||
|
||||
- **Describe any known limitations with your change.** For example if the change
|
||||
doesn't apply to a supported platform of the library please mention it.
|
||||
|
||||
- **Please run any tests or examples that can exercise your modified code.** We
|
||||
strive to not break users of the code and running tests/examples helps with this
|
||||
process.
|
||||
|
||||
Thank you again for contributing! We will try to test and integrate the change
|
||||
as soon as we can, but be aware we have many GitHub repositories to manage and
|
||||
can't immediately respond to every request. There is no need to bump or check in
|
||||
on a pull request (it will clutter the discussion of the request).
|
||||
|
||||
Also don't be worried if the request is closed or not integrated--sometimes the
|
||||
priorities of Adafruit's GitHub code (education, ease of use) might not match the
|
||||
priorities of the pull request. Don't fret, the open source community thrives on
|
||||
forks and GitHub makes it easy to keep your changes in a forked repo.
|
||||
|
||||
After reviewing the guidelines above you can delete this text from the pull request.
|
||||
29
lib/Adafruit_SHT31/.travis.yml
Normal file
29
lib/Adafruit_SHT31/.travis.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
language: c
|
||||
sudo: false
|
||||
cache:
|
||||
directories:
|
||||
- ~/arduino_ide
|
||||
- ~/.arduino15/packages/
|
||||
git:
|
||||
depth: false
|
||||
quiet: true
|
||||
env:
|
||||
global:
|
||||
- ARDUINO_IDE_VERSION="1.8.7"
|
||||
- PRETTYNAME="Adafruit SHT31-D Library"
|
||||
# Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile"
|
||||
# - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile
|
||||
|
||||
before_install:
|
||||
- source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh)
|
||||
|
||||
install:
|
||||
- true
|
||||
|
||||
script:
|
||||
- build_main_platforms
|
||||
|
||||
# Generate and deploy documentation
|
||||
after_success:
|
||||
- source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh)
|
||||
- source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh)
|
||||
144
lib/Adafruit_SHT31/Adafruit_SHT31.cpp
Normal file
144
lib/Adafruit_SHT31/Adafruit_SHT31.cpp
Normal file
@@ -0,0 +1,144 @@
|
||||
/***************************************************
|
||||
This is a library for the SHT31 Digital Humidity & Temp Sensor
|
||||
|
||||
Designed specifically to work with the SHT31 Digital sensor from Adafruit
|
||||
----> https://www.adafruit.com/products/2857
|
||||
|
||||
These sensors use I2C to communicate, 2 pins are required to interface
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
BSD license, all text above must be included in any redistribution
|
||||
****************************************************/
|
||||
|
||||
#include "Adafruit_SHT31.h"
|
||||
|
||||
Adafruit_SHT31::Adafruit_SHT31() {
|
||||
_i2caddr = NULL;
|
||||
humidity = 0.0f;
|
||||
temp = 0.0f;
|
||||
}
|
||||
|
||||
boolean Adafruit_SHT31::begin(uint8_t i2caddr) {
|
||||
Wire.begin();
|
||||
_i2caddr = i2caddr;
|
||||
reset();
|
||||
// return (readStatus() == 0x40);
|
||||
return true;
|
||||
}
|
||||
|
||||
uint16_t Adafruit_SHT31::readStatus(void) {
|
||||
writeCommand(SHT31_READSTATUS);
|
||||
Wire.requestFrom(_i2caddr, (uint8_t)3);
|
||||
uint16_t stat = Wire.read();
|
||||
stat <<= 8;
|
||||
stat |= Wire.read();
|
||||
// Serial.println(stat, HEX);
|
||||
return stat;
|
||||
}
|
||||
|
||||
void Adafruit_SHT31::reset(void) {
|
||||
writeCommand(SHT31_SOFTRESET);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
void Adafruit_SHT31::heater(boolean h) {
|
||||
if (h)
|
||||
writeCommand(SHT31_HEATEREN);
|
||||
else
|
||||
writeCommand(SHT31_HEATERDIS);
|
||||
}
|
||||
|
||||
float Adafruit_SHT31::readTemperature(void) {
|
||||
if (!readTempHum())
|
||||
return NAN;
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
float Adafruit_SHT31::readHumidity(void) {
|
||||
if (!readTempHum())
|
||||
return NAN;
|
||||
|
||||
return humidity;
|
||||
}
|
||||
|
||||
boolean Adafruit_SHT31::readTempHum(void) {
|
||||
uint8_t readbuffer[6];
|
||||
|
||||
writeCommand(SHT31_MEAS_HIGHREP);
|
||||
|
||||
delay(20);
|
||||
Wire.requestFrom(_i2caddr, (uint8_t)6);
|
||||
if (Wire.available() != 6)
|
||||
return false;
|
||||
for (uint8_t i = 0; i < 6; i++) {
|
||||
readbuffer[i] = Wire.read();
|
||||
// Serial.print("0x"); Serial.println(readbuffer[i], HEX);
|
||||
}
|
||||
|
||||
uint16_t ST, SRH;
|
||||
ST = readbuffer[0];
|
||||
ST <<= 8;
|
||||
ST |= readbuffer[1];
|
||||
|
||||
if (readbuffer[2] != crc8(readbuffer, 2))
|
||||
return false;
|
||||
|
||||
SRH = readbuffer[3];
|
||||
SRH <<= 8;
|
||||
SRH |= readbuffer[4];
|
||||
|
||||
if (readbuffer[5] != crc8(readbuffer + 3, 2))
|
||||
return false;
|
||||
|
||||
// Serial.print("ST = "); Serial.println(ST);
|
||||
double stemp = ST;
|
||||
stemp *= 175;
|
||||
stemp /= 0xffff;
|
||||
stemp = -45 + stemp;
|
||||
temp = stemp;
|
||||
|
||||
// Serial.print("SRH = "); Serial.println(SRH);
|
||||
double shum = SRH;
|
||||
shum *= 100;
|
||||
shum /= 0xFFFF;
|
||||
|
||||
humidity = shum;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Adafruit_SHT31::writeCommand(uint16_t cmd) {
|
||||
Wire.beginTransmission(_i2caddr);
|
||||
Wire.write(cmd >> 8);
|
||||
Wire.write(cmd & 0xFF);
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
uint8_t Adafruit_SHT31::crc8(const uint8_t *data, int len) {
|
||||
/*
|
||||
*
|
||||
* CRC-8 formula from page 14 of SHT spec pdf
|
||||
*
|
||||
* Test data 0xBE, 0xEF should yield 0x92
|
||||
*
|
||||
* Initialization data 0xFF
|
||||
* Polynomial 0x31 (x8 + x5 +x4 +1)
|
||||
* Final XOR 0x00
|
||||
*/
|
||||
|
||||
const uint8_t POLYNOMIAL(0x31);
|
||||
uint8_t crc(0xFF);
|
||||
|
||||
for (int j = len; j; --j) {
|
||||
crc ^= *data++;
|
||||
|
||||
for (int i = 8; i; --i) {
|
||||
crc = (crc & 0x80) ? (crc << 1) ^ POLYNOMIAL : (crc << 1);
|
||||
}
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
135
lib/Adafruit_SHT31/Adafruit_SHT31.h
Normal file
135
lib/Adafruit_SHT31/Adafruit_SHT31.h
Normal file
@@ -0,0 +1,135 @@
|
||||
/***************************************************
|
||||
This is a library for the SHT31 Digital Humidity & Temp Sensor
|
||||
|
||||
Designed specifically to work with the SHT31 Digital sensor from Adafruit
|
||||
----> https://www.adafruit.com/products/2857
|
||||
|
||||
These sensors use I2C to communicate, 2 pins are required to interface
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
BSD license, all text above must be included in any redistribution
|
||||
****************************************************/
|
||||
|
||||
#ifndef ADAFRUIT_SHT31_H
|
||||
#define ADAFRUIT_SHT31_H
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "Wire.h"
|
||||
|
||||
#define SHT31_DEFAULT_ADDR 0x44
|
||||
#define SHT31_MEAS_HIGHREP_STRETCH 0x2C06
|
||||
#define SHT31_MEAS_MEDREP_STRETCH 0x2C0D
|
||||
#define SHT31_MEAS_LOWREP_STRETCH 0x2C10
|
||||
#define SHT31_MEAS_HIGHREP 0x2400
|
||||
#define SHT31_MEAS_MEDREP 0x240B
|
||||
#define SHT31_MEAS_LOWREP 0x2416
|
||||
#define SHT31_READSTATUS 0xF32D
|
||||
#define SHT31_CLEARSTATUS 0x3041
|
||||
#define SHT31_SOFTRESET 0x30A2
|
||||
#define SHT31_HEATEREN 0x306D
|
||||
#define SHT31_HEATERDIS 0x3066
|
||||
|
||||
/**
|
||||
* Driver for the Adafruit SHT31-D Temperature and Humidity breakout board.
|
||||
*/
|
||||
class Adafruit_SHT31 {
|
||||
public:
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
Adafruit_SHT31();
|
||||
|
||||
/**
|
||||
* Initialises the I2C bus, and assigns the I2C address to us.
|
||||
*
|
||||
* @param i2caddr The I2C address to use for the sensor.
|
||||
*
|
||||
* @return True if initialisation was successful, otherwise False.
|
||||
*/
|
||||
boolean begin(uint8_t i2caddr = SHT31_DEFAULT_ADDR);
|
||||
|
||||
/**
|
||||
* Gets a single temperature reading from the sensor.
|
||||
*
|
||||
* @return A float value indicating the temperature.
|
||||
*/
|
||||
float readTemperature(void);
|
||||
|
||||
/**
|
||||
* Gets a single relative humidity reading from the sensor.
|
||||
*
|
||||
* @return A float value representing relative humidity.
|
||||
*/
|
||||
float readHumidity(void);
|
||||
|
||||
/**
|
||||
* Gets the current status register contents.
|
||||
*
|
||||
* @return The 16-bit status register.
|
||||
*/
|
||||
uint16_t readStatus(void);
|
||||
|
||||
/**
|
||||
* Performs a reset of the sensor to put it into a known state.
|
||||
*/
|
||||
void reset(void);
|
||||
|
||||
/**
|
||||
* Enables or disabled the heating element.
|
||||
*
|
||||
* @param h True to enable the heater, False to disable it.
|
||||
*/
|
||||
void heater(boolean h);
|
||||
|
||||
/**
|
||||
* Performs a CRC8 calculation on the supplied values.
|
||||
*
|
||||
* @param data Pointer to the data to use when calculating the CRC8.
|
||||
* @param len The number of bytes in 'data'.
|
||||
*
|
||||
* @return The computed CRC8 value.
|
||||
*/
|
||||
uint8_t crc8(const uint8_t *data, int len);
|
||||
|
||||
private:
|
||||
/**
|
||||
* Placeholder to track the I2C address.
|
||||
*/
|
||||
uint8_t _i2caddr;
|
||||
|
||||
/**
|
||||
* Placeholder to track humidity internally.
|
||||
*/
|
||||
float humidity;
|
||||
|
||||
/**
|
||||
* Placeholder to track temperature internally.
|
||||
*/
|
||||
float temp;
|
||||
|
||||
/**
|
||||
* Internal function to perform a temp + humidity read.
|
||||
*
|
||||
* @return True if successful, otherwise false.
|
||||
*/
|
||||
boolean readTempHum(void);
|
||||
|
||||
/**
|
||||
* Internal function to perform and I2C write.
|
||||
*
|
||||
* @param cmd The 16-bit command ID to send.
|
||||
*/
|
||||
void writeCommand(uint16_t cmd);
|
||||
|
||||
/**
|
||||
* Internal function to read data over the I2C bus.
|
||||
*
|
||||
* @return True if successful, otherwise False.
|
||||
*/
|
||||
boolean readData(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
58
lib/Adafruit_SHT31/README.md
Normal file
58
lib/Adafruit_SHT31/README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Adafruit SHT31-D Temperature and Humidity Sensor Breakout [](https://travis-ci.org/adafruit/Adafruit_SHT31)
|
||||
|
||||

|
||||
|
||||
This is a library for the SHT31 Digital Humidity + Temp sensor.
|
||||
|
||||
It is designed specifically to work with the SHT31 Digital in the Adafruit shop:
|
||||
|
||||
- https://www.adafruit.com/products/2857
|
||||
|
||||
These sensors use **I2C** to communicate, 2 pins are required to interface
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
BSD license, all text above must be included in any redistribution
|
||||
|
||||
Check out the links above for our tutorials and wiring diagrams
|
||||
|
||||
## Installation
|
||||
|
||||
Use the Arduino Library Manager to install this library. If you're unfamiliar
|
||||
with how this works, we have a great tutorial on Arduino library installation
|
||||
at: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use
|
||||
|
||||
<!-- START COMPATIBILITY TABLE -->
|
||||
|
||||
## Compatibility
|
||||
|
||||
MCU | Tested Works | Doesn't Work | Not Tested | Notes
|
||||
------------------ | :----------: | :----------: | :---------: | -----
|
||||
Atmega328 @ 16MHz | X | | |
|
||||
Atmega328 @ 12MHz | X | | |
|
||||
Atmega32u4 @ 16MHz | X | | |
|
||||
Atmega32u4 @ 8MHz | X | | |
|
||||
ESP8266 | X | | |
|
||||
Atmega2560 @ 16MHz | X | | |
|
||||
ATSAM3X8E | X | | |
|
||||
ATSAM21D | X | | |
|
||||
ATtiny85 @ 16MHz | X | | |
|
||||
ATtiny85 @ 8MHz | X | | |
|
||||
Intel Curie @ 32MHz | | | X |
|
||||
STM32F2 | | | X |
|
||||
|
||||
* ATmega328 @ 16MHz : Arduino UNO, Adafruit Pro Trinket 5V, Adafruit Metro 328, Adafruit Metro Mini
|
||||
* ATmega328 @ 12MHz : Adafruit Pro Trinket 3V
|
||||
* ATmega32u4 @ 16MHz : Arduino Leonardo, Arduino Micro, Arduino Yun, Teensy 2.0
|
||||
* ATmega32u4 @ 8MHz : Adafruit Flora, Bluefruit Micro
|
||||
* ESP8266 : Adafruit Huzzah
|
||||
* ATmega2560 @ 16MHz : Arduino Mega
|
||||
* ATSAM3X8E : Arduino Due
|
||||
* ATSAM21D : Arduino Zero, M0 Pro
|
||||
* ATtiny85 @ 16MHz : Adafruit Trinket 5V
|
||||
* ATtiny85 @ 8MHz : Adafruit Gemma, Arduino Gemma, Adafruit Trinket 3V
|
||||
|
||||
<!-- END COMPATIBILITY TABLE -->
|
||||
48
lib/Adafruit_SHT31/examples/SHT31test/SHT31test.ino
Normal file
48
lib/Adafruit_SHT31/examples/SHT31test/SHT31test.ino
Normal file
@@ -0,0 +1,48 @@
|
||||
/***************************************************
|
||||
This is an example for the SHT31-D Humidity & Temp Sensor
|
||||
|
||||
Designed specifically to work with the SHT31-D sensor from Adafruit
|
||||
----> https://www.adafruit.com/products/2857
|
||||
|
||||
These sensors use I2C to communicate, 2 pins are required to
|
||||
interface
|
||||
****************************************************/
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
#include "Adafruit_SHT31.h"
|
||||
|
||||
Adafruit_SHT31 sht31 = Adafruit_SHT31();
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
while (!Serial)
|
||||
delay(10); // will pause Zero, Leonardo, etc until serial console opens
|
||||
|
||||
Serial.println("SHT31 test");
|
||||
if (! sht31.begin(0x44)) { // Set to 0x45 for alternate i2c addr
|
||||
Serial.println("Couldn't find SHT31");
|
||||
while (1) delay(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
float t = sht31.readTemperature();
|
||||
float h = sht31.readHumidity();
|
||||
|
||||
if (! isnan(t)) { // check if 'is not a number'
|
||||
Serial.print("Temp *C = "); Serial.println(t);
|
||||
} else {
|
||||
Serial.println("Failed to read temperature");
|
||||
}
|
||||
|
||||
if (! isnan(h)) { // check if 'is not a number'
|
||||
Serial.print("Hum. % = "); Serial.println(h);
|
||||
} else {
|
||||
Serial.println("Failed to read humidity");
|
||||
}
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
}
|
||||
9
lib/Adafruit_SHT31/library.properties
Normal file
9
lib/Adafruit_SHT31/library.properties
Normal file
@@ -0,0 +1,9 @@
|
||||
name=Adafruit SHT31 Library
|
||||
version=1.1.0
|
||||
author=Adafruit
|
||||
maintainer=Adafruit <info@adafruit.com>
|
||||
sentence=Arduino library for SHT31 temperature & humidity sensor.
|
||||
paragraph=Arduino library for SHT31 temperature & humidity sensor.
|
||||
category=Sensors
|
||||
url=https://github.com/adafruit/Adafruit_SHT31
|
||||
architectures=*
|
||||
Reference in New Issue
Block a user