Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

カスタマイズされたThingSpeakチャネルビューの作成

この例では、 ThingSpeakチャネルビューをライブ データ コンソールに変える方法を示します。この例では、 The Things Networkを通じて収集された環境データを使用していますが、この手順を独自のデータに適応させることもできます。ThingSpeak channel 876466 は、土壌水分、温度、GPS 位置のセンサーを備えた 3 つのセンサー プローブからのデータを表示するパブリックチャネルです。サンプルCollect Agricultural Data over The Things Network、センサー データをこのチャネルに送信するデバイスを構築する方法を詳しく説明します。フィールド値表示を追加してカウンターを表示し、チャネルロケーション マップを追加できます。時間依存の読み取り値を使用してセンサー データをフィルタリングし、根本的な傾向を視覚化しやすくします。最後に、チャネルデータを表す色と点領域を使用して、チャネル内の位置データのマップをプロットできます。

数値表示ウィジェットを追加する

このチャネルのフィールド 1 は、デバイスが稼働中であり、測定値が増加していることを示すカウンタ値です。チャネルビューにカウンターの最新の値を表示すると、センサーのアクティビティに関する最新情報がすぐに得られます。プライベートチャネルビューの [ウィジェットの追加] ボタンを使用して、チャネルにNumeric Display Widgetを追加できます。数値表示ウィジェットでフィールド値を確認するには、チャネルにデータが必要であることに注意してください。

チャネルロケーションマップを追加

チャネルの位置情報とチャネルデータの個々の更新を保存できます。この例では、最初にフィード データの位置情報とは異なるチャネルの位置マップを追加します。チャネルビューでチャネル設定タブを選択します。

「チャネルの位置を表示」を選択し、チャネルの位置の「緯度」と「経度」の情報を入力します。

「チャネルを保存」をクリックして設定を更新します。

これで、プライベート チャネル ビューとパブリックチャネルビューの両方にチャネルマップが含まれるようになりました。

2 系列プロットをチャネルビューに追加

MATLAB の視覚化では、チャネルビューに表示されるデフォルトのThingSpeakプロットと比較して、分析とプロットをより詳細に制御できます。特定のライセンス タイプでは、ビジュアライゼーションの自動更新も可能です。時間フィルタリングとしきい値フィルタリングの両方を使用して、データの視覚化を改善できます。この例では、温度と土壌水分の関係を視覚化します。まず、チャネルビューの [ MATLAB Visualization] ボタンをクリックします。

カスタム コード テンプレートを選択します。以下のコードをMATLABコード ウィンドウに入力します。対象のデータは前の実験からのものであるため、時間フィルタリングを使用してチャネルから古いデータを読み取ります。datetimeで開始時刻と終了時刻を設定します。次に、 thingSpeakReadを使用してデータを timetable に読み取ります。

startTime = datetime(2019,8,23,09,15,00);
endTime=  startTime+ days(2);
sensorData = thingSpeakRead(876466,'Location',1,'dateRange',[startTime endTime],...
    'location',1,'outputformat','timetable');

列 3 の温度データには、プロットする前に除外する必要がある不適切な測定値がいくつか含まれています。温度測定値が 100 を超える行をすべて削除します。

sensorData(sensorData{:,3}>100,:)=[];

これでプロットを完成させます。holdを使用してプロットが同じ図になっていることを確認し、 yyaxis右軸に土壌水分をプロットします。わかりやすくするために各側にylabelを追加し、 ylimでスケールを設定します。

plot (sensorData.Timestamps,sensorData.TemperatureF)
ylabel('^0F');
hold;
Current plot held
yyaxis right
plot(sensorData.Timestamps,sensorData.SoilMoisture);
ylabel('Soil Conductivity');
ylim([700 900]);
hold off;

土壌水分プローブは土壌の導電率を測定するため、より湿った、より導電性の測定値は、プロット上の値が低くなります。このプロットは、気温が低いほど土壌が湿っていると相関していることを示しています。

チャネルビューで位置データを使用して測定を視覚化

このチャネルの場合、プロトタイプはセンサー測定値とともに位置データを送信します。アプリケーションの 1 つは、温度と湿度を測定して広いエリアを調査し、位置情報とともにデータを視覚化することです。

前の例と同様に、チャネルビューのボタンを使用して新しいMATLABビジュアライゼーションを追加します。thingSpeakReadで最新のポイントを読み取り、 goescatterで位置データをプロットします。geobasemapを使用して衛星地図データを選択します。

mapData = thingSpeakRead(876466,'ReadKey','R14RSDIMCQHDW1A8','Location',...
    1,'numpoints',37,'location',1,'outputformat','timetable');
geoscatter(mapData.Latitude,mapData.Longitude,'r');
geobasemap('satellite');

地図は位置をわかりやすく視覚化します。マップに温度と湿度のデータを含めると、視覚化が向上します。測定装置をある場所から別の場所に移動すると、プローブを地面に戻す前に不正確な水分測定が行われる可能性があります。2 列目の土壌水分データから値が 500 未満のデータを削除します。次に、可視性を高めるためにデータを再スケールします。湿気データをgoescatter関数に追加して円のサイズを決定し、温度データを追加して色を決定します。‘filled’オプションを使用して円を塗りつぶします。

mapData(mapData{:,2}<500,:)=[];
mapData.SoilMoisture=mapData.SoilMoisture-min(mapData.SoilMoisture)+1;
geoscatter(mapData.Latitude,mapData.Longitude,mapData.SoilMoisture,mapData.TemperatureF,'filled');
geobasemap('satellite');

建物の前の暖かい場所の微妙な影響により、スプリンクラーが終了したばかりの右側を除いて、乾燥した土壌を示すいくつかの小さな円が表示されます。

保存したビジュアライゼーションをチャネルのパブリック ビューとプライベート ビューに追加できます。「表示設定」で、「このビジュアライゼーションをチャネルに追加/編集」の横にあるプラス記号を使用して、チャネルリストを展開します。

ビジュアライゼーションを追加するチャネルに対応するチェック ボックスをオンにします。プライベート ビジュアライゼーションを追加するには、プライベート ビュー を選択します。URL を共有し、ビジュアライゼーションを「パブリック ビュー」に追加するには、「パブリック URL の作成」をクリックします。選択内容を更新するには、「表示設定を保存」をクリックします。