помогите новичку, собираю метеостанцию
- Войдите на сайт для отправки комментариев
Ср, 22/03/2017 - 00:36
Всем привет!
Собираю метеостанцию (плата 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);
}
Вы дисплей не объявили, не инициализировали и не обращаетесь к нему, так с какого перепугу туда будет выводиться...
что дописать нужно?
http://robocraft.ru/blog/arduino/503.html
Voodoo Doll, у ТС дисплей по I2C подключается, а по ссылке только параллельное подключение рассмотрено.
maria1807, пример кода по дисплею смотрите у себя, в папке бибилотеки Liquid_Crysta_I2C - examples, там всё есть.
вроде получилось, но теперь на самом дисплее отображаются нулевые значения, в чем может быть проблема?
#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); }Проблема в том, что код, как правило, нужно отлаживать.
1. Перенесите те проверки, что были у Вас в исходном сообщении, в новую версию скетча.
2. Продублируйте вывод в Serial.