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
App MATLAB Analysis | MATLAB App visualizzazioni | Potenza del segnale della rete wireless con ESP32 con IDE Arduino | Write Data | thingSpeakRead