Arduino-シリアル経由でWebに温度を送信
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
Serial.println(temperature)を使用するだけで、Web経由で温度を送信できます。組み込みのWebシリアルプロッタを使用すると、WebプログラミングなしでWeb上の温度を視覚化できます。
初心者の方は、Arduinoでwifiとセンサーについて学ぶことができます-WifiとArduino-DS18B20温度センサーのチュートリアル
デモンストレーション
。
仕組み
- Arduinoはセンサーから温度値を読み取り、シリアル経由で送信します
- 携帯電話またはPCのブラウザからWebシリアルプロッタにアクセスする
- 温度は自動的にWebに転送されます。
- WebはWeb上の温度を視覚化します
- デフォルトでは、WebシリアルプロッタはArduinoIDEのシリアルプロッタと同じように機能します。 X軸のタイトル、Y軸のタイトル、温度範囲、および表示されるデータサンプルの数も追加するようにカスタマイズする必要があります。これは、設定ページから行うことができます。
ステップバイステップの説明
1。配線
- ArduinoにPHPoCWifi Shield2またはPHPoCShield2をスタックする
- 回路図部分の画像のような配線
2。 Arduinoコードをコンパイルしてアップロードする
「Arduinoコード-短いサンプリング期間」のコードを参照してください。
3。 Webシリアルプロッタをカスタマイズする
- PHPoCWiFiシールドのIPアドレスを入力してWebシリアルプロッタにアクセスします
- カスタマイズページへの[設定]リンクをクリックします
- 上記のようにパラメータをカスタマイズして保存
4。結果
- 接続ボタンをクリックして結果を確認します
長期間にわたる温度の監視
温度が短い間隔(秒など)でサンプリングされている場合は、グラフが表示されるのを待つことができるため、温度値をシリアルに出力する必要があります。
毎日または1時間ごとに温度を監視したい場合はどうなりますか?すべてのグラフが表示されるのを待ちきれません。
ソリューション :最後のサンプリング温度の数値をArduinoに保存し、頻繁に印刷します。
たとえば、100時間の温度をグラフに表示したいとします。単位は時間です。センサーから1時間ごとにデータを読み取り、それをサークルキューに保存する必要があります(キューの長さは100です)。毎秒、100個のサンプルデータすべてを印刷します。したがって、100時間待たずに、過去100時間の気温のグラフを見ることができます。
「Arduinoコード-長いサンプリング期間」でコードを確認できます。
初心者のための最高のArduinoスターターキット
初心者向けの最高のArduinoキットをご覧ください
コード
- Arduinoコード-短いサンプリング期間
- Arduinoコード-長いサンプリング期間(毎日、毎時...)
Arduinoコード-短いサンプリング期間 Arduino
#include#include #include #define SAMPLE_INTERVAL 1000 //ミリ秒単位//データワイヤは、ArduinoOneWire oneWire(8); DallasTemperatureのポート8に接続されています。センサー(&oneWire); unsigned long lastSampleTime; void setup(){Serial.begin(9600); while(!Serial); Sensors.begin(); Phpoc.begin(); lastSampleTime =millis();} void loop(){if((millis()-lastSampleTime)> SAMPLE_INTERVAL){sensors.requestTemperatures(); float temp =Sensors.getTempCByIndex(0); Serial.println(temp); lastSampleTime =millis(); }}
Arduinoコード-長いサンプリング期間(毎日、毎時...) Arduino
#include#include #include #define UPDATE_INTERVAL 1000 // in ms#define SAMPLE_INTERVAL 60 * 60 * 1000 // 1時間//データワイヤが接続されているArduinoOneWireのポート8にoneWire(8); DallasTemperatureセンサー(&oneWire); unsigned long lastSampleTime; unsigned long lastUpdateTime; float temps [100]; int index; void setup(){Serial.begin(9600); while(!Serial); Sensors.begin(); Phpoc.begin(); lastSampleTime =millis(); lastUpdateTime =millis(); index =0;} void loop(){if((millis()-lastSampleTime)> SAMPLE_INTERVAL){sensors.requestTemperatures(); float temp =Sensors.getTempCByIndex(0); temps [index] =temp;インデックス=(インデックス+ 1)%100; lastSampleTime =millis(); } if((millis()-lastUpdateTime)> UPDATE_INTERVAL){for(int i =0; i <100; i ++){Serial.println(temps [(index-i + 100)%100]); } lastUpdateTime =millis(); }}
回路図
1.ArduinoにPHPoCWifi Shield2またはPHPoCShield2をスタックします 2.下の画像のような配線
製造プロセス