Брелок Arduino и датчик CCS811
Я подключил брелок и CCS811 Я пытаюсь собрать и загрузить скетч в модуль:
/******************************************************************************
Read basic CO2 and TVOCs
Marshall Taylor @ SparkFun Electronics
Nathan Seidle @ SparkFun Electronics
April 4, 2017
https://github.com/sparkfun/CCS811_Air_Quality_Breakout
https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library
Read the TVOC and CO2 values from the SparkFun CSS811 breakout board
A new sensor requires at 48-burn in. Once burned in a sensor requires
20 minutes of run in before readings are considered good.
Hardware Connections (Breakoutboard to Arduino):
3.3V to 3.3V pin
GND to GND pin
SDA to A4
SCL to A5
******************************************************************************/
#include <Wire.h>
#include "SparkFunCCS811.h" //Нажмите здесь, чтобы получить библиотеку: http://librarymanager/All#SparkFun_CCS811
#define CCS811_ADDR 0x5B // Адрес I2C по умолчанию
//#define CCS811_ADDR 0x5A //Альтернативный адрес I2C
CCS811 mySensor(CCS811_ADDR);
#include <SoftwareSerial.h>
const int rx = 0; //3
const int tx = 2; //4
const int alarmPin = 4;
SoftwareSerial mySerial(rx, tx);
void setup()
{
mySerial.begin(9600);
mySerial.println("CCS811 Basic Example");
Wire.begin(); //Инициализировать оборудование I2C
pinMode(alarmPin, OUTPUT);
}
void loop()
{
//Проверяем готовность данных с помощью .dataAvailable()
if (mySensor.dataAvailable())
{
//Если это так, попросите датчик считать и вычислить результаты.
//Получить их позже
mySensor.readAlgorithmResults();
mySerial.print("CO2[");
//Возвращает рассчитанное значение CO2
double val = mySensor.getCO2();
mySerial.print(val);
if(val>=2000){
digitalWrite(alarmPin, HIGH);
}
//Serial.print("] tVOC[");
//Возвращает рассчитанное значение TVOC
//Serial.print(mySensor.getTVOC());
//Serial.print("] миллис[");
// Отображение времени с момента запуска программы
//Serial.print(millis());
//Серийный.принт("]");
//Серийный.println();
}
delay(10); // Не спамить шину I2C
}
Однако, когда я проверяю скетч, я получаю следующие ошибки:
In file included from C:\Users\Nitin\Desktop\co2\co2.ino:26:0:
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:77:28: error: 'TwoWire' has not been declared
CCS811_Status_e beginCore(TwoWire &wirePort);
^~~~~~~
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:97:2: error: 'TwoWire' does not name a type; did you mean 'Wire'?
TwoWire *_i2cPort; //Общее подключение к выбранному пользователем оборудованию I2C
^~~~~~~
Wire
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:112:13: error: 'TwoWire' has not been declared
bool begin(TwoWire &wirePort = Wire); // Использовать оборудование Wire по умолчанию
^~~~~~~
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:113:34: error: 'TwoWire' has not been declared
CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire); // Использовать оборудование Wire по умолчанию
^~~~~~~
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:112:33: error: could not convert 'Wire' from 'TinyM_USI_TWI' to 'int&'
bool begin(TwoWire &wirePort = Wire); // Использовать оборудование Wire по умолчанию
^~~~
C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library\src/SparkFunCCS811.h:113:54: error: could not convert 'Wire' from 'TinyM_USI_TWI' to 'int&'
CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire); // Использовать оборудование Wire по умолчанию
^~~~
Multiple libraries were found for "Wire.h"
Used: C:\Users\Nitin\AppData\Local\Arduino15\packages\adafruit\hardware\avr\1.4.13\libraries\Wire
Not used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Multiple libraries were found for "SparkFunCCS811.h"
Used: C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library
Not used: C:\Users\Nitin\Documents\Arduino\libraries\arduino_613982
Using library Wire at version 1.0 in folder: C:\Users\Nitin\AppData\Local\Arduino15\packages\adafruit\hardware\avr\1.4.13\libraries\Wire
Using library SparkFun_CCS811_Arduino_Library at version 2.0.1 in folder: C:\Users\Nitin\Documents\Arduino\libraries\SparkFun_CCS811_Arduino_Library
Using library SoftwareSerial at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial
exit status 1
Error compiling for board Adafruit Gemma (ATtiny85 @ 8MHz).
Я вижу, что эта библиотека - SparkFun_CCS811_Arduino_Library несовместима с брелоком https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library/issues/19
кто-нибудь может подсказать, как написать скетч для брелока, подключенного к датчику CCS811?
@Nitin S, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 1
Похоже, у вас есть два варианта
- Используйте другой контроллер, совместимый с обычной библиотекой Arduino Wire — например, Nano?
- Измените SparkFunCCS811.h, добавив #include TinyWireM.h вместо Wire.h. На самом деле это совсем несложно — просто нужно немного терпения и понимания того, что «волшебства нет».
Фрэнк
,
@user3765883
Смотрите также:
- Wire.h не найден!
- Может ли плагин Arduino Eclipse использовать библиотеки, установленные Arduino IDE?
- ATtiny85 и DHT11 - Датчик всегда возвращает 0
- Arduino IDE: Плата nodemcuv2 (платформа esp8266, пакет esp8266) неизвестна
- Альтернативы дисплею Nextion
- TinyGPS++ Вопрос о gps.encode(ss.read())
- Как сгенерировать файлы .a и .so для добавления в проект arduino
- Только что установил Arduino 2.0.3 - каков путь Windows к связанным библиотекам?
внимательно прочитайте распечатку ошибки... о чем она вам говорит?, @jsotola