собираю метеостанцию, проблема с выводом

Тема в разделе "Arduino & Shields", создана пользователем maria1807, 22 мар 2017.

  1. maria1807

    maria1807 Нерд

    Всем привет!
    Собираю метеостанцию (плата wemos d1+dht11+дисплей i2c1602)
    на дисплее отображаются нулевые значения датчика, подскажите в чем проблема?
    Код (C++):
    #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);
    }
     
  2. Airbus

    Airbus Радиохулиган Модератор

    А такой код?
    Код (C++):

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27, 16, 2);//адрес и размер LCD
    #include "DHT.h"
    #define DHTPIN 2     // пин 2 вход от DHT можно изменить на любой
    //Раскоментируйте нужный датчик и закоментируйте ненужные у нас DHT 11
    #define DHTTYPE DHT11   // DHT 11
    //#define DHTTYPE DHT22   // DHT 22  (AM2302)
    //#define DHTTYPE DHT21   // DHT 21 (AM2301)
    DHT dht(DHTPIN, DHTTYPE);
    void setup() {
      lcd.init();//запускаем LCD
      lcd.backlight();//и его подсветку
      Serial.begin(9600);//запускаем сериал 9600 бод
      Serial.println("DHTxx test!");//запустим текст
      dht.begin();//запускаем датчик
                 }
    void loop()
    {
      float h = dht.readHumidity();// читаем влажность
      float t = dht.readTemperature();//читаем температуру
    // проверяем на ошибки
    //если ошибка то ругаемся
      if (isnan(t) || isnan(h)) {
       Serial.println("Failed to read from DHT");
                                    }
    //если нет то печатаем
      else {
        lcd.setCursor(0, 0);// выводим влажность
        lcd.print("Hum:          %");
        lcd.setCursor(11, 0);
        lcd.print(h);
        lcd.setCursor(0, 1);// выводим температуру
        lcd.print("temp:         C");
        lcd.setCursor(11, 1);
        lcd.print(t);
        delay(2000);
      }
    }
     
    Последнее редактирование: 22 мар 2017
  3. maria1807

    maria1807 Нерд


    выдает ошибку в 10 строке
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Скетч рабочий компилиться грузиться выдаёт показания и даже ругается если датчик отцепить.Только что ещё раз проверил.Какая ошибка у вас?Что именно пишет?Библиотеку DHT.h скачали?
     
  5. maria1807

    maria1807 Нерд

    попробовала с этим кодом, запустился, но на дисплее нулевые значения
    в мониторе порта failed to read dht
     
  6. Airbus

    Airbus Радиохулиган Модератор

    Это значит что датчик DHT11 либо не подключён либо подключён неправильно.Куда подключён выход DHT11 к какому пину Ардуины?Согласно моего Скетча ко второму если ничего не меняли. Есть вариант похожий на Ваш но у меня он почему то не компилиться. Пишет dht11 does not name a type. полагаю что это "шутки" IDE 1.5.5 потому как раньше компилилось.
     
  7. Almeder

    Almeder Нерд

    Если у вас модуль, проследите внимательно как пропаяны выходы и за подключением. У меня была примерная проблема, оказалось что выходы бывают пропаяны по разному. Например VCC (на датчике самый правый) на плате модуля идет дорожкой в среднюю ногу. У меня получилось с права на лево земля, vcc, data
     
  8. maria1807

    maria1807 Нерд

    Подключила к d2. Меня еще смущает то, что я перепробовала кучу библиотек dht11, а работает только одна, и то, если выход подключен именно к 4 пину, если на другой переключить-не работает
     
  9. maria1807

    maria1807 Нерд

    у меня нормально пропаяны
     
  10. Almeder

    Almeder Нерд

    Еще можете попробовать библиотеку поменять. Когда у меня были проблемы с DHT11, я пробовал менять библиотеки. У меня ни одна не работала, на дисплее было -1 ( в комнате) это как раз была "int chk = sensor.read(DHT11PIN)" . Работала с таким же скетчем, который вам прислали, но библиотеку я брал ту, которая шла вместе с учебником Петина 2-е издание на торренте.
     
  11. Almeder

    Almeder Нерд

    Вот
     

    Вложения:

    • DHT.cpp
      Размер файла:
      3,3 КБ
      Просмотров:
      719
    • DHT.h
      Размер файла:
      750 байт
      Просмотров:
      638
    • README.txt
      Размер файла:
      410 байт
      Просмотров:
      455
  12. Almeder

    Almeder Нерд

    Пример использования, надеюсь правильно прикрепил
     

    Вложения:

    • DHTtester.ino
      Размер файла:
      1,3 КБ
      Просмотров:
      600
  13. maria1807

    maria1807 Нерд

    неа, бесполезно, либо нули показывает, либо 255
    может датчик такой корявый попался? может такое быть?
     
    Almeder нравится это.
  14. Airbus

    Airbus Радиохулиган Модератор

    Фотку что куда подключено сможете выложить?чтоб было видно что и куда подключено.будем разбираться.я и сам вчера пока скетч проверял умудрился 3 раза датчик неправильно подключить всякое бывает.может конечно и датчик но по опыту самое большееколичество косяков от невнимательности.обидно бывает за такие тупые ошибки.
     
    Последнее редактирование: 24 мар 2017
  15. Almeder

    Almeder Нерд

    Если честно сам пытаюсь это узнать в соседней теме)))Только у меня немного другая ситуация, у меня датчик показывает температуру, только показатели каждую секунду скачут на 2-3 градуса из-за чего реле подключенное к нему слишком часто срабатывает. Хотя помещение закрытое. Советуют взять датчик ds18b20.
     
  16. maria1807

    maria1807 Нерд

    хорошо, что я еще заказала dht22, надеюсь скоро приедет) может с ним полегче будет
     
  17. maria1807

    maria1807 Нерд

    https://cloud.mail.ru/public/MyL3/neBJcGSnj
     
  18. Almeder

    Almeder Нерд

    Удачи вам)
     
  19. Almeder

    Almeder Нерд

  20. Airbus

    Airbus Радиохулиган Модератор

    Да всё подключено правильно
    [​IMG]

    [​IMG]
    Синий провод VCC к +5 вольт так?Тогда датчик косячный хотя попробуйте пошевелить провода мало ли что?...