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

ניטור טמפרטורה ולחות באמצעות פטל פטל: 6 שלבים (עם תמונות)
ניטור טמפרטורה ולחות באמצעות פטל פטל: 6 שלבים (עם תמונות)

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

וִידֵאוֹ: ניטור טמפרטורה ולחות באמצעות פטל פטל: 6 שלבים (עם תמונות)
וִידֵאוֹ: בקר טמפרטורה למקררים ולחדרי קירור 2024, יולי
Anonim
ניטור טמפרטורה ולחות באמצעות פי פטל
ניטור טמפרטורה ולחות באמצעות פי פטל
ניטור טמפרטורה ולחות באמצעות פי פטל
ניטור טמפרטורה ולחות באמצעות פי פטל

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

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

שלב 1: הכנת חומרה

הכנת חומרה
הכנת חומרה
הכנת חומרה
הכנת חומרה

נתחיל מההתחלה, מכיוון שלא השתמשתי ב- Raspberry Pi במשך די הרבה זמן.

אנחנו נצטרך:

  • לוח Raspberry Pi (או פלטפורמה אחרת מוכוונת IoT).
  • כרטיס SD או microSD (תלוי בפלטפורמה).
  • 5V/1A באמצעות מיקרו USB.
  • כבל LAN, המספק את חיבור האינטרנט.
  • צג HDMI, תצוגת RCA או יציאת UART (להפעלת SSH).

השלב הראשון הוא הורדת Raspbian. בחרתי בגרסת ה- Lite, כיוון שאני הולך להשתמש ב- SSH במקום בתצוגה. דברים השתנו מאז הפעם האחרונה שעשיתי את זה: עכשיו יש תוכנת צריבה נהדרת בשם Etcher, שעובדת בצורה מושלמת ובעלת עיצוב מהמם..

לאחר השלמת צריבת התמונה, הכנסתי את כרטיס ה- SD אל ה- Pi שלי, חיברתי את כבלי ה- LAN וכבל החשמל, ולאחר זמן מה, הנתב שלי רשם את המכשיר החדש.

שלב 2: הפעלת SSH

הפעלת SSH
הפעלת SSH
הפעלת SSH
הפעלת SSH
הפעלת SSH
הפעלת SSH

SSH מושבת כברירת מחדל. אני יכול להשתמש בממיר UART-USB או פשוט לחבר צג כדי לגשת למעטפת ולהפעיל SSH.

לאחר אתחול מחדש, אני סוף סוף נכנס. ראשית, ראשית, נעדכן:

sudo apt update && sudo apt upgrade -y

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

שלב 3: התקנת Cloud4RPi

התקנת Cloud4RPi
התקנת Cloud4RPi

החלטתי לנסות את פלטפורמת הענן בשם Cloud4RPi, המיועדת ל- IoT.

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

sudo apt להתקין git python python -pip -y

ניתן להתקין את ספריית הלקוחות בפקודה אחת:

sudo pip התקן cloud4rpi

כעת אנו זקוקים לקוד לדוגמא כדי לוודא שהוא פועל.

שיבוט git https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git שיבוט https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re

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

מיבוא rpi *

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

def cpu_temp ():

החזר 70 def ip_address (): החזר '8.8.8.8' def hostname (): החזר 'שם מארח' def os_name (): החזר 'osx'

כעת אנו זקוקים לאסימון, המאפשר ל- Cloud4RPi לקשר בין המכשירים לחשבונות. כדי להשיג אחד, צור חשבון ב- cloud4rpi.io ולחץ על כפתור מכשיר חדש בדף זה. החלף את מחרוזת _YOUR_DEVICE_TOKEN_ בקובץ minimal.py באסימון של המכשיר ושמור את הקובץ. כעת אנו מוכנים להשקה הראשונה.

python minimal.py

פתח את דף המכשיר ובדוק שהנתונים קיימים.

עכשיו נעבור לנתונים מהעולם האמיתי.

שלב 4: חיבור החיישן

חיבור החיישן
חיבור החיישן

אנחנו נצטרך:

  • חיישן לחות DHT22 או DHT11
  • נגד משיכה (5-10 KΩ)
  • חוטים

חיישן DHT22 מודד טמפרטורה ולחות בו זמנית. פרוטוקול התקשורת אינו סטנדרטי, ולכן איננו צריכים לאפשר אותו ב- raspi -config - סיכת GPIO פשוטה מספיקה.

כדי לרכוש את הנתונים אשתמש בספרייה הנהדרת של Adafruit לחיישני DHT, אך יתכן שהוא לא יפעל כפי שהוא. גיליתי פעם עיכוב קבוע ומוזר בקוד, שלא עבד עבור החומרה שלי, ואחרי שנתיים בקשת המשיכה שלי עדיין תלויה ועומדת. שיניתי גם את קבועי זיהוי הלוח מכיוון ש- Raspberry Pi 1 שלי עם BCM2835 זוהה באופן מפתיע כ- Raspberry Pi 3. הלוואי שזה היה נכון … לכן, אני ממליץ להשתמש במזלג שלי. אם אתה נתקל בבעיות עם זה, נסה את המאגר המקורי, אולי זה עובד עבור מישהו, אבל אני לא אחד מהם.

שיבוט git https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

מכיוון שהספרייה כתובה ב- C, היא דורשת אוסף, כך שאתה צריך את חבילות ה- build-essential ו- python-dev.

sudo apt להתקין build-essential python-dev -ysudo python setup.py להתקין

בזמן התקנת החבילות, חבר את ה- DHT22 כפי שמוצג בתמונה.

ובדוק את זה:

cd ~ python -c "יבוא Adafruit_DHT כ- d; הדפס d.read_retry (d. DHT22, 4)"

אם אתה רואה משהו כמו (39.20000076293945, 22.600000381469727), אתה צריך לדעת שזו הלחות באחוזים ובטמפרטורה בצלזיוס.

עכשיו, בואו להרכיב הכל ביחד!

שלב 5: שליחת קריאות חיישן לענן

שליחת קריאות חיישן לענן
שליחת קריאות חיישן לענן

אשתמש ב- minimal.py כבסיס ואוסיף לתוכו את האינטראקציה DHT22.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

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

יבוא Adafruit_DHT

temp, hum = None, None last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () סיבוב חוזר (temp, 2) אם temp הוא לא אף אחד אחר אף def get_h (): update_data () סיבוב חוזר (זמזום, 2) אם זמזום אינו אף אחד אחר אין

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

משתנים = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 לחות': {'type': 'numeric', 'bind': get_h}, 'Temp CPU': {'type ':' מספריים ',' bind ': cpu_temp}}

לחץ על הכפתור האדום כדי להתחיל בהעברת הנתונים:

python cloud_dht22.py

לאחר מכן תוכל לבדוק את דף המכשיר.

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

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

התחלת השירות:

sudo service cloud4rpi התחלה

ובודקים את זה:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -l

● cloud4rpi.service-שדון Cloud4RPi טעון: טעון (/lib/systemd/system/cloud4rpi.service; מופעל) פעיל: פעיל (פועל) מאז רביעי 2017-05-17 20:22:48 UTC; לפני 1 דקות PID ראשי: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: הוצאה לאור iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 במאי 20:22:53 raspberrypi python [560]: פרסום iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 במאי 20:22:53 raspberrypi python [560]: פרסום iot-hub/הודעות: {'type': 'מערכת', 'ts': '2017-05-17T20….4'}}

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

שלב 6: תרשימים והתראות

תרשימים והתראות
תרשימים והתראות
תרשימים והתראות
תרשימים והתראות
תרשימים והתראות
תרשימים והתראות

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

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

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

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

מוּמלָץ: