Воспользовавшись ранее купленным сенсором AM2302 (179р.) , будем выводить его показания (влажность и температуру) на дисплей LCD1602. Полный datasheet на сенсор тут. Его включение типовое: крайние выводы — питание 5В, вывод 2 — данные ко входу 2 Arduino и на +5В через резистор 10кОм. Загружаем нижеприведенный скетч в Arduino.
// // Выводим показания датчика AM2302 на LCD дисплей // #include "DHT.h" // библиотека сенсора #include <Wire.h> // библиотека интерфейса I2C #include <LCD.h> #include <LiquidCrystal_I2C.h> // библиотека ЖК дисплея с интерфейсом I2C #define DHTPIN 2 // куда подключаем сенсор #define DHTTYPE DHT22 // тип сенсора DHT 22 (AM2302) #define I2C_ADDR 0x27 // I2C адрес интерфейса дисплея DHT dht(DHTPIN, DHTTYPE); // инициализация датчика // инициализация дисплея LiquidCrystal_I2C iLCD(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7); void setup() { // выключим диод на плате pinMode(13, OUTPUT); digitalWrite(13, LOW); // конфигурация дисплея 16 х 2 iLCD.begin(16, 2); // установка подсветки iLCD.setBacklightPin(3,POSITIVE); // включение подсветки iLCD.setBacklight(HIGH); dht.begin(); } void loop() { // Задержка между измерениями 2с delay(2000); // курсор в правый левый угол iLCD.home(); // Читаем данные влажности и температуры float h = dht.readHumidity(); float t = dht.readTemperature(); // Если что то не так, выходим раньше и начинаем заново if (isnan(h) || isnan(t)) { iLCD.print("No DHT sensor!"); iLCD.setCursor(0, 1); iLCD.print(" "); return; } else{ // выводим показания влажности iLCD.print("H,% "); iLCD.setCursor(4, 0); iLCD.print(h); iLCD.setCursor(9, 0); iLCD.print(" "); iLCD.setCursor(0, 1); // выводим показания температуры iLCD.print("t,C "); iLCD.setCursor(4, 1); iLCD.print(t); } }
Результат выполнения скетча приведен ниже.