תוכן עניינים:

תצוגת טמפרטורה ולחות ואיסוף נתונים עם Arduino ועיבוד: 13 שלבים (עם תמונות)
תצוגת טמפרטורה ולחות ואיסוף נתונים עם Arduino ועיבוד: 13 שלבים (עם תמונות)

וִידֵאוֹ: תצוגת טמפרטורה ולחות ואיסוף נתונים עם Arduino ועיבוד: 13 שלבים (עם תמונות)

וִידֵאוֹ: תצוגת טמפרטורה ולחות ואיסוף נתונים עם Arduino ועיבוד: 13 שלבים (עם תמונות)
וִידֵאוֹ: הדפסות למסך המחשב בסביבת ארדואינו 2024, נוֹבֶמבֶּר
Anonim
תצוגת טמפרטורה ולחות ואיסוף נתונים באמצעות Arduino ועיבוד
תצוגת טמפרטורה ולחות ואיסוף נתונים באמצעות Arduino ועיבוד

מבוא: זהו פרויקט המשתמש בלוח ארדואינו, חיישן (DHT11), מחשב Windows ותוכנת עיבוד (להורדה בחינם) להצגת נתוני טמפרטורה, לחות בצורה דיגיטלית וגרף עמודות, הצגת זמן ותאריך והפעלת ספירה טיימר למעלה במהלך התוכנית והקלט את כל הנתונים לתבנית CSV כאשר התוכנית סגורה.

הַשׁרָאָה:

ראשית אני חייב לומר שאני מתחיל לגמרי ולמדתי הרבה מהפרויקט הזה. לפיכך אני מנסה לכתוב את ההנחיה הזו שתוכל לקרוא ולהבין אותה על ידי מתחיל לגמרי.

ראיתי פרויקטים שונים של Arduino למדידת טמפרטורה ולחות אבל רציתי תוכנית ש:

1) טמפרטורה ולחות נמדדות

2) הציג את הנתונים הן בגרף (בחרתי בגרף עמודות) והן בצורה דיגיטלית

3) בעל פונקציית שעון

4) בעל טיימר "זמן הפעלה"

5) שומר נתונים אלה לתבנית קובץ.csv (excel).

קיבלתי השראה מתוכניות שיצרו Sowmith Mandadi, R-B ו- aaakash3, אבל אף אחת מהן לא הייתה בדיוק מה שרציתי. אז למדתי לכתוב קוד בסיסי ועשיתי מה שרציתי.

שלב 1: מה תצטרך:

מה שאתה תצטרך
מה שאתה תצטרך
מה שאתה תצטרך
מה שאתה תצטרך

חלקים וחומרים:*מחשב - השתמשתי במערכת הפעלה Windows 10 במחשב Windows

(אני בטוח שניתן להשתמש ב- Linux או ב- Mac, פשוט אין לי אף אחד ולכן לא אסקור כיצד להשתמש במערכות ההפעלה האלה)

*לוח Arduino - השתמשתי בלוח Arduino Uno, אבל כל לוח Arduino עם USB יעשה זאת

*כבל USB -כבל USB A/B -דומה לסוג הישן של "כבל מדפסת" (בדרך כלל מגיע עם לוח Arduino)

*חיישן טמפרטורה /לחות DHT 11- 4 עד 8 $ זול

(הערה: ישנן 2 גרסאות בהן השתמשתי בגרסת ה -3 פינים, בגרסת ה -4 פינים תידרש שימוש בלוח לחם ונגד 10K, ב -3 הפינים יש מעגל מודפס הכולל את הנגד 10K) ראה דיאגרמות פריצה בשלבים הבאים

*חוטי חיבור

חוטי דופונט (קצוות נקבה כפולים) אם מתחברים ל- 3 פינים DHT11 ללא קרש לחם

חוטי מגשר רגילים M/F (נקבה בקצה אחד נקבה אחת נקבה) וחוטי מגשר M/M (שני קצות זכריים) לחיבור 4 פינים DHT11 - ראה שלב 2 למידע נוסף

*Arduino IDE - תוכנית לכתיבת תוכניות ארדואינו (הנקראות סקיצות) free @

www.arduino.cc/en/Main/Software

*עיבוד - תוכנית לכתיבת סקיצות עיבוד חינם @

processing.org/download/

* קובץ "DHTLib" -קובץ ספרייה (זהו קובץ שנכנס לתוכנית Arduino IDE תחת התיקיה בשם "ספרייה" יהיה צורך להוסיף אותו למערכון של Arduino לפני שהארדואינו יוכל לקרוא את הנתונים מה- DHT11 -ראה שלב 5 להורדת קובץ והוראות

שלב 2: חבר את Arduino ל- DHT11

חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11
חבר את Arduino ל- DHT11

תחילה קבע איזה DHT11 יש לך

השתמשתי ב -3 הפינים מכיוון שכבר יש לו את הנגד הדרוש ל- 10K.

אם יש לך את 4 הפינים תזדקק לנגד 10K ולוח לחם

חבר DHT11 ללוח Arduino. תוכנית זו קוראת לחיבור סיכת האות DHT 11 לסיכה ארדואינו מספר 7, פין (+) מחובר ל- 5V בארדואינו ונג (-) ל- GND בארדואינו.

עיין בתרשימים ובתרשימי פריצה

שלב 3: הורד את Arduino IDE

הורד את Arduino IDE
הורד את Arduino IDE

הורד את Arduino IDE והתקן אותו במחשב

www.arduino.cc/en/Main/Software

שלב 4: חבר את Arduino למחשב

חבר את Arduino למחשב
חבר את Arduino למחשב

התקן קודם את ה- Arduino IDE שיש לו מנהלי התקנים לחיבור USB Arduino.

חבר את Arduino למחשב באמצעות USB.

המתן עד שהמחשב יזהה את לוח ה- Arduino ויתקין מנהלי התקנים כלשהם.

פתח את תוכנית IDE ובדוק אם קיים חיבור טורי.

אם לוח Arduino אינו מופיע ביציאה> כלים (עיגול אדום), סגור את IDE ופתח מחדש.

* חשוב* לאחר ש- IDE פתוח ולוח Arduino מחובר באמצעות USB. לוח Arduino חייב להיות מחובר ליציאה הטורקית הנכונה. במחשבי Windows זה נקרא יציאת COM. לשם כך ב- IDE עבור אל כלים> יציאה:> יציאות טוריות. כפי שניתן לראות בתרשים היציאה הסדרתית (עיגול אדום) חייבת להתאים ליציאה המופיעה בפינה הימנית התחתונה של תוכנית IDE (עיגול צהוב).

שלב 5: טען את הספרייה

טען את הספרייה
טען את הספרייה
טען את הספרייה
טען את הספרייה
טען את הספרייה
טען את הספרייה
טען את הספרייה
טען את הספרייה

טען את הספרייה עבור DHT11. זה היה מבלבל אותי בהתחלה אבל זה די פשוט.

הורד את הקובץ בשם "DHTLib" ופתח את הגריסה. העתק את קובץ "DHTLib" שלא רוכסן.

ניתן למצוא הפניה לספרייה זו בכתובת:

playground.arduino.cc/Main/DHTLib

(זה נכתב על ידי רוב טילארט על סמך עבודות של אחרים)

מצא את תיקיית ה- Arduino במחשב שלך ופתח אותה. (זה יהיה בכל מקום שבו הורדת את IDE והתקנת אותו במחשב)

ראה תרשים

מצא את הקובץ בשם "ספריות" ופתח אותו ולאחר מכן הדבק את תיקיית "DHTLib" בקובץ "ספריות". סגור אותו ולאחר מכן הפעל מחדש את IDE.

ראה תרשים

לאחר ש- IDE ייפתח מחדש תוכל לבדוק אם הותקנה ספריית DHT. סקיצה> כלול ספרייה.

ראה תרשים

הערה לחיצה על DHTLib בכרטיסייה "כלול ספרייה" תמקם את הספרייה בקוד הארדואינו בשם "#include dht.h".

אינך צריך לעשות זאת מכיוון שהוא כבר נמצא בקוד שתוריד בשלב הבא.

שלב 6: קבל את קוד הארדואינו

קבל את קוד הארדואינו
קבל את קוד הארדואינו

הורד את הקובץ Temp_Hum_Instructable.zip ופרק. פתח את Temp_Hum_Instructable.ino עם ה- Arduino IDE.

לחלופין, הסתכל על הקוד הבא והעתק והדבק או הקלד בדיוק ב- Arduino IDE:

#לִכלוֹל

dht DHT; #define DHT11PIN 7 // מגדיר סיכה 7 להגדרת חלל חיבור אותות DHT11 () {Serial.begin (9600); // פותח סדרה} לולאת חלל () {int chk = DHT.read11 (DHT11PIN); // קורא DHT11 Serial.print (DHT.temperature, 0); // מדפיס טמפ 'בסידורי Serial.print (","); // מדפיס פסיק בסידורי Serial.print (DHT.humidity, 0); // מדפיס לחות ב- Serial.println סדרתי (); // עיכוב החזרת כרכרה (2000); // המתן 2 שניות}

כשתסיים זה אמור להיראות כמו התרשים למעלה

שלב 7: טען את הקוד ל- Arduino

טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino
טען את הקוד ל- Arduino

ראשית שמור את הסקיצה במיקום ועם שם שתזכור, דוגמה: Temp_Hum.

לאחר מכן עליך לטעון את הסקיצה על לוח הארדואינו על ידי לחיצה על לחצן החץ המצביע ימינה (העלה).

ראה תרשים

זה ייקח כמה שניות; תראה סרגל התקדמות בצד ימין למטה.

לאחר מכן תראה: בוצעה העלאת הודעה בפינה השמאלית התחתונה וטקסט לבן בתחתית ה- IDE המספר לך על זיכרון

ראה תרשים

אם אתה מקבל קוד שגיאה (טקסט כתום בתחתית ה- IDE) הוא אמור להיות אחד מהבאים

  1. ספריית "DHTlib" לא הועתקה כהלכה
  2. יציאת ה- COM אינה מוגדרת כהלכה
  3. החיישן לא היה מחובר כהלכה
  4. הקוד לא נטען ב- IDE כראוי ניתן לגלול את הטקסט הכתום והוא ייתן רמז למה לא בסדר. תחזור ובדוק שזו כנראה טעות פשוטה.

לאחר שתעשה זאת, בדוק מקרוב את לוח הארדואינו שלך. כל שניות הנורית הקטנה שליד האותיות "TX" תהבהב. זהו Arduino שולח מידע חזרה למחשב. כדי לבדוק זאת לחץ על סמל זכוכית המגדלת הקטנה בפינה הימנית העליונה של ה- IDE.

ראה תרשים

פעולה זו תפתח את הצג הסדרתי ותציג נתוני טמפרטורה ולחות המופרדים בפסיק. תבחין כי נתוני הטמפרטורה מופיעים ב צלזיוס. זה בסדר, אנו נעבור לפרנהייט מאוחר יותר (או לא אם בחרת).

ראה תרשים

לאחר מכן סגור את הצג הטורי ולאחר מכן סגור את ה- IDE. (אכן זכרת לשמור אותו, לא?). עכשיו תסתכל שוב על לוח ה- Arduino (אל תנתק אותו מה- USB שממנו הוא מקבל חשמל ושולח נתונים ליציאה הטורית במחשב). האם הוא עדיין מהבהב? כן, מעולה. לאחר הטעינה של התוכנית על הארדואינו היא תפעל כל עוד יש לה כוח.

הערה לגבי קוד: אם אתה מסתכל על קוד הארדואינו שמתחיל ב"לולאת חלל (); ". חמש שורות הקוד הבאות אומרות לארדואינו לקרוא נתונים מה- DHT ולהדפיס אותם לאוטובוס הטורי המופרד בפסיקה. השורה הבאה "עיכוב (2000);" אומר לארדואינו לחכות 2 שניות (2000 אלפיות השנייה) כך שהנתונים מתקבלים כל 2 שניות. ואז הוא חוזר ל "לולאת void ();" - פקודה שאומרת לארדואינו לעשות זאת שוב. שינוי הערך בשורת העיכוב ישנה את התדירות שבה הנתונים מתקבלים. דוגמה: שינוי ל- (600000) ישתנה זה ל 10 דקות (600000 מילי שניות = 10 דקות). קבלת נתונים כל 2 שניות בסופו של דבר תהיה הרבה נתונים, אז עכשיו אתה יודע לשנות את התדירות של קריאת הנתונים. רק זכור שאם תשנה את הערך מאוחר יותר צריך להעלות את התוכנית החדשה.

בסדר לשבת ולנשום אתה יותר מחצי הדרך לשם. כן !!

שלב 8: הורד והתקן עיבוד

הורד והתקן עיבוד
הורד והתקן עיבוד
הורד והתקן עיבוד
הורד והתקן עיבוד

processing.org/download/

די פשוט קדימה בחר את התוכנית המתאימה למחשב שלך עבור Windows 64bit לעומת 32 bit. אם אינך יודע, פתח את לוח הבקרה במחשב (תצוגת אייקונים לא תצוגת קטגוריות) ועבור למערכת היא תופיע שם.

ראה תרשים

הורד ולאחר מכן התקן את התוכנית.

בפעם הראשונה שתפתח ותפעיל עיבוד כנראה תקבל הודעת אבטחה של Java. לחץ על "אפשר" לרשתות פרטיות. Java היא שפת המחשב בה משתמשים עיבוד (ו- Arduino IDE). מעניין שמעולם לא הייתה לי הודעת האבטחה עם Arduino IDE, רק עיבוד.

שלב 9: עיבוד קוד

קוד עיבוד
קוד עיבוד

בסדר עכשיו עבור קוד העיבוד.

זה היה החלק המאתגר ביותר עבורי, אך גם ההזדמנות הגדולה ביותר ללמידה. בעוד הקוד Arduino היה 20 שורות או יותר הקוד הזה כולל +/- 270 שורות בקוד הראשי ועוד 70 + בשיעורים.

עכשיו הדבר הראשון שאתה צריך לשאול הוא "מה זה שיעורים?". שאלה טובה. הכוונה היא לתכנות מונחה עצמים. בקיצור, יש הרבה דברים שקורים בקוד הראשי: הגדרת גודל וצבע התצוגה, שעון, טיימר, קוד להצגת מיקום הסמן, קוד לשמירת נתונים בקובץ.csv וכמה שורות העוסקים בקוד המציג את גרפי העמודים. בעוד שב- IDE של Arduino היה כל הקוד בדף אחד, קוד עיבוד זה כולל שלוש כרטיסיות. הראשון הוא הקוד הראשי והשניים הבאים הם הקוד המציג את תרשימי העמודים. (קוד זה למעשה מאוחסן בשלושה קבצים נפרדים בתוך תיקיית קוד העיבוד.) הכרטיסיות הנפרדות נקראות "מחלקות" ומוגדרות בשורות 48 ו -56 ולאחר מכן מוצגות בשורות 179-182 של הקוד הראשי. האנשים שכתבו תוכנית עיבוד קוראים לזה תכנות מונחה עצמים. (ראה: https://processing.org/tutorials/objects/ לתיאור קצר).

בעצם מה שהמחלקות (Recta1, Recta2) בקוד זה עושות הוא ליצור מלבנים שזזים למעלה ולמטה על סמך הנתונים המתקבלים מה- DHT11 באמצעות סדרות. תחשוב על מדחום מיושן ככל שכספית עולה ככל שהוא חם יותר, אבל זה נעשה עם נתונים ולא כספית. בפועל הכיתות יוצרות ארבעה מלבנים, שני מלבנים סטטיים המייצגים את הרקע של המדחום ושני מלבנים דינמיים המגיבים לנתונים ונעים למעלה ולמטה. בנוסף להזיז את המלבנים, הקוד משנה את צבע המלבן הדינאמי ואת צבע התצוגה הדיגיטלית של טמפ 'ולחות על סמך הנתונים המתקבלים בסדרה.

שלב 10: עיבוד קבצי קוד

רק כמה יסודות בנושא עיבוד קוד:

אני ממליץ בחום לקרוא Make: Getting Started withProcessing מאת קייסי ריס ובן פריי מייסדי עיבוד.

processing.org/books/#reasfry2

לא אנסה להסביר את כל ההיבטים של עיבוד או כתיבת קוד לעיבוד. כפי שאמרתי קודם, אני מתחיל ואני חושב שיש הרבה יותר אנשים ללמוד מהם. עם זאת אני מבין את הקוד שכתבתי (ניסוי וטעייה הם מורים טובים).

1. ראשית יש לכלול ספריות (ממש כמו בארדואינו) ולהצהיר על משתנים (שורות 1-25)

2. לאחר מכן הגדר את לוח התצוגה (שורות 27-63)

3. הפעל חלק חוזר מהקוד- מה שאני מתכוון הוא שחלק זה של הקוד יחזור כל עוד התוכנית פועלת. אתה תזכור ב- Arduino "לולאת חלל ();" (שלב 6). בעיבוד זה כעת "צייר חלל ();" (קווים 65-184)

4. הבא הוא קבלת נתונים מהיציאה הטורית והקצאתם למשתנים (int, float, String)

int-

לָצוּף-

חוּט-

(קווים 185-245)

4. סוף סוף דרך לסגור את התוכנית ולשמור את הנתונים (שורות 246-271)

בסדר: הורד את הקובץ Temp_Hum_F_3_2 (לפרנהייט)

או Temp_Hum_C_3_1 (עבור צלזיוס)

ולפתוח את הקובץ. פתוח עם עיבוד.

שלב 11: גופן בעיבוד

פונט בעיבוד
פונט בעיבוד

חשוב: אני מפנה את תשומת ליבך לשורות 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // טוען גופן המאוחסן בנתונים

תיקיה 37 textFont (פונט);

ספריית גופנים זו "SourceCodePro-Bold-48.vlw" כלולה בהורדות קבצי העיבוד ואין צורך לשנותה כדי שתתפקד.

אולם כדי לשנות את הגופן למשהו אחר, יהיה עליך לטעון את הגופן החדש לתוך סקיצת העיבוד ולהחליף את "SourceCodePro-Bold-48.vlw" בגופן החדש.

. למרבה המזל העיבוד הפך את החלק הראשון לקל מאוד.

פתח תחילה את הסקיצה ולאחר מכן לחץ על:

כלים> צור גופן

זה מעלה חלון

ראה תרשים

גלול מטה לגופן החדש שאתה רוצה, לחץ עליו ולאחר מכן לחץ על אישור. הגופן נטען כעת בתיקיית הסקיצות.

לאחר מכן החלף את הטקסט "SourceCodePro-Bold-48.vlw" בשם המדויק של הגופן החדש (כולל פורמט קובץ.vlw)

אם זה לא נעשה הגופן החדש לא ייטען בקוד והקוד ייתן שגיאות (בדיוק כמו שגיאות בארדואינו- בתיבה השחורה בתחתית התוכנית).

שלב 12: סיום

מסיים
מסיים
מסיים
מסיים
מסיים
מסיים
מסיים
מסיים

כדי להפעיל את תוכנית העיבוד לחץ על החץ, ייתכן שתקבל אזהרת ג'אווה, לחץ: אפשר גישה.

ראה תרשים

בסדר, התוכנית עבדה? אם כן, תקבל תצוגה כמו בתרשים.

(לא? ראה פתרון בעיות בשלב הבא)

כן? כעת נסה להחזיק את DHT11 בכף ידך הסגורה או למקם מתחת לזרם האוויר החם של מייבש שיער. המספרים צריכים להשתנות. כן? גדול. זה אומר שהכל עובד טוב.

כדי לסגור את התוכנית ולשמור נתונים, לחץ על התיבה שכתוב עליה "לחץ כאן כדי לסגור ולשמור נתונים".

כעת כדי למצוא את הנתונים השמורים, עבור אל תיקיית העיבוד Temp_Hum_F_3_1 או Temp_Hum_C_3_1 (אתה אמור להיות מסוגל למצוא זאת בעצמך עד עכשיו) פתח אותם ומצא את תיקיית הנתונים. פתח את זה ותראה קובץ.csv על שם התאריך והשעה שסגרת את התוכנית (דוגמא 1-10-18--22-30-16.csv פירושו 10 בינואר 2018 22:30:16). פתח את זה עם Excel (או המקבילה של גיליון האלקטרוני של Open Office). אתה אמור לראות משהו כמו התרשים. עמודות לתאריך, שעה, זמן ריצה, טמפ 'ולחות עם נתונים. כעת תוכל לשרטט את הנתונים באקסל או מה שאתה רוצה לעשות איתם. (הערה: אם אתה מסתכל על הזנת הנתונים הראשונה נתוני הטמפ 'והלחות אינם נכונים, זה נורמלי וזו רק שגיאה כשהתוכנית מתחילה לראשונה)

בסדר כן !!!!!

עשית זאת

אם יש לך שאלות אנא פרסם ואעשה כמיטב יכולתי להגיב ולעזור.

תודה שנשארת עם זה ובהצלחה. אני מקווה שזו רק התחלה ….

הבא בשבילי בלוטוס ואולי אנדרואיד….

שלב 13: פתרון בעיות

פתרון תקלות
פתרון תקלות
פתרון תקלות
פתרון תקלות

בעיות בארדואינו

אם אתה מקבל קוד שגיאה (טקסט כתום בתחתית ה- IDE) הוא אמור להיות אחד מהבאים ספריית "DHTlib" לא הועתקה כהלכה

יציאת ה- COM אינה מוגדרת כהלכה

החיישן לא היה מחובר כהלכה

הקוד לא נטען ב- IDE כראוי

אם נראה שהכל Arduino בסדר, זכור לפתוח את הצג הסידורי ולראות אם מוצגים נתונים

אם אתה רואה נתונים נכונים זה אומר שהצד של Arduino עובד כולו- זכור סגור את הצג הסידורי לפני תחילת העיבוד, אם הצג הטריאלי פתוח העיבוד לא יכול לקרוא את הנתונים.

בעיות עיבוד:

אלה יוצגו בחלק התחתון של תוכנית העיבוד.

אם אתה מקבל שגיאה בתיאור "גופן" חזור לשלב 11 וטען את הגופן כמתואר.

אם אתה מקבל שגיאה שנראית כך: שגיאה, השבתת serialEvent () עבור COM4 null- פשוט הפעל מחדש את סקיצת העיבוד על ידי לחיצה על החץ כמו בשלב 12

אם אתה מקבל שגיאה שאומרת: שגיאה בפתיחת יציאה טורית- נסה לשנות את הקווים 32-34 למשהו כמו המקום בו "COM4" תואם את יציאת ה- COM בשרטוט Arduino שלך

myPort = newSerial (זה, "COM4", 9600); // יציאת myPort.bufferUntil ('\ n') // המתן עד שלסדרה יש נתונים

מוּמלָץ: