DHT 11 Не компилируется не один пример

arduinoandatmega8
Offline
Зарегистрирован: 25.07.2017

Првиет. Немогу проверить датчик, не компилируется не один пример из интернета.

Вот например:

в строке

Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");

выдает ошибку :

invalid operands of types 'const char [21]' and 'float' to binary 'operator+'

что не так?

 

Спасибо!

arduinoandatmega8
Offline
Зарегистрирован: 25.07.2017

вот полный код

#include "DHT.h"

#define DHTPIN 2 // номер пина, к которому подсоединен датчик

// Раскомментируйте в соответствии с используемым датчиком

// Инициируем датчик



DHT dht(DHTPIN, DHT11);

void setup() {

Serial.begin(9600);

dht.begin();

}

void loop() {

// Задержка 2 секунды между измерениями

delay(2000);

//Считываем влажность

float h = dht.readHumidity();

// Считываем температуру

float t = dht.readTemperature();

// Проверка удачно прошло ли считывание.

if (isnan(h) || isnan(t)) {

Serial.println("Не удается считать показания");

return;

}

Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");

}

 

b707
Offline
Зарегистрирован: 26.05.2017

arduinoandatmega8 пишет:

в строке

Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");

что не так?

Так вы читайте текст ошибки - там же все сказано. Строки в Си нельзя "складывать" операндом "+"

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

arduinoandatmega8 пишет:

что не так?

Всё не так, и в первую очередь, Вы пытаетесь программировать на языке, которого не знаете. Кто Вам сказал, что символьные строки можно конкатенировать операцией "+"? Таки нельзя.

kalapanga
Offline
Зарегистрирован: 23.10.2016

String Addition Operator

Откуда все эту строку с температурой и влажностью берут, не первый раз ведь уже.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Здорово! А при чем тут стринг? Компилятор с опцией "хрустальный шар " поставляется отдельно и за деньги.
:-D

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Напиши так.
Serial.println( (String) "Влажность" + h + ".......");

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Baks пишет:
Напиши так. Serial.println( (String) "Влажность" + h + ".......");

Блин! Ну зачем давать прямой ответ? Я написал ровно то же самое, но человек мог бы сам догадаться.

Если решение не найдено самостоятельно, то оно не несет никакой педагогической ценности! Чорт побери!

Если дается прямой ответ, это показывает, что мнение о спрашивающем - как о полном долбо..бе.... Что отдает мизантропией.

Hulumulu
Offline
Зарегистрирован: 25.01.2020

День добрый. Нужна ваша помощь, в мониторе порта при датчике DHT22 пишет вот такое вот:    "Ðе ÑдаеÑÑÑ ÑÑиÑаÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ" 

Вот код 

#include <Adafruit_Sensor.h>

#include <DHT.h>
#include <DHT_U.h>


#define DHTPIN 2 // номер пина, к которому подсоединен датчик

// Раскомментируйте в соответствии с используемым датчиком

// Инициируем датчик

DHT dht(DHTPIN, DHT22);

//DHT dht(DHTPIN, DHT11);

void setup() {

Serial.begin(9600);

dht.begin();

}

void loop() {

// Задержка 2 секунды между измерениями

delay(2000);

//Считываем влажность

float h = dht.readHumidity();

// Считываем температуру

float t = dht.readTemperature();

// Проверка удачно прошло ли считывание.

if (isnan(h) || isnan(t)) {

Serial.println("Не удается считать показания");

return;

}

Serial.println( (String) "Влажность: " + h + " %\t" + "Температура: " + t + " *C ");

}
Заранее спасибо!
sadman41
Offline
Зарегистрирован: 19.10.2016

Напишите фразы в println() на транслите/английском языке.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Версия IDE? До Потопа или сразу после?