主要内容

创建热图叠加图像

这个例子展示了如何使用来自ESP32开发板的无线网络信号强度测量来创建热图。ThingSpeak™通过在图像或地图上投影测量数据,帮助您可视化数据。您不需要特殊的硬件,但您需要区域的图像和位置测量。有关更多信息,请参见Arduino中的ESP32无线网络信号强度

创建MATLAB®可视化

选择应用程序>MATLAB可视化.然后选择然后选择select自定义(无起始代码)并点击创建

收集数据

将X和Y坐标以及信号强度保存在单独的向量中。你可以从ThingSpeak频道读取信号强度的数据。取代CHANNEL_ID, READ_API_KEY,FIELD_NUMBER使用来自您的通道的适当值。您可以在频道主页的顶部找到您的频道ID。你可以在API密钥选项卡的通道视图。

%如果ThingSpeak通道的数据不可用,则手工输入数据。强度= [-90 -90 -90 -40 -20 -22.4 -45 -35 -41 -44 -55 -40 -75 -26]';从ThingSpeak通道读取数据。取消注释要从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]';

将无线信号测量转换为百分比。

strongpercent = 2*(强度+100)/100;

在图像中阅读

存储图像的尺寸。您的图像必须托管在网络上。

图片= imread(“//www.tianjin-qmedu.com/help/examples/thingspeak/win64/CreateHeatmapOverlayImageTSExample_02.png”);[高度,宽度,深度]=尺寸(图片);

创建模型

对已有的点进行插值,并用插值的结果填充覆盖图像。然后设置叠加的透明度。

OverlayImage = [];F = scatteredInterpolant(Y, X, strengthPercent,“线性”);I = 1:高度-1j = 1:width-1 OverlayImage(i,j) = F(i,j);结束结束alpha = (~isnan(OverlayImage))*0.6;

显示图像和颜色条

最后,用颜色条显示图像。将颜色限制设置为与数据值相关。将AlphaData设置为前面创建的透明度矩阵。

imshow(图);持有OverlayImage = imshow(OverlayImage);caxis汽车colormap (OverlayImage。父母,飞机);colorbar (OverlayImage。父);集(OverlayImage,“AlphaData”, alpha);

最后的结果分别用红色和蓝色表示信号强度最高和最低的区域。

另请参阅

||||