このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
ヒートマップのオーバーレイ イメージの作成
この例では、ESP32 開発ボードからのワイヤレス ネットワーク信号強度測定値を使用してヒートマップを作成する方法を示します。
ThingSpeak™ は、測定値を画像または地図上に投影することでデータを視覚化するのに役立ちます。特別なハードウェアは必要ありませんが、領域の画像と位置の測定が必要です。詳細については、Wireless Network Signal Strength with ESP32 in Arduinoを参照してください。
MATLAB®ビジュアライゼーションの作成
アプリ > MATLAB Visualizations を選択します。次に、新規を選択し、カスタム (スターター コードなし)を選択して、作成をクリックします。
データの収集
X 座標と Y 座標、および信号強度を別々のベクトルに保存します。ThingSpeakチャネルから信号強度のデータを読み取ることができます。CHANNEL_ID, READ_API_KEY
とFIELD_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);
最終結果は、信号強度が最も高い領域を赤で、信号強度が最も低い領域を青で示します。
参考
MATLAB Analysis アプリ | MATLAB Visualizations アプリ | ESP32とArduino IDEを使用したワイヤレスネットワーク信号強度 | Write Data | thingSpeakRead