最後に別の記事を書くことになりました。
私の最初の記事「Ethernet Weather Station」では、将来機能を拡張するための一定の余裕を持って家庭用気象ステーションを作成するプロジェクトについて説明されました。 現時点では、プロジェクトから、この製品は完全なデバイスセクションに移行しています。 24時間年中無休で作業し、私と私の家族に天気について忠実に知らせる。 多くのことが変更されたと言わなければなりません。
最初はホームサーバーを使用するという考えでしたが、後で、データの表示と保存にクラウドサービスを使用する方が機能的で手頃な価格になるという結論に至りました。 そして、Habrの読者の1人である Evgeny Boger evgeny_bogerによる記事「Denstration of the Wiren Board Smart Home」に出会い 、すばらしいNinja Blocksサービスの使用について説明しました。 その上で、データマッピングを実装することにしました。
現時点では、次のようになっています。
すぐに予約します。グラフでは、 「バウンス」のようなデータのわずかな非線形性を確認できます。 これまでのところ、私はこの問題を解消することができませんでした。おそらくこれは、データロギングの期間が長い( 60秒ごと )ことによる可能性があります。 または、センサーの特定のエラー。 誰かが解決策を求めたら、私は感謝します。 そして、特に注意を払っている人にとっては、圧力測定値が「kWh」であることがわかります。奇妙なことに、圧力データを表示するためにNinja Blocksでグラフを見つけました。 そのため、「色」の区別と単純な視覚認識のために、消費電力を表示するグラフを使用しました。 内部温度の2つのグラフも表示されます。 これは、 BMP085にも温度を測定する機能があり、制御センサーとして使用したためです。
コード自体について少し説明しましょう。
コードの観点から見ると、 Ninja Blocksサービス自体の操作は非常に簡単で便利です。
まず、クラウド自体にアカウントを作成する必要があります。 これを行うには、アドレス「Ninja Blocks」に移動します
アカウントを作成します。
これで、コード自体で使用してデバイスを識別するための一意のコード「トークン」が作成されました。
Arduino Virtual Block Tokenに必要なものを追加する価値があります。
次に、コードの記述に進みます。
最初に、スケッチを作成するときに目的のライブラリを指定します。
#include <NinjaBlockEthernet.h>
次に、 Ninja Blocksクラウド自体のサーバーへの接続を規定します。
NinjaBlock.host = "api.ninja.is"; NinjaBlock.port = 80; NinjaBlock.nodeID = "ETHERSHIELDBLOCK"; // - ; NinjaBlock.token = " ";// - ; NinjaBlock.guid = "0";
次に、送信するデータとそれらを表示するために使用するスケジュールを指定します。
温度の例を使用すると、次のようになります。
void loop() { float t1 = dht.readTemperature(); { NinjaBlock.deviceID=(31); // - ; NinjaBlock.send(t1); }
可能なグラフの完全なリストとその説明は、 「グラフのリスト」にあります 。 残念ながら、グラフィック表示のヒントはありません。 私は個人的に、適切なものを検索することにより、必要なものを検索しました。
また、コードに示されているチャートが「ダッシュボード」セクションに自動的に表示されることも言わなければなりません。
このサービスの使用方法の概要を以下に示します。
最終コードを引用しませんでした、なぜなら 彼はオリジナルと違いはありません。 誰かが興味があるなら、私は送ります。
製品自体は、現時点では次のようになっています。
このステーションは、外部の5V電源を備えた本格的な建物内に設計されています。 写真からわかるように、作業を評価するための2つのインジケータ、 「グリーン」 - パワー 、 「レッド」 - データ転送があります。 私はすぐに 、すべてが「工場」の製品原理ではなく、古いロシアの原則「それが何であるかを盲目にした!」に従って組み立てられたと言わなければなりません。 しかし、しかし、
気象データ自体の測定パラメータについて少し
これはまだ気象観測所であり、測定されたパラメータの範囲は言うまでもありません。
屋内測定:
•湿度測定範囲0%.. 100%
•温度測定範囲-40〜+ 80℃
屋外でのパラメーターの測定:
•湿度測定範囲0%.. 100%
•温度測定範囲-40〜+ 80℃
気圧測定:
•測定圧力の範囲、mbar 300-1100
より正確なBMP085パラメーター
- 絶対精度、mbar(最高/最低の場合)±2.5 /±4.0
- 相対精度、mbar(最高/最低の場合)±0.2 /±0.5
- 最大解像度、mbar / m(圧力/高さ)0.01
- 測定温度の範囲、°C 0-65
- 絶対精度、°(最良/最悪の場合)±0.5 /±2.0
- 最大解像度、°C 0.1
- 平均消費電流(1サンプル/秒)、µA(最小/最大)3/12
外部センサーの配置について別の言葉を言いたいです。 私は長い間その配置について考えました。 当初、センサーは「工場」気象観測所のセンサーの隣にある従来の取り付けボックスに隠れていました。
しかし、それは一時的なものでした。 はい、それはかなりひどく見えました。 その結果、解決策が見つかりました。 そして、外部センサーに対応するために、 「これ」が作成されました。
はい、なぜこれほど多くの0_oナッツがあるのですか? いいえ、カウンターウェイトとしてではなく、ただ見てください)))それは十分であり、1)
これで、両方のセンサーが次のように隣接しています。
誰がこの奇跡を作成するプロセスに興味があるのか、ホームワーカーはそれを「クリスマスツリー」 、 PHOTOアーカイブアプリケーションのアーカイブの段階的な写真と呼んでいます。 最初は、品質について謝罪します。写真はその過程で撮影されたものです。
それでも、この「クリスマスツリー」の夜には、かなり審美的なアシッドグリーンのインテリア照明があります! これは地面から完全に見える。 まあ、これはそうです、特に印象的な隣人を怖がらせるためのより多くの「歌詞」 )
結論として:
その結果、非常に高価ではない本格的な気象ステーションが完成しました。
施設内外の 温度と湿度の データと、気圧のデータを提供します。 また、このデータへのアクセスは、 Ninja Blocksサービスのおかげで、インターネットにアクセスできる任意のデバイスから実行できます。
次は?!?
プロジェクトを大きくし、Androidプラットフォーム用のウィジェットを作成するためのアイデアがあります。 私だけでなく、地区と市全体の残りの住民にデータの可用性を実現する。 結局のところ、特定の地点からの天気は、 「ギスメテオ」またはグローバルデータを持つ他のリソースがある天気よりもはるかに正確です。
使用した材料:
「イーサネット気象ステーション」
Wiren Board Smart Homeデモ
PS
誰も気にしない、私はすべての質問に答えさせていただきます。 ソースコードを送信できます。