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

כיצד לבנות צג טמפרטורה של פטל פי: 9 שלבים
כיצד לבנות צג טמפרטורה של פטל פי: 9 שלבים

וִידֵאוֹ: כיצד לבנות צג טמפרטורה של פטל פי: 9 שלבים

וִידֵאוֹ: כיצד לבנות צג טמפרטורה של פטל פי: 9 שלבים
וִידֵאוֹ: אבושש בא לי ארטיק #קראנץקורנפלקס 2024, יולי
Anonim
כיצד לבנות צג טמפרטורה של פטל פיי
כיצד לבנות צג טמפרטורה של פטל פיי

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

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

אספקה

  • פטל פטל (3, 4 או אפס WH)
  • חיישן טמפרטורה (DHT2, DSB18B20, BME280 או Sense HAT)
  • 6 אינץ 'כבל מאריך 40-Pin IDE (פתרון SAT HAT)
  • הנגד 10K, לוח קרשים, לוח פריצה של 40 פינים + כבל סרט, חוטים (לפתרון DSB18B20)

שלב 1: פטל פטל

Raspberry Pi הוא מחשב לוח יחיד לא יקר שיאפשר לכם להתחבר לחיישן טמפרטורה ולהזרים את הנתונים לתוכנת הדמיית נתונים. Raspberry Pi התחיל ככלי למידה והתפתח לכלי עבודה תעשייתי. קלות השימוש והיכולת לקודד עם Python, שפת התכנות הצומחת במהירות הגבוהה ביותר, גרמה להם ללכת לפתרון.

תרצה פטל פטל הכולל WiFi מובנה, כל דגם 3, 4 ואפס W/WH. בין אלה אתה יכול לבחור בהתבסס על תמחור ותכונות. ה- Zero W/WH הוא הזול ביותר, אך אם אתה צריך פונקציונליות נוספת אתה יכול לבחור בין 3 ל -4. אתה יכול לקנות רק Zero W/WH אחד בכל פעם בשל מגבלות של קרן Raspberry Pi. לא משנה מה פי אתה בוחר, הקפד לרכוש מטען מכיוון שכך תוכל להפעיל את ה- Pi וכרטיס SD באמצעות Raspbian כדי להפוך את ההתקנה של מערכת ההפעלה לקלה ככל האפשר.

יש מחשב לוח יחיד אחר שיכול לעבוד גם כן, אבל זה לזמן אחר ולמאמר אחר.

שלב 2: חיישנים

ישנם שלושה חיישנים שאנו ממליצים להשתמש בהם מכיוון שהם זולים, קלים לחיבור ונותנים קריאות מדויקות; DSB18B20, DHT22 ו- Raspberry Pi Sense HAT.

DHT22 - לחיישן טמפרטורה ולחות זה יש דיוק טמפרטורה של +/- 0.5 C וטווח לחות שבין 0 ל -100 אחוזים. זה פשוט להתחבר ל- Raspberry Pi ואינו דורש נגדי משיכה.

DSB18B20 - לחיישן טמפרטורה זה יש פלט דיגיטלי, שעובד היטב עם ה- Raspberry Pi. יש לו שלושה חוטים ודורש לוח ונגד לחיבור.

BME280 - חיישן זה מודד טמפרטורה, לחות ולחץ ברומטרי. ניתן להשתמש בו הן ב- SPI והן ב- I2C.

Sense HAT - זהו תוספת על הלוח עבור Raspberry Pi הכוללת נוריות LED, חיישנים וג'ויסטיק זעיר. הוא מתחבר ישירות ל- GPIO ב- Raspberry Pi אך שימוש בכבל סרט נותן לך קריאות טמפרטורה מדויקות יותר.

שלב 3: הגדרת פטל פטל

אם זו הפעם הראשונה שבה אתה מגדיר את ה- Raspberry Pi, יהיה עליך להתקין את מערכת ההפעלה Raspbian ולחבר את ה- Pi ל- WiFi. זה יחייב צג ומקלדת כדי להתחבר ל- Pi. לאחר שתפעיל אותו ותתחבר ל- WiFI, ה- Pi שלך מוכן לצאת לדרך.

שלב 4: חשבון המדינה הראשוני

חשבון המדינה הראשוני
חשבון המדינה הראשוני
חשבון המדינה הראשוני
חשבון המדינה הראשוני

תצטרך איפשהו לשלוח את הנתונים שלך כדי לשמור יומן היסטורי ולצפות בזרם הנתונים בזמן אמת, כך שנשתמש במצב התחלתי. עבור אל https://iot.app.initialstate.com וצור חשבון חדש או היכנס לחשבון הקיים שלך.

לאחר מכן, עלינו להתקין את מודול ה- Python Initial State על ה- Pi שלך. בשורת פקודה (אל תשכח קודם כל SSH ל- Pi שלך), הפעל את הפקודה הבאה:

$ cd/home/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

לאחר שתזין את הפקודה curl בשורת הפקודה תראה משהו הדומה לפלט הבא למסך:

pi@raspberrypi ~

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash סיסמה: החל מ- ISStreamer Python התקנה קלה! ההתקנה עשויה להימשך מספר דקות, לקחת קפה:) אבל אל תשכח לחזור, יהיו לי שאלות בהמשך! נמצא easy_install: setuptools 1.1.6 נמצא pip: pip 1.5.6 מתוך /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip minor version: 5 ISStreamer נמצא, מתעדכן … הדרישה כבר מעודכנת: ISStreamer ב- /Library/Python/2.7/site-packages ניקוי … האם אתה רוצה לקבל אוטומטית סקריפט לדוגמה? [y/N] היכן ברצונך לשמור את הדוגמה? [ברירת מחדל:./is_example.py] אנא בחר באיזו אפליקציית מצב ראשוני אתה משתמש: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com הזן אפשרות 1 או 2: הזן iot.app שם משתמש.initialstate.com: הזן את הסיסמה של iot.app.initialstate.com:

כאשר תתבקש לקבל סקריפט לדוגמה באופן אוטומטי, הקלד y. פעולה זו תיצור סקריפט בדיקה שנוכל להריץ כדי להבטיח שנוכל להזרים נתונים למצב התחלתי. ההנחיה הבאה תשאל היכן ברצונך לשמור את קובץ הדוגמה. תוכל להקליד נתיב מקומי מותאם אישית או ללחוץ על enter כדי לקבל את מיקום ברירת המחדל. לבסוף, תישאל באיזו אפליקציית מצב ראשוני אתה משתמש. אם יצרת חשבון לאחרונה, בחר באפשרות 2, הזן את שם המשתמש והסיסמה שלך. לאחר מכן ההתקנה תושלם.

בואו נסתכל על התסריט לדוגמה שנוצר.

$ nano is_example.py

בשורה 15, תראה שורה שמתחילה ב- streamer = Streamer (bucket_…. שורות אלה יוצרות דלי נתונים חדש בשם "דוגמה להזרמת פייתון" ומשויך לחשבונך. קשר זה קורה בגלל access_key = "…" פרמטר באותה שורה. אותה סדרה ארוכה של אותיות ומספרים היא מפתח הגישה לחשבון המדינה הראשונית שלך. אם אתה נכנס לחשבון המדינה הראשונית שלך בדפדפן האינטרנט שלך, לחץ על שם המשתמש שלך בפינה השמאלית העליונה ולאחר מכן עבור אל "ההגדרות שלי", תמצא את אותו מפתח גישה כאן תחת "מפתחות גישה להזרים".

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

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

$ python is_example.py

חזור לחשבון המדינה הראשונית שלך בדפדפן האינטרנט שלך. דלי נתונים חדש בשם "דוגמת זרם פייתון" היה צריך להופיע בצד שמאל במדף היומן שלך (ייתכן שיהיה עליך לרענן את הדף). לחץ על דלי זה ולאחר מכן לחץ על סמל Waves כדי להציג את נתוני הבדיקה

אם אתה משתמש ב- Python 3 תוכל להתקין את מודול הסטרימר Initial State שתוכל להתקין באמצעות הפקודה הבאה:

pip3 התקן את ISStreamer

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

שלב 5: פתרון DHT22

פתרון DHT22
פתרון DHT22

ל- DHT22 יהיו שלושה סיכות - 5V, Gnd ונתונים. צריכה להיות תווית סיכה להפעלה ב- DHT22 (למשל '+' או '5V'). חבר אותו לסיכה 2 (הסיכה הימנית העליונה, 5V) של ה- Pi. סיכת ה- Gnd תסומן '-' או 'Gnd' או משהו שווה ערך. חבר אותו לסיכה 6 Gnd (שני סיכות מתחת לסיכה 5V) בפי. הסיכה הנותרת ב- DHT22 היא סיכת הנתונים ותתויג כ'חוצה 'או' s 'או' נתונים '. חבר אותו לאחד מסיכות ה- GPIO בפי, כגון GPIO4 (סיכה 7). לאחר חיבור זה, הפעל את ה- Pi שלך.

התקן את מודול ה- Python של Adafruit DHT בשורת הפקודה כדי להפוך את קריאת נתוני החיישן DHT22 לפשוטה ביותר:

$ sudo pip התקן את Adafruit_DHT

כאשר מערכת ההפעלה שלנו מותקנת יחד עם שני מודולי Python שלנו לקריאת נתוני חיישנים ושליחת נתונים למצב התחלתי, אנו מוכנים לכתוב את סקריפט ה- Python שלנו. התסריט הבא ייצור/יתווסף לדלי נתונים של מצב ראשוני, יקרא את נתוני החיישן DHT22 וישלח נתונים אלה ללוח מחוונים בזמן אמת. כל שעליך לעשות הוא לשנות שורות 6–11.

יבוא Adafruit_DHT

מ- ISStreamer. Streamer יבוא זמן ייבוא סטרימר# --------- הגדרות משתמש --------- SENSOR_LOCATION_NAME = "משרד" BUCKET_NAME = ": חלקית_שמשי: טמפרטורות החדר" BUCKET_KEY = "rt0129" ACCESS_KEY = "מקם את מפתח הגישה למדינה שלך כאן" MINUTES_BETWEEN_READS = 10METRIC_UNITS = שקר # -------------------------------- סטרימר = סטרימר (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) בעוד True: לחות, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) אם METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME): temp_f = פורמט (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "טמפרטורה (F)", temp_f) לחות = פורמט (לחות, ".2f") streamer.log (SENSOR_LOCATION_NAME + "לחות (%)", לחות) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • שורה 6 - ערך זה צריך להיות ייחודי עבור כל חיישן צומת/טמפרטורה. זה יכול להיות שם החדר של צומת החיישן שלך, המיקום הפיזי, המזהה הייחודי שלך או כל דבר אחר. רק וודא שהוא ייחודי לכל צומת כדי לוודא שהנתונים מצומת זה יגיעו לזרם הנתונים שלו בלוח המחוונים שלך.
  • שורה 7 - זהו שמו של דלי הנתונים. ניתן לשנות זאת בכל עת בממשק המשתמש של המדינה הראשונית.
  • שורה 8 - זהו מפתח הדלי שלך. זה צריך להיות אותו מפתח דלי עבור כל צומת שאתה רוצה להציג באותו לוח מחוונים.
  • שורה 9 - זהו מפתח הגישה לחשבון המדינה הראשוני שלך. העתק והדבק מפתח זה מחשבון המדינה הראשונית שלך.
  • שורה 10 - זהו הזמן שבין קריאת החיישן. שנה בהתאם.
  • שורה 11 - ניתן לציין יחידות מטריות או אימפריאליות בקו 11.

לאחר שהגדרת שורות 6–11 בתסריט ה- Python שלך ב- Pi שלך, שמור ויצא מעורך הטקסט. הפעל את הסקריפט עם הפקודה הבאה:

$ python tempsensor.py

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

שלב 6: פתרון DSB18B20

פתרון DSB18B20
פתרון DSB18B20
פתרון DSB18B20
פתרון DSB18B20

כבל הסרט מתחבר לסיכות GPIO בפי. ל- DS18B20 שלושה חוטים. החוט האדום מתחבר ל- 3.3V. החוט הכחול/שחור מתחבר לאדמה. החוט הצהוב מתחבר לנגד משיכה/סיכה 4. לאחר חיבור זה, הפעל את ה- Pi שלך.

הגירסה העדכנית ביותר של Raspbian (גרעין 3.18) דורשת תוספת לקובץ /boot/config.txt כדי שה- Pi יתקשר עם DS18B20. הפעל את הפעולות הבאות לעריכת קובץ זה:

$ sudo nano /boot/config.txt

אם השורה הבאה כבר לא נמצאת בקובץ זה (אם כן, סביר להניח שבתחתית הקובץ), הוסף אותו ושמור את הקובץ.

dtoverlay = w1-gpio, gpiopin = 4

הפעל מחדש את ה- Pi שלך כדי שהשינויים ייכנסו לתוקף.

$ sudo אתחול מחדש

כדי להפעיל את ממשק קריאת חיישן הטמפרטורה עלינו להריץ שתי פקודות. עבור לשורת הפקודה ב- Pi או ב- SSH לתוך ה- Pi שלך. הקלד את הפקודות הבאות:

$ sudo modprobe w1-gpio $ sudo modprobe w1-therm

הפלט של חיישן הטמפרטורה שלך נכתב כעת לקובץ ב- Pi שלך. כדי למצוא את הקובץ:

$ cd/sys/bus/w1/התקנים

בספרייה זו תהיה תת-ספרייה המתחילה ב- "28-". מה שבא אחרי "28-" הוא המספר הסידורי של החיישן שלך. cd לתוך הספרייה הזו. בתוך ספרייה זו, קובץ בשם w1_slave מכיל את הפלט של החיישן שלך. השתמש ב- nano כדי להציג את תוכן הקובץ. לאחר שנכנסת לקובץ, הוא ייראה בערך כך:

a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125

המספר שאחרי "t =" הוא המספר שאנחנו רוצים. זוהי הטמפרטורה ב 1/1000 מעלות צלזיוס (בדוגמה למעלה, הטמפרטורה היא 26.125 C). אנחנו רק צריכים תוכנית פשוטה שקוראת את הקובץ הזה ומנתחת את המספר הזה. נגיע לזה תוך שנייה.

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

$ nano temperature.py

העתק והדבק את הקוד למטה בעורך הטקסט.

ייבוא מערכת הפעלה

יבוא זמן גלובץ ייבוא מ- ISStreamer. Streamer יבוא סטרימרסטרימר = סטרימר (bucket_name = "זרם טמפרטורות", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpio') os.system -therm ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = open (קובץ device_file, 'r') שורות = f.readlines () f.close () שורות החזרה def read_temp (): lines = read_temp_raw () בעוד שורות [0]. רצועה () [-3:]! = 'YES': time.sleep (0.2) lines = read_temp_raw () equals_pos = lines [1].find ('t =') if equals_pos! = -1: temp_string = lines [1] [equals_pos+2:] temp_c = float (temp_string) / 1000.0 החזרה temp_c בעוד נכון: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("טמפרטורה (C)", temp_c) streamer.log ("טמפרטורה (F)", temp_f) time.sleep (.5)

עליך לשים את מפתח הגישה למצב ההתחלתי בשורה 6 במקום PUT_YOUR_ACCESS_KEY_HERE (העתק את מפתח הסטרימינג ללוח מה'החשבון שלי 'והדבק אותו בקוד ב- nano במסוף).

שורה 6 תיצור דלי בשם "זרם טמפרטורות" בחשבון המצב הראשוני שלך (בהנחה שציינת נכון את מפתח הגישה שלך באותה שורה). שורות 8 עד 30 של סקריפט זה פשוט ממשק עם חיישן DS18B20 כדי לקרוא את הטמפרטורה שלו מהקובץ w1_slave שדיברנו עליו קודם. הפונקציה read_temp_raw () בשורה 15 קוראת את קובץ w1_slave הגולמי. הפונקציה read_temp () בשורה 21 מנתחת את הטמפרטורה מאותו קובץ. קו 34 קורא לפונקציות אלה כדי לקבל את הטמפרטורה הנוכחית. קו 35 ממיר את הטמפרטורה מצלסיוס לפרנהייט. שורות 35 ו -36 מזרימות את הטמפרטורה לחשבון המדינה הראשונית שלך. שורה 37 מושהה את הסקריפט למשך 0.5 שניות, וקובעת את התדירות שבה חיישן הטמפרטורה יקרא ויועבר.

אנחנו מוכנים להתחיל להזרים. הפעל את הפקודה הבאה:

$ sudo python temperature.py

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

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

שלב 7: פתרון BME280

תזדקק לדברים הבאים כדי לבנות את הפתרון הזה:

-BME280 חיישן לחץ, טמפרטורה ולחות

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

חבר את סיכת ה- VIN בחיישן לפין 3.3V של ה- Pi. חבר את סיכת ה- GND בחיישן את סיכה הארקה 6 בפי. חבר את סיכת SCK בחיישן לפין SCL 5 בפי. חבר את סיכת ה- SDI בחיישן לפין SDA 3 בפי. יהיה עליך להשתמש ב- Python 3 עבור פתרון זה ולהתקין את מודול Initial State Streamer בשיטת ההתקנה של pip3.

יהיה עליך גם להתקין כמה ספריות Adafruit Python.

pip3 התקן adafruit-blinkapip3 התקן pureio pip3 התקן spidev pip3 התקן adafruit-GPIO pip3 התקן adafruit-circuitpython-bme280

כדי להשתמש בחיישן עלינו לאפשר I2C בפי.

sudo raspi-config

פעולה זו תפתח את כלי תצורת התוכנה Raspberry Pi. עבור לאפשרות 5 אפשרויות ממשק. מכאן עבור אל I2C. הוא יבקש לשאול אותך אם ברצונך להפעיל את I2C, בחר כן וסיים. עכשיו יש לך I2C מופעל לתקשר עם החיישן.

אנו יכולים לבדוק זאת על ידי הפעלת הפעולות הבאות:

sudo i2cdetect -y 1

זה יוודא שהפי שלך רואה את החיישן. באופן שהוא מתחבר, הוא אמור להראות את החיישן בכתובת 77. אם אינך מזהה את החיישן, הפעל מחדש את ה- Pi שלך, הפעל מחדש את אפשרות ממשק I2C ב- Pi שלך ונסה שוב. לאחר שהחיישן שלך מזוהה, הגיע הזמן להפעלת הקוד הראשי שלנו שישלח נתונים למצב ההתחלתי. יצר קובץ בשם bme280sensor.py עם הפקודה nano. העתק והדבק את הקוד מהעיקר בעורך הטקסט. יהיה עליך לבצע שינויים בשורות 12–19.

זמן יבוא

לוח יבוא יבוא busio יבוא adafruit_bme280 מ- ISStreamer. Streamer יבוא סטרימר # צור אובייקט ספרייה באמצעות האוטובוס I2C שלנו porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -הגדרות משתמש --------- SENSOR_LOCATION_NAME = "משרד" BUCKET_NAME = ": חלקית_שמשית: טמפרטורת החדר" BUCKET_KEY = "temp1" ACCESS_KEY = "מפתח הגישה שלך לכאן" # שנה זאת כך שיתאים ללחץ המיקום (hPa) בגובה פני הים bme280.sea_level_pressure = 1013.25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = שקר # --------------------------------- # או צור אובייקט ספרייה באמצעות יציאת האוטובוס SPI שלנו #spi = busio. SPI (board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut (board. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = סטרימר (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) בעוד True: לחות = פורמט (bme280. לחות, ".1f") לחץ = פורמט (bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "טמפרטורה (C)", temp_c) אחר: temp_f = פורמט (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "טמפרטורה (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "לחות (%)", לחות) streamer.log (SENSOR_LOCATION_NAME + "לחץ (hPA)", לחץ) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • שורה 12- ערך זה צריך להיות ייחודי עבור כל חיישן צומת/טמפרטורה. זה יכול להיות שם החדר של צומת החיישן שלך, המיקום הפיזי, המזהה הייחודי שלך או כל דבר אחר. רק וודא שהוא ייחודי לכל צומת כדי לוודא שהנתונים מצומת זה יגיעו לזרם הנתונים שלו בלוח המחוונים שלך.
  • שורה 13- זהו שמו של דלי הנתונים. ניתן לשנות זאת בכל עת בממשק המשתמש של המדינה הראשונית.
  • שורה 14- זהו מפתח הדלי שלך. זה צריך להיות אותו מפתח דלי עבור כל צומת שאתה רוצה להציג באותו לוח מחוונים.
  • שורה 15- זהו מפתח הגישה לחשבון המדינה הראשוני שלך. העתק והדבק מפתח זה מחשבון המדינה הראשונית שלך.
  • קו 17- זהו הלחץ של המיקום שלך (hPa) בגובה פני הים. אתה יכול למצוא מידע זה ברוב אתרי מזג האוויר.
  • שורה 18 - זהו הזמן שבין קריאת החיישן. שנה בהתאם. שורה 19- כאן תוכל לציין יחידות מטריות או אימפריאליות.

לאחר שהגדרת שורות 12–19 בתסריט ה- Python ב- Pi Zero WH שלך, שמור ויצא מעורך הטקסט. הפעל את הסקריפט עם הפקודה הבאה:

$ python3 bme280sensor.py

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

שלב 8: כובע Sense

כובע חוש
כובע חוש
כובע חוש
כובע חוש

השלב הראשון בשימוש ב- Sense HAT הוא להתקין אותו פיזית על ה- Pi שלך. כאשר ה- Pi כבוי, צרף את הכובע כפי שמוצג בתמונה.

אם תחליט להשתמש בפתרון כפי שמוצג למעלה, ייתכן שתבחין שקריאות הטמפרטורה של Sense HAT יהיו מעט גבוהות - זאת מכיוון שהן. האשם הוא החום שנוצר מהמעבד של ה- Pi המחמם את האוויר סביב ה- Sense HAT כשהוא יושב על גבי ה- Pi. כדי להפוך את חיישן הטמפרטורה לשימושי, עלינו להרחיק את הכובע מהפי או לנסות לכייל את קריאת חיישן הטמפרטורה. פתרון טוב להרחיקת החיישן מה- Pi הוא כבל המאפשר ל- Sense HAT להשתלשל מה- Pi. כבל כבל מאריך בגודל 6 אינץ ', 40 פינים, מסוג IDE יעשה את העבודה.

לאחר שתחליט על שתי האפשרויות, הפעל את ה- Pi שלך. עלינו להתקין את ספריית Python כדי שיהיה קל לקרוא את ערכי החיישנים מתוך Sense HAT. ראשית, יהיה עליך לוודא שהכל מעודכן בגרסת Raspbian שלך:

עדכון $ sudo apt-get

לאחר מכן, התקן את ספריית Sense HAT Python:

$ sudo apt-get להתקין כובע חוש

הפעל מחדש את ה- Pi שלך. אנו מוכנים לבדוק את ה- Sense HAT על ידי קריאת נתוני חיישנים מתוכו ושליחת נתונים אלה למצב התחלתי.

צור קובץ בשם sensehat ופתח אותו בעורך הטקסט על ידי הזנת השורה הבאה בשורת הפקודה:

$ nano sensehat.py

העתק והדבק את הקוד שלהלן בעורך הטקסט.

מ- sense_hat ייבוא SenseHat

ייבוא זמן sys sys מ- ISStreamer. Streamer ייבוא סטרימר # --------- הגדרות משתמש --------- BUCKET_NAME = "מזג אוויר במשרד" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " משרד "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = סטרימר (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () בעוד נכון: # קרא את החיישנים temp_c = sense.get_temperature () לחות = sense.get_humidity () pressure_mb = sense.get_pressure () # פורמט נתוני temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". פורמט (temp_f)) לחות = float ("{0:.2f}". פורמט (לחות)) pressure_in = 0.03937008*(pressure_mb) pressure_in = float ("{ 0:.2f} ". פורמט (pressure_in)) # הדפס והזרם הדפסה SENSOR_LOCATION_NAME +" טמפרטורה (F): " + str (temp_f) הדפס SENSOR_LOCATION_NAME +" לחות (%): " + str (לחות) הדפס SENSOR_LOCATION_NAME +" לחץ (IN): " + str (pressure_in) streamer.log (": sunny: " + SEN SOR_LOCATION_NAME + "טמפרטורה (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "לחות (%)", לחות) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "לחץ (IN)", pressure_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

שימו לב בשורה הראשונה שאנו מייבאים את ספריית SenseHat לתסריט. לפני שתפעיל סקריפט זה, עלינו להגדיר את פרמטרי המשתמש שלנו.

# --------- הגדרות משתמש ---------

BUCKET_NAME = "מזג אוויר במשרד" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = "משרד" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

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

בשורת פקודה ב- Pi שלך, הפעל את הסקריפט:

$ sudo python sensehat.py

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

שלב 9: התאם אישית את לוח המחוונים הראשוני של המדינה

התאם אישית את לוח המחוונים הראשוני של המדינה
התאם אישית את לוח המחוונים הראשוני של המדינה

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

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

כעת, לאחר שיצרתם מוניטור טמפרטורה באמצעות חיישן טמפרטורה ו- Raspberry Pi, תוכלו להתחיל לחשוב אילו עוד נתונים סביבתיים תוכלו לעקוב אחר כך.

מוּמלָץ: