質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

1回答

1008閲覧

ESP82661台とCCS811センサー2台同時接続、計測できるプログラミングをしています

sibuya

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/12/15 06:21

編集2022/01/12 10:55

前提・実現したいこと

arduinoIDEを使って ESP82661台とCCS811センサー2台同時接続、計測できるプログラミングをしています。この二つのセンサーをI2C通信して計測するプログラムでif文のところにえらーが発生しています。
最終的にシリアルモニタで二つのデータを表示させるためにエラーを解決したいです
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

lang

1'void loop()': 2ccs811_mod_de-tayou_futatu_kaizen:37:22: error: expected initializer before '(' token 3 37 | if(CCS811 mySensor1(CCS811_ADDR1).dataAvailable()) 4 | ^ 5ccs811_mod_de-tayou_futatu_kaizen:37:22: error: expected ')' before '(' token 6 37 | if(CCS811 mySensor1(CCS811_ADDR1).dataAvailable()) 7 | ~ ^ 8 | ) 9ccs811_mod_de-tayou_futatu_kaizen:37:52: error: could not convert 'mySensor1' from 'CCS811' to 'bool' 10 37 | if(CCS811 mySensor1(CCS811_ADDR1).dataAvailable()) 11 | ^ 12 | | 13 | CCS811 14ccs811_mod_de-tayou_futatu_kaizen:43:23: error: expected initializer before '(' token 15 43 | if (CCS811 mySensor1(CCS811_ADDR2).dataAvailable()) 16 | ^ 17ccs811_mod_de-tayou_futatu_kaizen:43:23: error: expected ')' before '(' token 18 43 | if (CCS811 mySensor1(CCS811_ADDR2).dataAvailable()) 19 | ~ ^ 20 | ) 21ccs811_mod_de-tayou_futatu_kaizen:43:53: error: could not convert 'mySensor1' from 'CCS811' to 'bool' 22 43 | if (CCS811 mySensor1(CCS811_ADDR2).dataAvailable()) 23 | ^ 24 | | 25 | CCS811 26「SparkFunCCS811.h」に対して複数のライブラリが見つかりました 27 28exit status 1 29 30expected initializer before '(' token

該当のソースコード

lang

1/* 2 * SparkFunのCCS811ライブラリーを使い、30秒毎にCO2、TVOCの値を読むサンプルプログラム。 3 */ 4 5#include <ESP8266WiFi.h> 6#include <Wire.h> 7#include "SparkFunCCS811.h" 8#include <SparkFunCCS811.h> 9#define CCS811_ADDR1 0x5A 10#define CCS811_ADDR2 0x5B 11 12 13 14// Default I2C Address// ESP8266のピンの定義 15 CCS811 mySensor1(CCS811_ADDR1); 16 CCS811 mySensor2(CCS811_ADDR2); 17 18void setup() { 19 Serial.begin(115200); 20 Serial.println("CCS811 Basic Example"); 21 Wire.begin(SDA, SCL); 22 CCS811Core::status returnCode1 = mySensor1.begin(); 23 if (returnCode1 != CCS811Core::SENSOR_SUCCESS) 24 { 25 Serial.println("mySensor1 returned with an error."); 26 while (1); 27 } 28 CCS811Core::status returnCode2 = mySensor2.begin(); 29 if (returnCode2 != CCS811Core::SENSOR_SUCCESS) 30 { 31 Serial.println("mySensor2 returned with an error."); 32 while (1); 33 } 34} 35 36void loop() { 37 if(CCS811 mySensor1(CCS811_ADDR1).dataAvailable()) 38 { 39 mySensor1.readAlgorithmResults(); 40 Serial.print(mySensor1.getTVOC()); 41 Serial.println(); 42 } 43 if (CCS811 mySensor2(CCS811_ADDR2).dataAvailable()) 44 { 45 mySensor2.readAlgorithmResults(); 46 Serial.print(mySensor2.getTVOC()); 47 Serial.println();

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

↓単一のセンサーでは正常に動きます

lang

1/* 2 * SparkFunのCCS811ライブラリーを使い、30秒毎にCO2、TVOCの値を読むサンプルプログラム。 3 */ 4 5#include <ESP8266WiFi.h> 6#include <Wire.h> 7#include "SparkFunCCS811.h" 8#define CCS811_ADDR 0x5B // Default I2C Address 9#define SDA 13// ESP8266のピンの定義 10#define SCL 14// ESP8266のピンの定義 11 12CCS811 ccs811(CCS811_ADDR); 13 14void setup() { 15 Serial.begin(115200); 16 Serial.println("CCS811 Basic Example"); 17 Wire.begin(SDA, SCL); 18 CCS811Core::status returnCode = ccs811.begin(); 19 if (returnCode != CCS811Core::SENSOR_SUCCESS) 20 { 21 Serial.println(".begin() returned with an error."); 22 while (1); 23 } 24 ccs811.setDriveMode(1); 25} 26 27void loop() { 28 if (ccs811.dataAvailable()) 29 { 30 ccs811.readAlgorithmResults(); 31 Serial.print(ccs811.getTVOC()); 32 Serial.println(); 33 } 34 else if (ccs811.checkForStatusError()) 35 { 36 while(1); 37 } 38 delay(10); 39}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2021/12/15 06:23

コードや画面に表示されたモノは、マークダウン記法を用いてご提示ください。 マークダウンに付きましてはヘルプをご参照ください。
sibuya

2021/12/16 04:03

やりました。よろしくお願いします。
thkana

2021/12/29 05:42

「まだ回答を求めている」そうですけれど、 あなたがどのようにソースを変更したか、どういうエラーが出たかの情報なしにどう回答しろというのでしょう?
guest

回答1

0

if(CCS811 mySensor1(CCS811_ADDR1).dataAvailable())

ちゃんと動いてる単一センサー版と同様、if ( mySensor1.dataAvailable() ) じゃなくて?

投稿2021/12/15 06:44

編集2021/12/15 06:46
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sibuya

2021/12/15 10:22

ありがとうございます! 明日の朝試してみます! 解決出来たら報告と、ベストアンサーにさせていただきます!
sibuya

2021/12/16 04:38

試してみたところ新たなエラーが出てしまい、動作検証できなかったです。 ↓エラーメッセージ exit status 1 ボードGeneric ESP8266 Moduleに対するコンパイル時にエラーが発生しました。
episteme

2021/12/16 04:41

それは別の問題なのでは?
thkana

2021/12/16 13:01

それは、「以上、できませんでした」と言っている部分なので、そこにはほとんど情報はありません。実際のエラーメッセージはその前に出ています。Arduino IDEであれば、エラーが出るとコードを入力する部分とコンソール出力部の境目に「エラーをコピーする」とかいうボタンができるはずなので、そのボタンを押してからクリップボードの内容を質問に貼り付けてください。(内容が変わるなら、この質問のURLを示しつつ新しい質問にするべきですね)
sibuya

2021/12/20 05:08

ありがとうございます教えていただきありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問