помогите новичку, собираю метеостанцию

maria1807
Offline
Зарегистрирован: 22.03.2017

Всем привет! 

Собираю метеостанцию (плата wemos D1+dht11+дисплей i2c 1602), не получается вывести показания датчика на дисплей. Помогите!

#include <LiquidCrystal_I2C.h>

// 
//   FILE:  dht11_test1.pde
// PURPOSE: DHT11 library test sketch for Arduino
//
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK:  
                Serial.print("OK,\t"); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
    default: 
                Serial.print("Unknown error,\t"); 
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Вы дисплей не объявили, не инициализировали и не обращаетесь к нему, так с какого перепугу туда будет выводиться...

maria1807
Offline
Зарегистрирован: 22.03.2017

что дописать нужно?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Voodoo Doll, у ТС дисплей по I2C подключается, а по ссылке только параллельное подключение рассмотрено.

maria1807, пример кода по дисплею смотрите у себя, в папке бибилотеки Liquid_Crysta_I2C - examples, там всё есть.

maria1807
Offline
Зарегистрирован: 22.03.2017

вроде получилось, но теперь на самом дисплее отображаются нулевые значения, в чем может быть проблема?
 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <dht11.h>
dht11 sensor;
#define DHT11PIN A0
byte degree[8] = // кодируем символ градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.createChar(1, degree); // Создаем символ под номером 1
}
void loop()
{
  int chk = sensor.read(DHT11PIN);
  lcd.setCursor(0, 0);
  lcd.print("Hum:          %");
  lcd.setCursor(11, 0);
  lcd.print(sensor.humidity);
  lcd.setCursor(0, 1);
  lcd.print("temp:         C");
  lcd.setCursor(11, 1);
  lcd.print(sensor.temperature);
  delay(2000);
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Проблема в том, что код, как правило, нужно отлаживать.

1. Перенесите те проверки, что были у Вас в исходном сообщении, в новую версию скетча.

2. Продублируйте вывод в Serial.