Heatmap-Overlay-Bild erstellen
Dieses Beispiel zeigt, wie Sie mithilfe von Messungen der Signalstärke eines drahtlosen Netzwerks von einer ESP32-Entwicklungsplatine eine Heatmap erstellen.
ThingSpeak ™ hilft Ihnen bei der Visualisierung Ihrer Daten, indem es Messungen über ein Bild oder eine Karte projiziert. Sie benötigen keine spezielle Hardware, aber ein Bild der Flächen- und Positionsmessungen. Weitere Informationen finden Sie unter Signalstärke des drahtlosen Netzwerks mit ESP32 in Arduino.
Erstellen Sie eine MATLAB ® Visualisierung
Wählen Sie Apps > MATLAB Visualizations. Wählen Sie dann Neu und wählen Sie Benutzerdefiniert (kein Startercode) und klicken Sie auf Erstellen.

Daten sammeln
Speichern Sie die X- und Y-Koordinaten und die Signalstärke in separaten Vektoren. Sie können die Daten zur Signalstärke von einem ThingSpeak-Kanal lesen. Ersetzen Sie CHANNEL_ID, READ_API_KEY und FIELD_NUMBER durch die entsprechenden Werte aus Ihrem Kanal. Sie finden Ihre Kanal-ID oben auf der Hauptseite Ihres Kanals. Sie finden den API-Schlüssel auf der Registerkarte API Keys Ihrer Kanalansicht.
% 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]';
Wandeln Sie die Messwerte des drahtlosen Signals in Prozent um.
strengthPercent = 2*(strength+100)/100;
Im Bild lesen
Speichern Sie die Abmessungen des Bildes. Ihr Bild muss im Web gehostet werden.
[I,m] = imread('https://www.mathworks.com/help/examples/thingspeak/win64/CreateHeatmapOverlayImageTSExample_02.png','png'); picture=ind2rgb(I,m); [height,width,depth] = size(picture);

Erstellen eines Modells
Interpolieren Sie die vorhandenen Punkte und füllen Sie das Overlay-Bild mit den interpolierten Ergebnissen. Stellen Sie dann die Transparenz für die Überlagerung ein.
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;
Bild und Farbbalken anzeigen
Zeigen Sie abschließend das Bild mit der Farbleiste an. Legen Sie die Farbgrenzen relativ zu den Datenwerten fest. Legen Sie AlphaData als die zuvor erstellte Transparenzmatrix fest.
imshow(picture,m); hold on h = imshow(OverlayImage); colormap(h.Parent, jet); colorbar(h.Parent); set(h,'AlphaData',alpha);

Das Endergebnis zeigt die Bereiche mit der höchsten und niedrigsten Signalstärke in Rot bzw. Blau an.
Siehe auch
MATLAB Analyse-App | MATLAB Visualisierungs-App | Signalstärke eines drahtlosen Netzwerks mit ESP32 mit Arduino IDE | Write Data | thingSpeakRead