問題タブ [esp32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arduino - Arduino - DHT センサー ベース オン チップ (ESP32 対 ESP8266) の選択ヘッダー
まず、私は C++/Arduino の専門家ではありませんが、この問題について十分に調べ、理解できないところを十分に調べました。
DHT ライブラリ ( https://github.com/RobTillaart/Arduino/tree/master/libraries/ )を呼び出すセンサー ライブラリ ファイルを呼び出す Arduino コードがいくつかあります。このライブラリには 2 つの主要なバージョンがあります。1 つは AVR および ARM ベースのチップとの互換性を維持する DHTStable にあり、もう 1 つは AVR 用に最適化された DHTLib にあります。ESP8266 (DHTStable が必要) と ESP32 (DHTlib でより適切に動作) の両方で同じスケッチをコンパイルしています。
今、コンパイルしてESP32にダウンロードし、完了したらDHTLibライブラリを移動し、DHTStableをコピーしてから、コンパイルしてESP8266用にダウンロードします。数日または 1 週間後、このコピーと貼り付けをもう一度行います。
私のセンサーライブラリでは、特定のコマンドについてESP32のチェックをすでに行っています。ESP32でない場合は、ESP8266を使用してコマンドを#if defined(ARDUINO_ARCH_ESP32)
実行します。これはコマンドに最適です。ただし、定義に使用しようとしていますが、「ちょっと」機能します。2 つのライブラリのいずれかを取得し、ヘッダーと cpp ファイルの名前を変更し、内部のすべての参照を他のものとは異なるものにする必要があります。それから私のIf I can do a if ESP32 use dht-avr.h (renamed) else dht.h (original)。
これはすべて機能しますが、gitを使用してライブラリのクローンを作成し、更新し続けるため、更新があるたびにすべての名前を変更する必要があります。だから私は #include を試し<DHTlib\dht.h>
まし<DHTStable\dht.h>
たが、これらは機能しません (ライブラリが見つかりません)。
私がやりたいことは、実際のインクルード パスまたは 2 つの異なるヘッダーが同じ名前の場合に呼び出すことは可能ですか? If ステートメントが機能するので、私は 90% (すべての名前を変更し続ければ 100%) 完了していますが、これを自動化したいと思っています。
@BMelis は、パスに .. を付けて正しい軌道に乗せました。最終的なコードは次のようになりました。