#1 2022-04-14 09:58:08

duslak
Учасник
Зареєстрований: 2022-04-14
Повідомлень: 1

lcd 1602 i2c

Есть код проблема в том что нужно что бы код был под lsd 1602 и дополнительно выводил температуру с датчика dht11 надеюсь поможетe написать код спасибо за помощь)))

// подключение библиотек для nokia 5110
 #include 
 #include 
 // подключение библиотеки DHT
 #include "DHT.h"
 // тип датчика DHT
 #define DHTTYPE DHT11
 
// контакт подключения входа данных модуля DHT11
 int pinDHT11=9;
 // контакт подключения аналогового выхода модуля влажности почвы
 int pinSoilMoisture=A0;
 
 // контакт подключения аналогового выхода фоторезистора
 int pinPhotoresistor=A1;
 
// пины светодиодов индикации
 #define LED_TEMP 5
 #define LED_MOISTURE 6
 #define LED_LIGHT 7
 
// значения для условий
 #define TEMP_DETECT 30
 #define MOISTURE_DETECT 500
 #define LIGHT_DETECT 250
 
// создание экземпляра объекта DHT
 DHT dht(pinDHT11, DHTTYPE);
 
// Nokia 5110
 // pin 13 - Serial clock out (SCLK)
 // pin 12 - Serial data out (DIN)
 // pin 11 - Data/Command select (D/C)
 // pin 10 - LCD chip select (CS)
 // pin 8 - LCD reset (RST)
 Adafruit_PCD8544 display = Adafruit_PCD8544(13, 12, 11, 10, 8);
 
void setup() {
 // запуск последовательного порта
 Serial.begin(9600);
 //
 pinMode(LED_TEMP,OUTPUT);digitalWrite(LED_TEMP,LOW);
 pinMode(LED_MOISTURE,OUTPUT);digitalWrite(LED_MOISTURE,LOW);
 pinMode(LED_LIGHT,OUTPUT);digitalWrite(LED_LIGHT,LOW);
 //
 dht.begin();
 // инициализация дисплея
 display.begin();
 // установить контраст фона экрана
 display.setContrast(60);
 display.clearDisplay(); // очистить экран
 display.setTextSize(1); // размер шрифта
 display.setTextColor(BLACK); // цвет
 // заставка
 display.setCursor(15,15);
 display.print("Home Flower");
 display.display();
 delay(2000);
 }
 
void loop()
 {
 display.clearDisplay();
 display.setCursor(5,0);
 display.print("Home Flower");
 // получение данных с DHT11
 float h = dht.readHumidity();
 display.setCursor(5,10);
 if (isnan(h))
 {
 Serial.println("Failed to read from DHT");
 display.print("airH= error");
 }
 else
 {
 Serial.print("HumidityDHT11= "); Serial.print(h);Serial.println(" %");
 display.print("airH=");display.print(h);display.print("%");
 }
 // получение значения с аналогового вывода модуля влажности почвы
 display.setCursor(5,20);
 int val0=analogRead(pinSoilMoisture);
 Serial.print("SoilMoisture= "); Serial.println(val0);
 display.print("soilM=");display.print(val0);
 
 // получение значения с аналогового вывода фоторезистора
 display.setCursor(5,40);
 int val2=analogRead(pinPhotoresistor);
 Serial.print("Light= "); Serial.println(val2);
 display.print("Light=");display.print(val2);
 // обновить
 display.display();
 //// проверка условий
 // увлажненность почвы
 if(val0 > MOISTURE_DETECT)
 digitalWrite(LED_MOISTURE,HIGH);
 else
 digitalWrite(LED_MOISTURE,LOW);
 // температура воздуха
 if(t > TEMP_DETECT)
 digitalWrite(LED_TEMP,HIGH);
 else
 digitalWrite(LED_TEMP,LOW);
 // освещенность
 if(val2 < LIGHT_DETECT)
 digitalWrite(LED_LIGHT,HIGH);
 else
 digitalWrite(LED_LIGHT,LOW);
 // пауза 5 секунд
 Serial.println();
 delay(5000);
 }

Неактивний

#2 2022-04-14 13:15:56

гость
Гість

Re: lcd 1602 i2c

Если в гугле забанили - пробуй через vpn
https://g.zeos.in/?q=dht11%20lcd1602%20arduino

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму