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

שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak: 7 שלבים
שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak: 7 שלבים

וִידֵאוֹ: שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak: 7 שלבים

וִידֵאוֹ: שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak: 7 שלבים
וִידֵאוֹ: Dingtian DT-R008 многоканальное умное реле с ethernet и wi-fi - обзор и интеграция в Home Assistant 2024, יולי
Anonim
שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak
שליטה חכמה במאוורר Raspberry Pi באמצעות Python & Thingspeak

סקירה קצרה

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

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

מה תלמד

כיצד ליישם סקריפט Python לשליטה במאוורר על סמך הטמפרטורה הנוכחית של מעבד פטל באמצעות בקרת הפעלה וכיבוי עם היסטסטרזה של טמפרטורה. כיצד להעביר נתונים מה- RaspberryPi שלך אל Things Speak Cloud.

אספקה

הרכיבים שתידרשו לפרויקט זה הם כדלקמן

  • מחשב Raspberry Pi 4 דגם B 4GB
  • נגד טרנזיסטור NPN S8050330 אוהם
  • מארז מתכת משוריין מאלומיניום עם מאווררים כפולים לפטל פי
  • כבלי מגשר
  • לוח לחם

שלב 1: בניית המעגל

בניית המעגל
בניית המעגל
בניית המעגל
בניית המעגל

המעגל די פשוט. החשמל למאוורר מנותק באמצעות טרנזיסטור NPN. בתצורה זו, הטרנזיסטור פועל כמתג בצד נמוך. נגזר נדרש רק כדי להגביל את הזרם באמצעות GPIO. ל- GPIO של ה- Raspberry Pi יש תפוקת זרם מרבית של 16mA. השתמשתי ב -330 אוהם שנותן לנו זרם בסיס של בערך (5-0.7)/330 = 13mA. בחרתי בטרנזיסטור NPN S8050, כך שאין בעיה להעביר עומס 400mA משני המאווררים.

שלב 2: רשום טמפרטורת מעבד עם ThingSpeak

טמפרטורת מעבד יומן עם ThingSpeak
טמפרטורת מעבד יומן עם ThingSpeak

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

ThingSpeak יכולה לשלב מכשירים ושירותים פופולריים כגון:

  • ארדואינו
  • פטל pii
  • oBridge / RealTime.io
  • זרם חשמלי
  • יישומי מובייל ואינטרנט
  • רשתות חברתיות
  • ניתוח נתונים ב- MATLAB

לפני שנתחיל, אתה צריך חשבון ב- ThingSpeak.

  1. עבור לקישור הבא והירשם ל- ThingSpeak.
  2. לאחר הפעלת החשבון, היכנס.
  3. עבור אל ערוצים -> הערוצים שלי
  4. לחץ על כפתור הערוץ החדש.
  5. הזן את השם, התיאור והשדות של הנתונים שברצונך להעלות
  6. לחץ על כפתור שמור ערוץ כדי לשמור את כל ההגדרות שלך.

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

לחץ על הכרטיסייה מפתחות API כדי לקבל את מפתח ה- Write API

ברגע שיש לך את מפתח ה- API של Write, אנחנו כמעט מוכנים להעלות את הנתונים שלנו.

שלב 3: קבלת טמפרטורת המעבד מפי פטל באמצעות פייתון

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

vcgencmd measure_temp

ספריית Subprocess.check_output () שימשה לביצוע הפקודה ולאחר מכן שימוש בביטוי רגיל לחילוץ הערך האמיתי מהמחרוזת המוחזרת.

מפלט check_output ייבוא תהליך

מיבוא מחדש findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) החזרה (temp) הדפס (get_temp ())

לאחר איסוף ערך הטמפרטורה, יש לשלוח נתונים לענן ThingSpeak. השתמש במפתח ה- API של Write שלך כדי לשנות את המשתנה myApi בקוד ה- Python שלהלן.

מבקשת ייבוא urllib

מאת ייבוא מחדש מוצא כל הזמן ייבוא שינה מ- subprocess יבוא check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall (' / d+\. / d+', temp) [0]) החזרה (temp) נסה: בעוד נכון: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) למעט KeyboardInterrupt: הדפסה ("יציאה לחץ על Ctrl+C")

שלב 4: שליטה במאוורר בהתאם לטמפרטורה

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

ייבא RPi. GPIO כ- GPIO

ייבוא sys מאת ייבוא מחדש Findall מעת לעת ייבוא שינה מתהליך ייבוא check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d+\. / d+ ', temp) [0]) חזור (temp) נסה: GPIO.setwarnings (False) tempOn = 50 סף = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) while True: temp = get_temp () if temp> tempOn ולא pinState או temp <tempOn - סף ו- pinState: pinState = not pinState GPIO.output (controlPin, pinState) הדפס (str (temp) + "" + str (pinState)) sleep (1) למעט KeyboardInterrupt: הדפס ("יציאה Ctrl+C" לחוץ) למעט: print ("Other Exception") הדפס ("--- Start Data Exception:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- נתוני חריגה של סיום:") לבסוף: print ("CleanUp") GPIO.cleanup () print ("סוף התוכנית")

שלב 5: קוד פייתון סופי

ניתן למצוא את קוד הפיתון הראשי בחשבון GitHub שלי בקישור הבא. זכור לשים את מפתח ה- API שלך לכתוב.

  1. היכנס ללוח ה- RI של הפטל שלך
  2. הפעל את הפקודה הבאה במסוף

python3 cpu.py

שלב 6: ניטור נתונים באמצעות ענן Thingspeak

ניטור נתונים באמצעות ענן Thingspeak
ניטור נתונים באמצעות ענן Thingspeak

כעבור זמן מה, פתח את הערוץ שלך ב- ThingSpeak וכדאי שתראה את הטמפרטורה שתעלה לענן Thingspeak בזמן אמת.

שלב 7: הפעל את סקריפט Python בעת ההפעלה

לשם כך, בסוף הקובץ /etc/rc.local:

sudo nano /etc/rc.local

עליך למקם את הפקודה start script לפני יציאת השורה 0:

sudo python /home/pi/cpu.py &

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

מוּמלָץ: