問題タブ [sdi-12]

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.

0 投票する
2 に答える
3672 参照

serial-port - Arduino シリアル: 反転 7E1。可能?

SDI-12デバイスとシリアル通信しようとしていますが、反転した7 データ ビット、偶数パリティ、および1200 ボーでの 1 ストップ ビット (7E1) シリアルが必要です。

データシートから:

SDI-12通信は 1200 ビット/秒で文字を送信します。各文字には、1 つのスタート ビット、7 つのデータ ビット (LSB ファースト)、1 つの偶数パリティ ビット、および 1 つのストップ ビット (アクティブ LOW または反転論理レベル) があります。

All SDI-12コマンドと応答は、データ行で次の形式に従う必要があります。コマンドと応答の両方の前にアドレスがあり、キャリッジ リターンとライン フィードの組み合わせで終了します。

これは Serial または SoftwareSerial ライブラリで可能ですか? 追加のハードウェア (3.3 V へのレベルシフターを超える) を回避しようとしていますが、それが唯一の方法である場合はそうします。

SoftwareSerial は反転でき、Serial は 7E1 を実行できることがわかりましたが、どちらかが両方できるかどうかはわかりません。

Arduino Mega (R2) とArduino Uno (R3)にアクセスできます。

通信したいデバイスは次のとおりです。 .decagon.com/assets/Uploads/GS3-Integrators-Guide.pdfは、プロトコルを説明するドキュメントです。6 ページでは、SDI の実装について説明しています。

0 投票する
1 に答える
659 参照

arduino - Decagon デバイスの Arduino Uno と SDI-12 インターフェイス間のコーディング エラー

私は最近、Arduino Uno で土壌の導電率センサー (Decagon Devices の 5TE センサー) を使用するプロジェクトに取り組んでいます。コーディングの準備が整い、GitHub でこのサンプル コードを見つけました (ページを下にスクロールすると、サンプル コードが表示されます)。最新バージョンの Arduino で実行しようとすると、次のコンパイル エラーが発生しました。

注:ライブラリを正しくインストールしたと思いますが、100%確実ではありません...85%のようです。

コードの何が問題で、どのように機能させることができますか?

0 投票する
0 に答える
1543 参照

python - PySerial を使用して SDI-12 プローブと通信する

背景: コマンドを土壌水分プローブ (Stevens 'Hydra II Soil and Salinity probe') に送信するスクリプトを作成しようとしています。これにより、その出力を GPS で QGIS に組み込み、特定のジオコード ポイントで土壌水分を記録できます。

セットアップ: Windows 8 を使用しており、USB 経由でポート COM6 を介して、USB から SDI-12 へのアダプター (Stevens 'SDI-12 Explorer') を介してプローブに接続されています。Python 2.7.6 を使用しています。

テスト: 私は SDI-12 Explorer 独自のインターフェイスを使用しており、プローブから測定値を表示および実行できます。ポート モニターをインストールして、作成した PySerial スクリプトと SDI-12 Explorer インターフェイスの両方からのポート トラフィックを確認しましたが、COM ポートを開く方法に違いがあります。(以下は Python のようにフォーマットされていますが、COM ポートのトラフィックのみです)。

これらのプローブのいずれかが手元にない限り、これを正確に再現することはできませんが、スクリプトは SDI-12 プロトコルを使用する任意の機器と通信できるはずです。

質問: 1. このスクリプトを動作させる方法を知っている人はいますか? 2. 「DTR_CONTROL」をオフにする、または Xon Xoff 制限を変更するにはどうすればよいですか? これらは、com ポートを開くヘッダーの主な違いのようです。3. SDI-12 デバイスとの通信に必要な正しいタイミング シーケンスを知っている人はいますか?

プローブのコマンドのドキュメントは次のとおりです

プロトコル ( http://www.sdi-12.org/specification.php?fileID=1 )

Pyserial スクリプト # ライブラリのインポート シリアル インポート時間

ありがとう!

0 投票する
0 に答える
38 参照

python - COM ポートを UART として管理し、ロジックレベルを制御するライブラリ

私は SDI-12 から USB へのコンバーターを使用しており、コンピューター側のデータは UART プロトコルで管理されていますが、特別な方法で管理されています。データは従来の UART プロトコルとしてコンピューターからコンバーターに送信されますが、論理を反転する必要があります (1 に設定されたビットは 0 の電圧レベルとして送信されます)。センサーをウェイクアップするミリ秒単位の時間。次に、この目的に使用できるライブラリ (python、C++、C# など) はありますか? 反転ロジックでコマンドを送信し、必要な時間に tx 電圧レベルを制御することを意味します。

ご協力いただきありがとうございます。よろしくお願いします