Датчик MHZ19B — Библиотека не найдена. Пожалуйста, помогите!

Кажется, я не могу понять, в чем здесь проблема. Я пытаюсь загрузить этот код в Arduino Uno, но он продолжает сообщать мне, что библиотека не найдена. Я скачал библиотеку для датчиков MHZ, но она ей не нравится. Я новичок в Arduino. Пожалуйста помоги! Это код:

// Библиотеки
#include <DHT.h>
#include <SD.h>
#include <SoftwareSerial.h>
#include <MHZ19B.h>

// Константы
const int chipSelect = 10;   // контакт выбора чипа SD-карты
#define DHTPIN 7             // Контакт датчика DHT
#define DHTTYPE DHT22        // тип датчика DHT
#define MHZ19B_TX_PIN 8      // Контакт TX датчика MHZ19B
#define MHZ19B_RX_PIN 9      // Контакт RX датчика MHZ19B

// Переменные
DHT dht(DHTPIN, DHTTYPE);
File dataFile;

MHZ19B mhz19b;
float hum;      // Значение влажности
float temp;     // Значение температуры
int lightVal;   // Значение датчика освещенности
int co2;        // концентрация CO2

void setup()
{
  Serial.begin(9600);
  dht.begin();

  Serial.print("Initializing SD card...");
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    while (1);
  }
  Serial.println("card initialized.");

  Serial.print("Initializing MHZ19B sensor...");
  mhz19b.begin(MHZ19B_TX_PIN, MHZ19B_RX_PIN);
  Serial.println("MHZ19B sensor initialized.");
}

void loop()
{
  lightVal = analogRead(A1);
  Serial.print("Light Value: ");
  Serial.println(lightVal);
  delay(50);

  hum = dht.readHumidity();
  temp = dht.readTemperature();
  Serial.print("Humidity: ");
  Serial.print(hum);
  Serial.print(" %, Temp: ");
  Serial.print(temp);
  Serial.println(" Celsius");
  delay(5);

  co2 = mhz19b.getCO2();
  Serial.print("CO2 Concentration: ");
  Serial.print(co2);
  Serial.println(" ppm");

  dataFile = SD.open("datalog.txt", FILE_WRITE);

  if (dataFile) {
    dataFile.println("Light Value: ");
    dataFile.println(lightVal);
    delay(50);

    hum = dht.readHumidity();
    temp = dht.readTemperature();
    dataFile.print("Humidity: ");
    dataFile.println(hum);
    dataFile.print(" %, Temp: ");
    dataFile.println(temp);
    dataFile.println(" Celsius");

    co2 = mhz19b.getCO2();
    dataFile.print("CO2 Concentration: ");
    dataFile.print(co2);
    dataFile.println(" ppm");

    delay(5000);
    dataFile.close();
  }
  else {
    Serial.println("Error opening datalog.txt");
  }

  delay(1000);
}

, 👍1

Обсуждение

посмотрите пример кода в библиотеке, @jsotola


1 ответ


1

Это потому, что это должен быть либо #include <MHZ.h> для библиотеки датчиков CO2 MH-Z, либо #include <MHZCO2.h> для библиотеки датчиков CO2 MH-Z. MHZCO2 один.

Как вы обычно включаете загружаемые библиотеки? Через заведующего библиотекой? В Arduino IDE 2.0 это можно сделать с помощью Sketch -> Включить библиотеку -> библиотека, которую вы хотите включить, должна содержать правильный заголовок.

,

Да. Заведующая библиотекой. Спасибо за помощь. Я попробую это., @Maria

@Мария, пожалуйста! Как упоминает jsotola выше, взгляните на пример в библиотеке (если вы собираетесь использовать датчики CO2 MH-Z) — способ инициализации датчика немного отличается от того, как вы это делали в скетч, который вы предоставили., @Nick S.

Хорошо. Я посмотрю. Я не владею кодом Arduino, но я проверю, смогу ли я его изменить и заставить его работать., @Maria