Вывод показаний DHT22 на LCD1602 Arduino Uno
- Войдите на сайт для отправки комментариев
Вс, 19/02/2017 - 00:58
Добрый вечер всем!
Помогите новичку разобраться со скетчем, по отдельности разобрался как выводить данные на LCD 1602 и получать показания датчика.
Но вот вывести показания с DHT22 на дисплей 1602 не выходит.
Перебрал в инете несколько вариантов скетчей так ни
один и не заработал.
а тупо примеры из ИДЕ посмотреть не судьба??
пример для для дисплея берете открываете.
потом пример для датчика и сдружаете их. :)
а тупо примеры из ИДЕ посмотреть не судьба??
пример для для дисплея берете открываете.
потом пример для датчика и сдружаете их. :)
я запретил.
Нехрен их перебирать. Надо смотреть и понимать. Сперва на примерах LCD понять, как вывести переменную. Потом в примере DHT найти переменную в которой хранится температура. Дальше объяснять?
Дальше объяснять?
я запретил.
а тупо примеры из ИДЕ посмотреть не судьба??
пример для для дисплея берете открываете.
потом пример для датчика и сдружаете их. :)
Я так и пытался делать )
Забыл добавить, экранчик подключен через I2C.
Вот скетч на котором я остановился, библиотеки установлены.
// include the library code: #include <Wire.h> #include <LiquidCrystal_I2C.h> #include "DHT.h" #define DHTPIN 7 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(0x27,16,2);// set the LCD address to 0x27 for a 20 chars and 4 line display void setup() { dht.begin(); lcd.init(); lcd.backlight(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); lcd.setCursor(0, 0); lcd.print("Temp:"); lcd.setCursor(6, 0); lcd.print(t); lcd.setCursor(12, 0); lcd.print("C"); lcd.setCursor(0, 2); lcd.print("Hum:"); lcd.setCursor(6, 2); lcd.print(h); lcd.setCursor(12, 2); lcd.print("%"); }При компиляции пишет ошибку:
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno
Нехрен их перебирать. Надо смотреть и понимать. Сперва на примерах LCD понять, как вывести переменную. Потом в примере DHT найти переменную в которой хранится температура. Дальше объяснять?
Перебирать я начал уже после того, как пытался сам разобраться из примеров, не получилось решил найти готовый рабочий вариант чтобы понять свои ошибки вот и всё...
Тут ко всем новичкам так относятся? Если да, то я разочарован данным форумом и его представителями...
Тут ко всем новичкам так относятся? Если да, то я разочарован данным форумом и его представителями...
Которые не желают соблюдать правила форума, да. К соблюдению правил относится: прилагать к вопросу свое творение в читаемом виде.
Тут ко всем новичкам так относятся? Если да, то я разочарован данным форумом и его представителями...
Которые не желают соблюдать правила форума, да. К соблюдению правил относится: прилагать к вопросу свое творение в читаемом виде.
Ок, так лучше?
Вот скетч на котором я остановился, библиотеки установлены.
// include the library code: #include <Wire.h> #include <LiquidCrystal_I2C.h> #include "DHT.h" #define DHTPIN 7 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(0x27,16,2);// set the LCD address to 0x27 for a 20 chars and 4 line display void setup() { dht.begin(); lcd.init(); lcd.backlight(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); lcd.setCursor(0, 0); lcd.print("Temp:"); lcd.setCursor(6, 0); lcd.print(t); lcd.setCursor(12, 0); lcd.print("C"); lcd.setCursor(0, 2); lcd.print("Hum:"); lcd.setCursor(6, 2); lcd.print(h); lcd.setCursor(12, 2); lcd.print("%"); }При компиляции пишет ошибку:
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno
Приведите весь вывод диагностики компиляции. В какой строке ошибка?
maksilo, думаю проблема в кириллице, которая в пути к библиотекам. В IDE 1.6.4 Ваш скетч компилируется нормально.
Sketch uses 6 986 bytes (48%) of program storage space. Maximum is 14 336 bytes.
Global variables use 471 bytes (45%) of dynamic memory, leaving 553 bytes for local variables. Maximum is 1 024 bytes.
Еще проверьте папку с DHT на вложенность, бывает архиватор делает папку в папке.
maksilo, думаю проблема в кириллице, которая в пути к библиотекам. В IDE 1.6.4 Ваш скетч компилируется нормально.
Sketch uses 6 986 bytes (48%) of program storage space. Maximum is 14 336 bytes.
Global variables use 471 bytes (45%) of dynamic memory, leaving 553 bytes for local variables. Maximum is 1 024 bytes.
Еще проверьте папку с DHT на вложенность, бывает архиватор делает папку в папке.
Я тоже так подумал и убрал все русские названия в пути но не помогло.
Какая то ерунда с библиотеками как я понял..
После установки библиотек связанных с DHT (http://prntscr.com/ean5nr) пишет другую ошибку:
Поместите папку с библиотекой DHT в основную папку библиотек "libraries", перезапустите IDE, посмотрите в примерах, появились с DHT или нет.
ком порт не указал или не тот вот и все. плату не видит
хотя не если на третьей стороке то наверно не так подключил библиотеку .
ком порт не указал или не тот вот и все. плату не видит
Ну а компиляция то здесь при чем? Я вообще без платы его скетч проверял.
ком порт не указал или не тот вот и все. плату не видит
хотя не если на третьей стороке то наверно не так подключил библиотеку .
Плата пока отключена, я просто пытаюсь скомпилировать без ошибок кнопка "Проверить"
Библиотеки с примерами вроде все видит - http://prntscr.com/ean68c
Такой вопрос, библиотеки у меня все в zip архивах лежат, их ведь не нужно распаковывать?
maksilo, думаю проблема в кириллице, которая в пути к библиотекам. В IDE 1.6.4 Ваш скетч компилируется нормально.
Sketch uses 6 986 bytes (48%) of program storage space. Maximum is 14 336 bytes.
Global variables use 471 bytes (45%) of dynamic memory, leaving 553 bytes for local variables. Maximum is 1 024 bytes.
Еще проверьте папку с DHT на вложенность, бывает архиватор делает папку в папке.
Можете скинуть используемые вами бибилиотеки для этого скетча.
Или ссылки где их стоит скачивать?
maksilo, поищите разные библиотеки DHT, их несколько и у всех разные методы считывания, либо подбирать библиотеку, либо переписать все относящиеся к DHT по образу и подобию как в прилагаемых примерах.
Можете скинуть используемые вами бибилиотеки для этого скетча.
Или ссылки где их стоит скачивать?
Почту давайте, скину ту что к вашему скетчу подходит. Качал давно, ссылку вряд ли найду.
Насчет архивов - сейчас вроде видит и в них, но я все равно по привычке распаковываю.
Библиотеки с примерами вроде все видит - http://prntscr.com/ean68c
Что то их так много у Вас, выкиньте все лишние, одну оставьте.
Такой вопрос, библиотеки у меня все в zip архивах лежат, их ведь не нужно распаковывать?
Рапаковывать обязательно. Больше того, каждая библиотека должнабыть распакована в отдельную папку в директории c:\Users\..\Documents\Arduino\libraries\
После перезапуска среды библиотека должна быть видна в меню IDE скетч->подключить библиотеку
xnemez@mail.ru
Можете скинуть используемые вами бибилиотеки для этого скетча.
Или ссылки где их стоит скачивать?
Почту давайте, скину ту что к вашему скетчу подходит. Качал давно, ссылку вряд ли найду.
Насчет архивов - сейчас вроде видит и в них, но я все равно по привычке распаковываю.
xnemez@mail.ru
Решил переустановить все библиотеки, тока не понял как это сделать..
В менеджере библиотек нельзя удалить...
Захожу удаляю бибилотеку по пути:
C:\Program Files (x86)\Arduino\libraries
А она остаётся в примерах... ерунда какая то...
Или он подгружает библиотеки из места установки архива?
IDE перезапускаете?
IDE перезапускаете?
Да
Ах вот оно что, оказывается пользовательские библиотеки хранятся по пути:
C:\Users\user\Documents\Arduino\libraries
В итоге заработал такой скетч, всем спасибо за помощь!
#include <Wire.h> // Добавляем необходимые библиотеки #include <LiquidCrystal_I2C.h> #include "DHT.h" #define DHTPIN 2 // пин для сигнала поступающего с датчика //выбор используемого датчика //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) //инициализация датчика DHT dht(DHTPIN, DHTTYPE); byte degree[8] = // кодируем символ градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея void setup() { lcd.begin(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar(1, degree); // Создаем символ под номером 1 Serial.begin(9600); dht.begin(); } void loop() { // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius float t = dht.readTemperature(); // Read temperature as Fahrenheit float f = dht.readTemperature(true); // Выводим показания влажности и температуры lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки lcd.print("Hum = % "); // Выводим текст lcd.setCursor(7, 0); // Устанавливаем курсор на 7 символ lcd.print(h, 1); // Выводим на экран значение влажности lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса lcd.setCursor(7, 1); // Устанавливаем курсор на 7 символ lcd.print(t,1); // Выводим значение температуры }Остался тока 1 вопрос, почему то при подключении питания датчика DHT22 не от Arduino Uno, а от платы питания MB102, показания датчика перестают поступать, даже при использования стандартного скетча для датчика DHT22 который выложил ниже.
Хотя с напряжением всё ок проверял мультиметром, и та же история с дисплеем.
#include <stDHT.h> DHT sens (DHT22); void setup() { Serial.begin(57600); pinMode(2, INPUT); digitalWrite(2, HIGH); } void loop() { int t = sens.readTemperature(2); int h = sens.readHumidity(2); delay(1000); Serial.print("Hum: "); Serial.print(h); Serial.print("% "); Serial.print("Temp: "); Serial.print(t); Serial.println(" C "); }Земли соедините вместе
При таком определении библиотеки она должна лежать в папке скетча