Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

Crea immagine sovrapposta mappa termica

Questo esempio mostra come creare una mappa termica utilizzando le misurazioni della potenza del segnale della rete wireless da una scheda di sviluppo ESP32.

ThingSpeak™ ti aiuta a visualizzare i tuoi dati proiettando le misurazioni su un'immagine o una mappa. Non è necessario hardware particolare, ma è necessaria un'immagine dell'area e misurazioni della posizione. Per ulteriori informazioni, vedere Wireless Network Signal Strength with ESP32 in Arduino.

Crea una visualizzazione MATLAB®

Selezionare App > MATLAB Visualizations. Quindi seleziona Nuovo e seleziona Personalizzato (nessun codice iniziale) e fai clic su Crea.

Raccogliere dati

Salva le coordinate X e Y e la potenza del segnale in vettori separati. È possibile leggere i dati relativi alla potenza del segnale da un canale ThingSpeak . Sostituisci CHANNEL_ID, READ_API_KEY e FIELD_NUMBER con i valori appropriati del tuo canale. Puoi trovare l'ID del tuo canale nella parte superiore della pagina principale del tuo canale. Puoi trovare la chiave API nella scheda Chiavi API della visualizzazione del tuo canale.

% 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]';

Converti le misurazioni del segnale wireless in percentuali.

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

Leggi nell'immagine

Memorizzare le dimensioni dell'immagine. La tua immagine deve essere ospitata sul 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); 

Crea un modello

Interpolare i punti esistenti e riempire l'immagine sovrapposta con i risultati interpolati. Quindi imposta la trasparenza per la sovrapposizione.

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;

Mostra l'immagine e la barra dei colori

Infine, mostra l'immagine con la barra dei colori. Imposta i limiti di colore in modo che siano relativi ai valori dei dati. Imposta AlphaData come matrice di trasparenza creata in precedenza.

imshow(picture,m);
hold on

h = imshow(OverlayImage);

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

Il risultato finale indica le aree in cui la potenza del segnale è massima e minima rispettivamente in rosso e blu.

Vedi anche

| | | |