Main Content

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

ヒートマップのオーバーレイ イメージの作成

この例では、ESP32 開発ボードからのワイヤレス ネットワーク信号強度測定値を使用してヒートマップを作成する方法を示します。

ThingSpeak™ は、測定値を画像または地図上に投影することでデータを視覚化するのに役立ちます。特別なハードウェアは必要ありませんが、領域の画像と位置の測定が必要です。詳細については、 「Wireless Network Signal Strength with ESP32 in Arduino」を参照してください。

MATLAB®ビジュアライゼーションの作成

«アプリ» «>» «MATLAB Visualizations» を選択します。次に、«新規»を選択し、«カスタム (スターター コードなし)»を選択して、«作成»をクリックします。

データを収集します

X 座標と Y 座標、および信号強度を別々のベクトルに保存します。ThingSpeakチャネルから信号強度のデータを読み取ることができます。CHANNEL_ID, READ_API_KEYFIELD_NUMBER をチャネルの適切な値に置き換えます。チャネルID は、チャネルのメイン ページの上部で確認できます。API キーは、チャネルビューの «API キー» タブで見つけることができます。

% Enter data by hand if data from a ThingSpeak channel is not available.
strength = [-90 -90 -90 -90 -40 -20 -22.4 -45 -35 -41 -44 -55 -40 -75 -26]';
% Read data from a ThingSpeak channel.
% Uncomment the next line to read from ThingSpeak.
% strength = thingSpeakRead(CHANNEL_ID, ReadKey',READ_API_KEY,'numPoints',15,'fields',FIELD_NUMBER');
X = [10 550 550 10 50 234 393 129 237 328 448 225 344 457 477]';
Y = [10 10 410 410 293 210 202 132 130 142 141 272 268 274 200]';

ワイヤレス信号の測定値をパーセンテージに変換します。

strengthPercent = 2*(strength+100)/100;

画像を読み取る

画像の寸法を保存します。イメージは Web 上でホストしなければなりません。

[I,m] = imread('https://www.mathworks.com/help/examples/thingspeak/win64/CreateHeatmapOverlayImageTSExample_02.png','png');
picture=ind2rgb(I,m); 
[height,width,depth] = size(picture); 

モデルを作成する

既存の点を補間し、補間結果でオーバーレイ イメージを塗りつぶします。次に、オーバーレイの透明度を設定します。

OverlayImage=[];
F = scatteredInterpolant(Y, X, strengthPercent,'linear');
for i = 1:height-1
   for j = 1:width-1
          OverlayImage(i,j) = F(i,j);
   end
end
alpha = (~isnan(OverlayImage))*0.4;

画像とカラーバーを表示する

最後に、カラーバーで画像を表示します。データ値を基準にして色の制限を設定します。AlphaData を、前に作成した透明度マトリックスに設定します。

imshow(picture,m);
hold on

h = imshow(OverlayImage);

colormap(h.Parent, jet);
colorbar(h.Parent);
set(h,'AlphaData',alpha); 

最終結果は、信号強度が最も高い領域を赤で、信号強度が最も低い領域を青で示します。

参考

| | | |