Модуль DHT11 и ошибка кодирования ЖК-дисплея I2C на Arduino Uno

Это не первый раз, когда я использую Arduino, но это было давно, поэтому я рассматривал использование учебного комплекта. Он имеет модуль датчика влажности и температуры DHT11 и жидкокристаллический модуль I2C. Прилагаемое руководство содержит инструкции для этого, но оно просто дает схему схемы и код. На самом деле это ничего не объясняет. Поэтому, когда я попытался загрузить код, я получил сообщение об ошибке "ожидаемое первичное выражение перед токеном'.'". Кто-нибудь может помочь мне расшифровать эту ошибку, чтобы ее можно было исправить? Я был бы вам очень признателен.

Я приложил код ниже.

/*****************************************************
 * название:Humiture Detection  (определение влажности)
 * функция:вы можете видеть текущее значение влажности и температуры, отображаемое на дисплее I2C LCD1602.
 ******************************************************/
//Email:[email protected]
//Website:www.sunfounder.com

//включить библиотеки
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h> 
LiquidCrystal_I2C lcd(0x27,16,2);  // установите адрес ЖК-дисплея на 0x27 для 16 символов и 2-строчного дисплея

//dht DHT; //создайте переменный тип dht

const int DHT11_PIN= 4;

void setup()
{
  Serial.begin(9600); //инициализация последовательного монитора
//  lcd.init();  //инициализировать жк
  lcd.backlight();  //открыть подсветку 
}

void loop()
{
  // ЧТЕНИЕ ДАННЫХ
  //Serial.println("DHT11:");
  //читать значение, возвращаемое датчиком
  int chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case DHTLIB_OK:  
        //Serial.println("OK!"); 
        break;
    case DHTLIB_ERROR_CHECKSUM: 
        //Serial.print("Ошибка контрольной суммы,\t"); 
        break;
    case DHTLIB_ERROR_TIMEOUT: 
        //Serial.print("Ошибка тайм-аута,\t"); 
        break;
    default: 
        //Serial.print("Неизвестная ошибка,\t"); 
        break;
  }
 // DISPLAY DATA
lcd.setCursor(0, 0);
 lcd.print("Tem:");
 Serial.print("Tem:");
 lcd.print(DHT.temperature,1); //вывести температуру на на lcd
 Serial.print(DHT.temperature,1);
 lcd.print(char(223));//вывести на lcd единицу измерения " ℃ "
 lcd.print("C");
 Serial.println(" C");
 lcd.setCursor(0, 1);
 lcd.print("Hum:");
 Serial.print("Hum:");
 lcd.print(DHT.humidity,1); //вывести влажность на lcd
 Serial.print(DHT.humidity,1);
 lcd.print(" %"); 
 Serial.println(" %");
 delay(200); //wait a while 
}

, 👍1

Обсуждение

У вас есть свое определение "DHT", прокомментированное, поэтому он не может понять, что вы имеете в виду, когда говорите " DHT.read11(...)`., @Majenko

Я голосую за то, чтобы закрыть этот вопрос, потому что это чистая синтаксическая ошибка C++, а не проблема с кодированием Arduino., @Majenko

DHT dht изначально не был прокомментирован, и он помечается как ошибка, почему это ошибка, я не знаю, почему., @Roland Joseph Reynoso

Возможно, у вас установлена неправильная библиотека DHT. Их около 8, все называются DHT.h, и все разные., @Majenko

Кроме того, как это не проблема с кодированием в Arduino? Это для Arduino Uno с ЖК-дисплеем DHT 11 и I2C, над которым он был закодирован в интегрированной среде разработки Arduino. Как это не проблема с кодированием для Arduino?, @Roland Joseph Reynoso

https://arduino.stackexchange.com/help/on-topic : "Общее кодирование: Если ваш вопрос касается кодирования, не связанного с Arduino, попробуйте переполнить стек. Если решение будет одинаковым с Arduino или без него, то это, как правило, общий вопрос о кодировании. ", @Majenko

У меня есть библиотека датчиков DHT от adafruit, @Roland Joseph Reynoso

Ну, моя проблема основана на коде для arduino, вот почему я подумал, что это будет подходящее место., @Roland Joseph Reynoso

Я вернул DHT dht, и он ошибся, как в формате dht DHT, так и в формате DHT dht. Я также установил дополнительные библиотеки, но это все еще не работало, @Roland Joseph Reynoso

Тогда это другая проблема, чем та, о которой вы спрашивали здесь. Начните с одного из примеров, прилагаемых к вашей библиотеке., @Majenko