Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Människor tenderar att vara nostalgiska om hobbyer som är viktiga för dem, till exempel vandring.
Men hur håller du minnet av en vandring?
Bilder är ett alternativ, ja. Denna enhet skulle tillåta ett annat alternativ att vara dataarkiv från resan. Personen skulle ha en graf som visar hur tiden vandringen tog jämfört med höjden de vandrade. Dessutom skulle det berätta maximalt, min och genomsnittligt tryck som de utsattes för under hela vandringens längd.
Detta använder Internet of Things Altitude and Pressure sensor för att övervaka och spela in data om vandringen. MATLAB används sedan för att analysera data för att mata ut nyckeltrycksavläsningar och en graf över tid kontra höjd.
Steg 1: Delar och material
Sparkfun ESP8266
Kompatibel höjd-/trycksensor
Trådar
USB till mikro-USB-kabel
ThingSpeak -konto
Arduino programvara
MATLAB -programvara och ThingSpeak -verktygslåda
Steg 2: Konfigurera programvara
Skapa ett konto
Skapa en "ny kanal"
Märk fält 1 som höjd och fält 2 som tryck
Spara kanal
Gå till "Delning" och välj "Dela kanalvy med alla"
Klistra in koden från [https://ef.engr.utk.edu/ef230-2017-08/projects/ard…] till Arduino
Ändra WiFi -nätverkets "ssid" och lösenord
Ändra "streamID" och "privateKey" för att matcha API -nycklar på ThingSpeak
Steg 3: Konfigurera hårdvara
Trådhårdvara enligt bilden ovan
Anslut USB till bärbar dator och ESP8266
Steg 4: Ansluter till din enhet
Leta efter och vänd den lilla, svarta strömbrytaren på ESP8266 för att slå på
Klicka på högerpilen i det övre vänstra hörnet av Arduino-programmet för att ladda upp koden (det kan ta några minuter)
Nu bör sensoravläsningarna mata ut data till ThingSpeak -webbplatsen, som visas grafiskt
Steg 5: MATLAB -kodning
Kopiera följande kod för funktionen "microcontroller_project" till MATLAB
Ändra fetstil för att passa den specifika ThingSpeak -kanalen
("90" i fetstil refererar till värdet på minuter som tas med i beräkningen från kanalen. Ändra detta manuellt beroende på hur länge kanalen har körts.)
Anropa funktionen genom att skriva "microcontroller_project" i kommandofönstret
Koda:
function [graph Pressures_Pa] = microcontroller_project () data = thingSpeakRead (364102, 'Fields', [1, 2], 'NumMinutes', 90, 'OutputFormat', 'table');
readChannelID = 364102;
readAPIKey = 'U9AJ9S68KVNYQKQV';
altitudefieldID = 1;
pressefieldID = 2;
writeChannelID = 364102;
writeAPIKey = '6H8W3UNH6HMT1TCZ';
för i = 1: max (storlek (data))
tidsstämpel = data (i, 1);
time_cell_array = table2cell (tidsstämpel);
time_string_array = datestr (time_cell_array {1, 1});
timme = str2num (time_string_array (13:14));
minut = str2num (time_string_array (16:17));
andra = str2num (time_string_array (19:20));
tid (i) = 3600.*timme+60.*minut+sekund;
slutet
alt = data (:, 2);
alt2 = table2cell (alt);
höjd = transponera (cell2mat (alt2));
p = data (:, 3);
tryck = cell2mat (tabell2cell (p));
tomt (tid, höjd)
title ('Vandringsleddata: Tid vs. höjd')
xlabel ('Tid (sek)')
ylabel ('Altitude (ft)')
str = datum; legend (str)
Pressure_Pa.max = max (tryck)
Pressures_Pa.min = min (tryck)
Pressures_Pa.avg = medelvärde (tryck)
slutet