תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
אנשים נוטים להיות נוסטלגיים לגבי תחביבים שחשובים להם, כמו טיולים.
אבל איך שומרים על זיכרון טיול?
תמונות הן אופציה, כן. מכשיר זה יאפשר אפשרות נוספת להיות ארכיון הנתונים מהטיול. לאדם יהיה גרף המשרטט את משך הזמן שהטיול לקח בהשוואה לגובה שהוא טייל. בנוסף, הוא יגיד להם את הלחץ המרבי, הדקות והממוצע שאליו נחשפו לאורך כל הטיול.
זה משתמש בחיישן הגובה ולחץ האינטרנט של הדברים כדי לפקח ולתעד נתונים על הטיול. לאחר מכן משתמשים ב- MATLAB לניתוח הנתונים לצורך פלט קריאות לחץ מפתח וגרף של זמן לעומת גובה.
שלב 1: חלקים וחומרים
Sparkfun ESP8266
חיישן גובה/לחץ תואם
חוטים
כבל USB למיקרו USB
חשבון ThingSpeak
תוכנת ארדואינו
תוכנת MATLAB וארגז כלים ThingSpeak
שלב 2: הגדרת תוכנה
צור חשבון
צור "ערוץ חדש"
סמן שדה 1 כגובה ושדה 2 כלחץ
שמור ערוץ
עבור אל "שיתוף" ובחר "שתף את תצוגת הערוץ עם כולם"
הדבק קוד מ [https://ef.engr.utk.edu/ef230-2017-08/projects/ard…] לתוך Arduino
שנה את "ssid" וסיסמת רשת ה- WiFi
שנה את "streamID" ו- "privateKey" כך שיתאימו למפתחות API ב- ThingSpeak
שלב 3: הגדרת חומרה
חומרת חוטים לפי התמונה למעלה
חבר USB למחשב נייד ו- ESP8266
שלב 4: התחברות למכשיר שלך
חפש והפעל את המתג השחור הקטן ב- ESP8266 להפעלה
לחץ על החץ הפונה ימינה בפינה השמאלית העליונה של תוכנית Arduino כדי להעלות קוד (זה עשוי להימשך מספר דקות)
כעת קריאות החיישן אמורות להוציא נתונים לאתר ThingSpeak, המיוצג באופן גרפי
שלב 5: קידוד MATLAB
העתק את הקוד הבא עבור הפונקציה "microcontroller_project" ל- MATLAB
שנה את הטקסט המודגש כך שיתאים לערוץ הספציפי של ThingSpeak
("90" באותיות מודגשות מתייחס לנתונים בשווי הדקות שנלקחו בחשבון מהערוץ. שנה זאת באופן ידני בהתאם לכמה זמן הערוץ פועל.)
התקשר לפונקציה על ידי הקלדת "microcontroller_project" בחלון הפקודה
קוד:
function [graph Pressures_Pa] = microcontroller_project () data = thingSpeakRead (364102, 'Fields', [1, 2], 'NumMinutes', 90, 'OutputFormat', 'table');
readChannelID = 364102;
readAPIKey = 'U9AJ9S68KVNYQKQV';
altitudefieldID = 1;
pressurefieldID = 2;
writeChannelID = 364102;
writeAPIKey = '6H8W3UNH6HMT1TCZ';
עבור i = 1: מקסימום (גודל (נתונים))
חותמת זמן = נתונים (i, 1);
time_cell_array = table2cell (חותמת זמן);
time_string_array = datestr (time_cell_array {1, 1});
שעה = str2num (time_string_array (13:14));
דקה = str2num (time_string_array (16:17));
השני = str2num (time_string_array (19:20));
זמן (i) = 3600.*שעה+60.*דקה+שנייה;
סוֹף
alt = data (:, 2);
alt2 = table2cell (alt);
altitude = transpose (cell2mat (alt2));
p = data (:, 3);
לחץ = cell2mat (table2cell (p));
עלילה (זמן, גובה)
title ('נתוני מסלולי טיול: זמן מול גובה')
xlabel ('זמן (שניות)')
ylabel ('גובה (רגל)')
str = תאריך; אגדה (str)
Pressure_Pa.max = max (לחץ)
Pressure_Pa.min = min (לחץ)
Pressures_Pa.avg = ממוצע (לחץ)
סוֹף