忙碌了一周,终于做成了基于arduino nano和I2C模式下,以sht3xd为传感器的温湿度计。头文件是“adafruit sht3xd.h"和”LiquidCrystal_lCD1602_I2C.h". 两个器件都用的是I2C模式,都用到了nano的A4、A5脚,所以各自地址要清楚。sht3xd的是0x44, lcd1602的是0x3F(也有0x27/0x20的)。常用的玩意,就不上程序了。可借鉴Dht11的程序,祝大家成功!
评分
各位网友,我在某宝购买了sht30和sht31后,页面会附上adafruit sht3xd材料的网址,其中的文件包就包含<adafruit sht3xd.h>,再在度娘上搜I2C_Lcd1602头文件很方便,借鉴arduino+dht11的文章以及aruduino+I2C_Lcd1602 test等文章,修改一下就行。祝你们成功!有问题欢迎交流
请参考/***************************************************
This is an example for the SHT31-D Humidity& Temp Sensor
Designed specifically to work with the SHT31-D sensor from Adafruit
These sensors use I2C to communicate, 2 pins are required to
interface
Hardware connections for Arduino Nano:
VDD to 3.3V DC
SDA to A4
SCL to A5
GND to common groud
****************************************************/
#include< Arduino.h>
#include< Wire.h>
#include "Adafruit_SHT31.h"
#include "LiquidCrystal_I2C.h"
Adafruit_SHT31 sht31 = Adafruit_SHT31();
#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
#define Serial SerialUSB
#endif
void setup() {
//#ifndef ESP8266
// while (!Serial); // will pause Zero, Leonardo, etc until serial console opens
//#endif
Serial.begin(9600);
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(5000);
}
This is an example for the SHT31-D Humidity& Temp Sensor
Designed specifically to work with the SHT31-D sensor from Adafruit
These sensors use I2C to communicate, 2 pins are required to
interface
Hardware connections for Arduino Nano:
VDD to 3.3V DC
SDA to A4
SCL to A5
GND to common groud
****************************************************/
#include< Arduino.h>
#include< Wire.h>
#include "Adafruit_SHT31.h"
#include "LiquidCrystal_I2C.h"
Adafruit_SHT31 sht31 = Adafruit_SHT31();
#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
#define Serial SerialUSB
#endif
void setup() {
//#ifndef ESP8266
// while (!Serial); // will pause Zero, Leonardo, etc until serial console opens
//#endif
Serial.begin(9600);
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(5000);
}