תוכן עניינים:
- אספקה
- שלב 1: חומרה
- שלב 2: הגדרת תוכנת OS Raspberry Pi
- שלב 3: הגדר את נתוני הנתונים כדי לאפשר גישה מרחוק
- שלב 4: בדוק את החיישנים
- שלב 5: חומת אש של UFW
- שלב 6: S סיום נתוני הטמפרטורה כ- JSON
- שלב 7: שלח נתונים משני החיישנים
- שלב 8: התחלה אוטומטית
- שלב 9: הצג את הנתונים ב- Freeboard.io (1)
- שלב 10: הצג את הנתונים ב- Freeboard.io (2)
- שלב 11: בנה את הפרויקט לתוך קופסה
- שלב 12: סיים
וִידֵאוֹ: שרת נתונים בטמפרטורה כפולה של IOT: 12 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
זהו הניסיון הראשון שלי בכתיבת ספר הוראה ולכן אנא הקפידו עלי! אם אתה חושב שזה לא נורא, אנא הצביע עבורי בתחרות המחברים בפעם הראשונה.
זהו פרויקט הנעילה שלי לניטור מרחוק של 2 טמפרטורות בחממה, אחת בגובה הרצפה ואחת ממש מתחת לגג. למרות שהשתמשתי בעבר ב- Raspberry Pi (RPi), הפרויקט הזה כלל מספר אלמנטים שלא השתמשתי בהם ובדרך מצאתי מספר הדרכות שהיו לא מעודכנות או שפשוט שגויות. זהו אוסף הידע שלי להכין צג טמפרטורה מרחוק כפול שעובד מחיישני טמפרטורה דיגיטליים של Pi Zero & 2 DS18B20+ One Wire Digital Temperature שנרכשו בדרך.
דברים שלמדתי עליהם:
- הפיכת נתונים לזמינים ממכשיר כחלק מאינטרנט הדברים (IoT)
- ממשק חד-חוטי עם 2 מכשירים
- נתונים
- נתוני JSON
- הגדרת חומת האש UFW
- שימוש ב- Freeboard.io להצגת הנתונים
- הגדרת ה- RPi להפעלה אוטומטית של התוכנית
ישנן כמויות אדירות של נתונים שניתן למצוא בחיפוש פשוט בכל הנושאים הללו, אך מה שלא כל כך ברור הוא כיצד לשלב את כל האלמנטים הנפרדים הללו.
אספקה
- תזדקק ל- Raspberry Pi (עם צג, עכבר ומקלדת להגדרה אך לא בעת הפעלת הפרויקט המוגמר)
- חיבור אינטרנט עובד.
- PSU עם מחבר מיקרו USB
- 2 מחיישני הטמפרטורה הדיגיטליים DS18B20+ Wire One Wire. מצאתי שאמזון היא הזולה ביותר
- נגד 4K7 אוהם או שהשתמשתי ב 2 נגדים של 10K אוהם.
- קרש לחם קטן וכמה חוטים זכר/נקבה לבדיקה על הספסל
- פיסת לוח קטנה להרכבה הסופית
- כלים פשוטים להלחמה ולהפשטת חוטים.
- קופסת פלסטיק קטנה להכנת העיצוב המוגמר
שלב 1: חומרה
כבר היה לי Raspberry Pi Zero W (עם אלחוטי) אבל אני בטוח שהפרויקט הפשוט הזה יפעל מצוין על כל אחד מה- RPI. בארגז הביטים האלקטרוניים המוזרים בבית המלאכה שלי היה כל השאר (קרש לחם, חוט, PSU וכו ') וכל מה שהייתי צריך לקנות זה שני חיישני 2 x DS18B20 מאמזון. אלו הם שבבי ה- DS18B20 הרגילים שפשוט מותקנים בנוחות בתוך בית עמיד למים וכבל 3 מ '. יש 3 חוטים מהכבל:
- אדום - מתח - התחבר לפין 3.3v 1
- שחור - החזר - חבר לסיכה הארקה 6
- צהוב - נתונים - התחבר לפין GPIO4 7
החיישנים משתמשים בממשק 1-Wire והיה קל מאוד להתחבר ולקבל מהם נתונים. ישנם מספר דפים באינטרנט עם פרטים לחיבור מכשיר אחד אך מעט מאוד לחיבור 2 (או יותר).
לבדיקה על הספסל, המעגל הורכב באמצעות לוח לחם. ההדרכות שמצאתי הצהירו להשתמש בנגד 4K7 כדי להטות את קו הנתונים, אך לא הצלחתי למצוא אחת ולכן השתמשתי במקביל 2* 10K וזה עבד בסדר גמור. יש הרבה משאבים באינטרנט לשימוש בלוח לחם להרכבת מעגלי RPi ולכן לא אחזור עליהם כאן.
תרשים שנוצר באמצעות תרשים מעגל
שלב 2: הגדרת תוכנת OS Raspberry Pi
מכיוון שהשתמשתי ב- RPi זה בעבר, החלטתי להתחיל בהתקנה נקייה של מערכת ההפעלה, עיצבתי מחדש את כרטיס ה- SD והתקנתי גרסה נקייה של NOOBS. לאחר מכן התקנתי את גרסת שולחן העבודה המלאה של Raspian (האפשרות העליונה) מכיוון שתתקין גם PIP & GIT שגירסת הלייט לא עושה. למרות שלא הייתי צריך את ממשק המשתמש הגרפי (GUI) לפרויקט, זו דרך קלה להתקין את כל האפשרויות ועם כרטיס SD בנפח 16GB לא היה מחסור במקום.
הגדרתי גישה ל- WI-FI ואז הפעלתי את ההתקנה המלאה ולאחר מכן את האשף עם עדכונים ושדרוגים וכו '. באמצעות ה- GUI, הגדרתי את ה- RPI לפי הצורך רק בגלל שהשימוש ב- GUI פשוט יותר מממשק שורת הפקודה (CLI). נכנסתי לחלון התצורה מהתפריט ואז:
- בכרטיסיית המערכת, שיניתי את הסיסמה, הגדרתי אתחול ל- CLI והתחלתי לא מסומן כניסה אוטומטית
- בכרטיסיה ממשקים, הפעלתי חוט אחד
- לחץ על אישור והפעלתי מחדש
אם אתה צריך לחזור ל- GUI בכל עת פשוט הקלד startx ב- CLI
startx
שלב 3: הגדר את נתוני הנתונים כדי לאפשר גישה מרחוק
מצאתי ערך בלוג מועיל מאוד באתר Dataplicity בכתובת https://blog.dataplicity.com/how-to-build-a-raspb… והשתמשתי בכמה חלקים מזה. חלק 3 של הבלוג מתאר את הגדרת Dataplicity לגישה מרחוק ל- RPi. מעולם לא השתמשתי ב- Dataplicity בעבר, אבל אני חייב לומר, אני ממליץ עליו ביסודיות ככלי פשוט מאוד לגישה מרחוק. למרות שצילומי המסך (בבלוג למעלה) מעט מיושנים, העיקרון בסדר.
במחשב האישי שלך, עבור אל Dataplicity.com וצור חשבון (תוכל להשתמש בדפדפן ב- GUI, אך לאט ב- RPi Zero). לאחר מכן לחץ על כפתור "הוסף מכשיר חדש" ושורת קוד מוצגת בחלון המוקפץ. לאחר מכן עבור אל CLI ב- RPi והקלד את שורת הטקסט. אם הכל בסדר, הלוגו של Dataplicity יוצג ותוכנית ההתקנה תפעל.
במחשב האישי שלך, המכשיר החדש אמור להופיע כעת באתר Dataplicity. לחץ על המכשיר ותראה מסך מסוף עבור ה- RPi שלך.
יש לשים לב לכמה דברים:
- כדי להיכנס, הקלד "su pi" (לגישה למשתמש -על) ותתבקש להזין את הסיסמה (כפי שהוגדר קודם לכן)
- עליך להפעיל את Wormhole (לשימוש מאוחר יותר)
- תזדקק לכתובת Wormhole להצגת הנתונים מאוחר יותר (לחץ לחיצה ימנית להעתיק בעת הצורך)
אתה יכול להשתמש בגישה מרחוק זו לכל השלבים הבאים והרבה יותר קל להעתיק נתונים, תוכניות וכו 'מאשר ישירות ב- RPi.
שלב 4: בדוק את החיישנים
כעת תוכל להשתמש ב Dataplicity גישה מרחוק ל- RPI עבור כל הסעיפים הבאים.
אם עכשיו הכל מחובר תקין, אתה אמור להיות מסוגל לראות את הטמפרטורות שחוזרות מה- DS18B20. עבדתי דרך הדרכת Pi Hut אבל רוב זה לא היה נדרש. אם אתה רוצה את הפרטים המלאים, אתה יכול למצוא אותם כאן:
החלקים החשובים הם לעבור לספריית המכשירים ולוודא שמוצגים 2 חיישנים שונים.
cd/sys/bus/w1/התקנים/
זה אמור להראות 2 מכשירים המתחילים ב- 28 ובסטר האוטובוס. תוכניות שלי:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
2 מספרי הזהות האלה חשובים ויהיה צורך בהם מאוחר יותר! לאחר מכן שנה לאחד ממדריכי החיישנים:
תקליטור 28-011453ebfdaa
(למשל) ולאחר מכן לקרוא את הערך מהחיישן
חתול w1_slave
אמורות להיות מוצגות 2 שורות טקסט:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d YES
53 01 4b 46 7f ff 0c 10 2d t = 21187
ה- YES מראה שהחיישן קורא נכון וה- 21187 מציג טמפרטורה בצלזיוס של 21.187 (מחלקים ב- 1000) חזור על פעולה זו כדי לבדוק את החיישן השני. אם שניהם קוראים בסדר אז נוכל להמשיך לקרוא את הנתונים עם Python3.
העתקתי והתאמתי את הקוד הבא שמצאתי באינטרנט אבל אני לא זוכר מאיפה. אם זה נראה כמו הקוד שלך, אז אני מתנצל מכיוון שלא נועדה שום גניבה; אנא יידע אותי ואני אכיר בעבודתך.
צור ספרייה בשם פרויקטים ושנה לספרייה זו.
mkdir ~/פרויקטים
cd ~/פרויקטים
בספרייה זו, השתמש בעורך הטקסט (ננו) כדי ליצור ולערוך קובץ בשם thermo-test.py
סודו ננו thermo-test.py
זה היה צריך לפתוח את העורך וכאשר אתה משתמש ב- Dataplicity, אתה יכול פשוט להעתיק את הקוד הבא למטה (thermo-test.py) ולהדביק אותו בעורך. יהיה עליך לשנות את 2 שמות המכשירים (החל מה -28 עד…) לאלה שצוין לעיל. כאשר הכל נראה תקין, הקש ctrl+X לסיום, Y כדי לשמור ולחזור להשתמש בשם הקיים. אם אתה מעדיף להשתמש ב- GUI אז Thonny יעשה את אותו הדבר.
להפעלת תוכנית הבדיקה:
sudo python3 thermo-test.py
בסך הכל, זה צריך לבצע את הקובץ באמצעות פייתון 3 ולהדפיס למסך את 2 הטמפרטורות כל 10 שניות. אתה יכול לבדוק שהכל בסדר על ידי הכנסת חיישן אחד למים קרים או התחממות בעדינות עם מייבש שיער. אם הכל נראה תקין, אז אפשר להמשיך הלאה!
שלב 5: חומת אש של UFW
מכיוון ש- RPi זה יהיה מחובר לצמיתות לאינטרנט החלטתי שחומת אש תהיה רעיון טוב ופשוט לשימוש הוא חומת אש לא מסובכת (ufw). יש כאן הדרכה פשוטה מאוד
אני לא נכנס לעומק רב מכיוון שזו לא מטרתו של המדריך הזה, אבל בקיצור:
התקן את חומת האש באמצעות:
sudo apt-get להתקין ufw
הגדר את כללי ברירת המחדל:
sudo ufw ברירת מחדל לאפשר יוצאת
sudo ufw ברירת מחדל דוחה כניסה
פתח יציאה 80 עבור Dataplicity
sudo ufw אפשר 80
הפעל את חומת האש
sudo ufw אפשר
בדוק את הסטטוס וודא שהכל פועל
סטטוס sudo ufw
שלב 6: S סיום נתוני הטמפרטורה כ- JSON
חזרה לבלוג של טים פרננדו ולקטע 5.
בצע את השלבים כאמור (למעט שכבר יצרנו את ספריית הפרויקטים) והכל אמור לעבוד כמו שצריך. באמצעות GIT תוריד את קבצי היישומים של טים וה- PIP יוודא שכל התוכניות הנדרשות מותקנות על ה- RPi שלך. לאחר מכן גיליתי שאני צריך לאתחל מחדש כדי לוודא שהחבילות כולן מותקנות כראוי.
לאחר מכן הפעל את התוכנית של טים ואז ה- RPi שלך אמור לספק נתוני JSON לחיישן הראשון.
cd home/pi/projects/temperature-serve-pi
sudo gunicorn temperature: app -b 0.0.0.0:80
תוכל להמשיך דרך הבלוג לסעיף 6, שם תמצא נתונים עבור אחד מהחיישנים.
תוכל גם להשתמש ב- JSON Viewer כדי לראות את הנתונים https://codebeautify.org/jsonviewer לחץ על הכפתור "טען כתובת URL" והדבק את כתובת Wormhole שציינה קודם לכן. בחלונית השמאלית, אתה אמור לראות שני ערכים, אחד עבור צלזיוס ואחד עבור פרנהייט.
שלב 7: שלח נתונים משני החיישנים
בהתבסס על הקוד ב- temperature.py ו- thermo-test.py, יצרתי 2temps.py ערוך כבעבר בספרייה /projects /temperature-serve-pi, הודבק בקוד ושמרתי. אחר כך רצתי
sudo gunicorn 2temps: app -b 0.0.0.0:80
עכשיו כשהרצתי מחדש את JSON Viewer קיבלתי ערכים עבור temp1 & temp2
הצלחה:)
שלב 8: התחלה אוטומטית
מכיוון שהחשמל לחממה אכן נכבה מדי פעם, רציתי שה- RPi יטען את התוכנית באופן אוטומטי ויתחיל להוכיח את הנתונים. נראה שהדרך הפשוטה ביותר היא לערוך את קובץ rc.local ולהוסיף את הקוד הנדרש בתחתית ממש מעל לשורת היציאה 0.
תקליטור וכו '
sudo nan rc.local
לאחר מכן תוסף
לישון 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- הסיום & בסוף אומר למחשב להריץ את הסקריפט במעטפת משנה כך שהמחשב שלך לא יחכה שהפונקציה תסתיים ותמשיך באתחול
- שינה 10 [שניות] מוודאת שכל הפעולות הקודמות הושלמו לפני תחילת השירות.
צא ושמור כמו קודם. לאחר מכן הפעל מחדש והפעל מחדש את JSON Viewer כדי לבדוק שהכל בסדר.
אם אתה רוצה מידע נוסף על תוכניות הפעלה אוטומטית יש כאן הדרכה מצוינת
שלב 9: הצג את הנתונים ב- Freeboard.io (1)
השלבים בבלוג של טים עובדים מצוין, לסיכום; צור חשבון ב- www.freeboard.io ולאחר מכן צור לוח לוח חדש, קראתי לשלי SHEDTEMPERATURES.
ראשית, הוסף מקור נתונים, לחץ על הוסף בפינה השמאלית העליונה ומתוך הקופץ בחר JSON כסוג, תן למקור הנתונים שם, הוסף את כתובת חור התולעת מלפני ככתובת ה- URL ולחץ על NO כדי לנסות דבר. הטמפרטורות רק משתנות לאט מאוד ולכן רענון בכל 15 שניות זה בסדר. לחץ על שמור.
שלב 10: הצג את הנתונים ב- Freeboard.io (2)
לחץ על הוסף חלונית ולאחר מכן על + כדי להוסיף את הווידג'ט הראשון. אתה יכול לבחור ולשחק עם סוגים שונים אך מצאתי ש- Gauge בסדר גמור. תן TITLE, UNITS (C), MINIMUM ו- MAXIMUM המתאימים ליישום שלך. עבור DATASOURCE, לחץ על + והמקור שנוצר למעלה יופיע.
התפריט הנפתח אמור כעת להציג את 2 מקורות הנתונים של JSON (temp2 & temp2) שנבנו קודם לכן. בחר את המקור המתאים ולחץ על שמור.
חזור על פעולה זו עבור המד השני וכולנו מסודרים.
הנתונים אמורים להיות מוצגים כעת על 2 המדדים ואם עדיין יש לך את ה- PRi מחובר למסך, אתה אמור לראות את הבקשות מ- Freeboard.io כשהן מגיעות.
שלב 11: בנה את הפרויקט לתוך קופסה
עד לנקודה זו, ה- RPi והרכיבים האחרים הורכבו על הספסל באמצעות לוח לחם. לאחר מכן שימשה חתיכה קטנה של לוח חשמל להחלפת לוח הלחם והלידים כולם מולחמים למקומם.
נמצאה קופסת אחסון קטנה של לגו ורודה בהירה שהיתה בה הרבה מקום ושם RPI לא יתחמם מדי. חורים נקדחו בצידי הקופסה & עמודי הרכבה מניילון בגודל 3 מ"מ שימשו לחיזוק ה- RPi והלוח במקומם.
יש רק 3 חיבורים הנדרשים מה- GPIO, 3.3v, GND ונתונים.
- 3.3vdc סיכה 1
- סיכת GND 6
- נתונים (GPIO4) סיכה 7
לקופסא נוספו חורים לחבילות הטמפרטורה גם לארגז USB וכבלים. לאחר שהכל הותקן למקומו, נוספה כמות קטנה של חומר איטום סיליקון בכדי להבטיח שעכבישים לא יחשבו שזה מקום חם ונעים לבלות בו את החורף!
שלב 12: סיים
הקופסה הוכנסה לחממה ומופעלת ממטען USB. שני החיישנים הוצבו האחד ליד החלק העליון של החממה והשני על עציץ כדי לבדוק עד כמה השתילים מקבלים קר בלילה.
זהו ההוראה הראשון שלי ואני מקווה שאתה חושב שזה בסדר. אם אתה מוצא שגיאות אנא הודע לי על כך ואשנה במידת הצורך. השלב הבא עשוי להיות רישום הנתונים כל (נניח) 60 שניות, אך הדבר יגיע מאוחר יותר.
מוּמלָץ:
כיצד להפוך לחות וטמפרטורה למקליט נתונים בזמן אמת באמצעות UNO Arduino וכרטיס SD - סימולציית רישום נתונים DHT11 בפרוטוס: 5 שלבים
כיצד להפוך לחות וטמפרטורה למקליט נתונים בזמן אמת באמצעות UNO Arduino וכרטיס SD | סימולציית רישום נתונים ב- DHT11 בפרוטוס: הקדמה: היי, זהו Liono Maker, הנה קישור ל- YouTube. אנו יוצרים פרויקט יצירתי עם Arduino ועובדים על מערכות מוטבעות. Data-Logger: לוגר נתונים (גם לוגר נתונים או מקליט נתונים) הוא מכשיר אלקטרוני המתעד נתונים לאורך זמן עם
תיבת קאמרית מבוקרת בטמפרטורה DIY עם מודול Peltier TEC: 4 שלבים (עם תמונות)
תיבת קאמרית מבוקרת בטמפרטורה DIY עם מודול Peltier TEC: הרכבתי תיבת קאמרית מבוקרת טמפרטורה לבדיקת לוחות אלקטרוניים קטנים. במדריך זה שיתפתי את הפרויקט שלי כולל קבצי מקור וקישור לקבצי Gerbers ליצירת ה- PCB. השתמשתי רק בחומרים זולים נפוצים
נקודת גישה ESP8266 NodeMCU (שרת אינטרנט) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 והדפסת טמפרטורה ולחות בדפדפן: 5 שלבים
נקודת גישה ESP8266 NodeMCU (AP) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 וטמפרטורת הדפסה ולחות בדפדפן: שלום חברים ברוב הפרויקטים בהם אנו משתמשים ב- ESP8266 וברוב הפרויקטים אנו משתמשים ב- ESP8266 כשרת אינטרנט כך שניתן יהיה לגשת לנתונים ב כל מכשיר באמצעות wifi על ידי גישה לשרת האינטרנט המתארח על ידי ESP8266 אך הבעיה היחידה היא שאנחנו צריכים נתב עובד עבור
רכישת נתונים ומערכת ויזואליזציית נתונים לאופנוע מירוץ חשמלי של MotoStudent: 23 שלבים
רכישת נתונים ומערכת ויזואליזציית נתונים לאופנוע מירוץ חשמלי של MotoStudent: מערכת רכישת נתונים היא אוסף של חומרה ותוכנה הפועלים יחד על מנת לאסוף נתונים מחיישנים חיצוניים, לאחסן ולעבד אותם לאחר מכן כך שניתן יהיה להמחיש אותם בצורה גרפית ולנתח אותם, המאפשר למהנדסים לבצע
עקיפת שרת חומת אש/שרת proxy: 3 שלבים
עקיפת שרת חומת אש/שרת proxy: סטודנטים רבים אחרים הגיעו ושאלו אותי כיצד ניתן להגיע לחומות האש והפרוקסי. אנשי IT בבית הספר הופכים חכמים יותר בנוגע לתלמידים שמשתמשים בפרוקסיות. חשבתי על הנושא הזה זמן מה ויש לי פתרון. למה לא ליצור דפי אינטרנט משלך