Erstellen Sie ein Heatmap-Overlay-Bild
Dieses Beispiel zeigt, wie Sie eine Heatmap mithilfe von Messungen der Signalstärke eines drahtlosen Netzwerks von einem ESP32-Entwicklungsboard erstellen.
ThingSpeak™ hilft Ihnen, Ihre Daten zu visualisieren, indem es Messungen über ein Bild oder eine Karte projiziert. Sie benötigen keine spezielle Hardware, benötigen aber ein Bild der Flächen- und Positionsmessungen. Weitere Informationen finden Sie Wireless Network Signal Strength with ESP32 in Arduino.
Erstellen Sie eine MATLAB® Visualisierung
Wählen Sie „Apps“ „>“ „MATLAB Visualisierungen“. 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 sowie 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. Du findest deine Kanal-ID oben auf der Hauptseite deines Kanals. Den API-Schlüssel finden Sie auf der Registerkarte „API-Schlüssel“ 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 Funksignals in Prozent um.
strengthPercent = 2*(strength+100)/100;
Lesen Sie das Bild ein
Speichern Sie die Abmessungen des Bildes. Ihr Bild muss im Internet 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 Sie ein Modell
Interpolieren Sie die vorhandenen Punkte und füllen Sie das Overlay-Bild mit den interpolierten Ergebnissen. Stellen Sie dann die Transparenz für das Overlay 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;
Zeigen Sie das Bild und die Farbleiste an
Zeigen Sie abschließend das Bild mit dem Farbbalken 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 in Rot bzw. Blau die Bereiche an, in denen die Signalstärke am höchsten und am niedrigsten ist.
Siehe auch
MATLAB Analyse-App | MATLAB Visualisierungen-App | Signalstärke des drahtlosen Netzwerks mit ESP32 mit Arduino IDE | Write Data | thingSpeakRead