В этом проекте мы разработаем гигрометр и термометр с использованием датчика SHT3x и платы Arduino. Мы подключим датчик влажности и температуры SHT31 к Arduino и отобразим значение температуры и влажности на ЖК-дисплее 16×2.
Датчик SHT3x является наиболее точным и аккуратным датчиком для измерения параметров влажности и температуры по сравнению с другими датчиками температуры, такими как LM35, термистор, DS18B20 и DHT11/DHT22. Таким образом, SHT3x может использоваться в промышленных приложениях из-за высокой точности и хорошей чувствительности. Его рабочий диапазон относительной влажности составляет 0 – 100%, а рабочий диапазон температур составляет от -40° до +125°C (от -40° до +257°F).
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Датчик влажности и температуры SHT31 (купить на AliExpress).
- ЖК дисплей 16х2 (купить на AliExpress).
- Потенциометр 10 кОм (купить на AliExpress).
- Макетная плата
- Соединительные провода.
Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158
Датчики температуры и влажности серии Sensirion SHT3x
Новая серия цифровых датчиков влажности SHT3x выводит технологию датчиков на новый уровень. Как преемник серии SHT2x, она полна решимости установить следующий отраслевой стандарт в измерении влажности. Серия датчиков влажности SHT3x состоит из недорогой версии с датчиком влажности SHT30, стандартной версии с датчиком влажности SHT31 и высококлассной версии с датчиком влажности SHT35. Серия датчиков влажности SHT3x объединяет множество функций и различные интерфейсы (I2C, аналоговый выход напряжения) с удобным для приложений, очень широким диапазоном рабочего напряжения (от 2,15 до 5,5 В). Датчик влажности SHT3x доступен как в больших, так и в малых объемах.
Его особенности включают в себя:
1. Высокая надежность и долговременная стабильность.
2. Проверенная в отрасли технология с более чем 15-летней историей.
3. Разработано для массового производства.
4. Высокие технологические возможности.
5. Низкий уровень шума сигнала.
6. Выход: I2C, выход напряжения.
7. Диапазон напряжения питания: от 2,4 до 5,5 В.
8. Рабочий диапазон относительной влажности: от 0 до 100% относительной влажности.
9. Рабочий диапазон температуры: от -40° до +125°C (от -40° до +257°F).
10. Время отклика относительной влажности: 8 с (tau63%).
Схема проекта
Принципиальная схема подключения датчика температуры и влажности SHT31 к плате Arduino представлена на следующем рисунке.
Подключите выводы ЖК-дисплея 4, 6, 11, 12, 13, 14 к цифровым выводам Arduino 11, 12, 5, 4, 3, 2.
Подключите выводы SDA и SCL SHT31 к выводам SDA и SCL Arduino, т. е. A4 и A5 соответственно.
Исходный код программы
Вот исходный код для сопряжения датчика SHT3x с платой Arduino для считывания влажности и температуры. Скопируйте код и загрузите его на плату Arduino. Вам будет нужна библиотека для работы с датчиком SHT3x. Загрузите ее по следующей ссылке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#include <LiquidCrystal.h> LiquidCrystal lcd (11,12,5,4,3,2); #include <Arduino.h> #include <Wire.h> #include "Adafruit_SHT31.h" Adafruit_SHT31 sht31 = Adafruit_SHT31(); byte degree[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; void setup() { Serial.begin(9600); lcd.begin(16,2); lcd.createChar(1, degree); 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); lcd.print("Temp = "); lcd.print(t); lcd.write(1); lcd.print("C"); } else { Serial.println("Failed to read temperature"); lcd.print("Temperature Error"); } if (! isnan(h)) { // check if 'is not a number' Serial.print("Hum. % = "); Serial.println(h); lcd.setCursor (0,1); lcd.print("Hum. = "); lcd.print(h); lcd.print(" %"); } else { Serial.println("Failed to read humidity"); lcd.setCursor (0,1); lcd.print("Humidity Error"); } Serial.println(); delay(1000); lcd.clear(); } |
Видеоурок
Посмотрите это видеоруководство ниже, чтобы понять весь проект, а именно — взаимодействие датчика влажности и температуры SHT3x с платой Arduino.