- רכיבים נדרשים
- ממשק MLX90614 עם פטל פטל
- ממשק מצלמת פי עם פטל פי
- הגדרת דוא"ל SMTP באמצעות Raspberry Pi
- קוד פייתון עבור Pi לקריאת טמפרטורה מ- MLX90614 ולשלוח דואר אלקטרוני עם תמונה
- מדידת טמפרטורה ושליחת התראת דואר עם PI
מאז התפרצות הקורונה, קשה מאוד לזהות את מי שנפגע מהנגיף או לא. כדי לפתור בעיה זו, מכשירי טמפרטורה משמשים לעתים קרובות למדידת טמפרטורת הגוף. למכשירים אלה חיישני טמפרטורת IR ללא מגע שיכולים למדוד את טמפרטורת הגוף ללא כל מגע פיזי.
קיימים בשוק אקדחי טמפרטורה רבים, אך אף אחד מהם אינו מעניק התראה או הודעה בדוא"ל לרשויות הגבוהות לנקוט בפעולות מתאימות כאשר הטמפרטורה חורגת מגבול מסוים. בפרויקט זה אנו נתממשק חיישן טמפרטורה IR ונשלח את התראות הדוא"ל עם תמונת האדם אם הטמפרטורה של אדם מסוים עולה על הערך שנקבע.
בעולם של ימינו, האינטרנט של הדברים מחולל מהפכה בחיינו על ידי פיתוח מספר מערכות הניתנות לניטור ולשליטה מרחוק. בפרויקט זה ננצל את כוחו של IoT ונבנה מכשיר ניטור טמפרטורה עם התראות דוא"ל באמצעות Raspberry Pi, MLX90614 ו- PiCamera.
בעבר בנינו גם מדחומים דומים אחרים למדידת טמפרטורת הגוף, תוכלו למצוא אותם כאן.
- מדחום דיגיטלי מבוסס Arduino באמצעות MAX30205
- הקרנת טמפרטורת גוף ללא מגע באמצעות RFID ו- Arduino עם MLX90614
- אקדח מדחום אינפרא אדום ללא מגע באמצעות ארדואינו
- קיר מדחום ללא מגע באמצעות הר באמצעות Arduino
- מדחום חכם באמצעות Arduino עם יישום אנדרואיד
רכיבים נדרשים
כאן אנו משתמשים במערכת ההפעלה Raspberry Pi 3 Raspbian. כל דרישות החומרה והתוכנה הבסיסיות נדונו בעבר, אתה יכול לחפש את זה במבוא Raspberry Pi ו- Raspberry PI LED מהבהב להתחלה, מלבד זה שאנחנו צריכים:
- פטל פי 3 (כל גרסה תהיה בסדר).
- מצלמת פי.
- MLX90614 - חיישן טמפרטורה IR.
- חוטי חיבור.
- קרש לחם.
- ספק כוח (5V, 2A / 3A)
פרויקט זה פשוט אם נחלק את הפרויקט לחלקים.
- הבנה וממשק MLX90614 עם פטל פטל.
- תחילת העבודה עם מצלמת פי.
- הגדרת דוא"ל SMTP באמצעות Raspberry pi.
- פיתוח והבנת קוד סופי.
פטל פטל: פטל פטל הוא מחשב בגודל כרטיס אשראי שתוכנן למטרות חינוכיות. בשל מחירו ומפרטיו המדהימים כמו wifi מובנה, בלוטות 'וכותרת GPIO לתכנות, ומספר האפשרויות האפשריות ליצירת יישום, הוא אומץ על ידי מפתחים וחובבי אלקטרוניקה. אתה יכול לחפש את זה במבוא Raspberry Pi ו- Raspberry PI LED מהבהב כדי להתחיל בתהליך האתחול.
MLX90614 חיישן טמפרטורה IR: ישנם חיישנים רבים הזמינים בשוק שיכולים לתת לנו טמפרטורה ולחות. מה שמייחד את החיישן הזה מכל חיישנים אחרים הוא שהוא יכול לתת לנו טמפרטורת אובייקט וחיישנים אחרים נותנים טמפרטורת סביבה. השתמשנו בחיישן DHT11 וב- LM35 בהרחבה ליישומים רבים בהם יש למדוד לחות או טמפרטורה.
אך כאן להכנת אקדח טמפרטורה שאינו זקוק למגע פיזי ויכול למדוד את טמפרטורת האובייקט במקום טמפרטורת הסביבה, אנו משתמשים ב- MLX90614 מבוסס IR. למידע נוסף על מעגלי חיישני אינפרא אדום ו- IR, עקוב אחר הקישור.
חיישן MLX90614 מיוצר על ידי מערכות משולבות של Melexis Microelectronics, והוא עובד על פי העיקרון של חיישן תרמופיל אינפרא אדום למדידת טמפרטורה. חיישנים אלה מורכבים משתי יחידות המוטמעות באופן פנימי על מנת להפיק את תפוקת הטמפרטורה. היחידה הראשונה היא יחידת החישה שיש לה גלאי אינפרא אדום ובעקבותיה היחידה השנייה המבצעת את חישוב הנתונים בעזרת עיבוד אותות דיגיטלי (DSP). חיישן זה פועל על פי חוק סטפן-בולצמן המסביר את הכוח שמקרין גוף שחור מבחינת הטמפרטורה שלו. במילים פשוטות, כל אובייקט פולט אנרגיית IR ועוצמתה תהיה פרופורציונלית ישירות לטמפרטורה של אותו אובייקט. חיישן MLX90614 ממיר את ערך החישוב ל- ADC של 17 סיביותוניתן לגשת אליו באמצעות פרוטוקול התקשורת I2C. חיישנים אלה מודדים את טמפרטורת הסביבה כמו גם את טמפרטורת האובייקט בכיול הרזולוציה של 0.02 מעלות צלזיוס. למידע נוסף על התכונות של חיישן MLX90614, עיין בגיליון הנתונים של MLX90614.
תכונות של MLX90614:
- מתח הפעלה: 3.6V עד 5V
- טווח טמפרטורות סביבה: -40 ° C עד 125 ° C
- טווח טמפרטורת האובייקט: -70 ° C עד -382.2 ° C
- רזולוציה / כיול: 0.02 מעלות צלזיוס
- 17 סיביות ADC.
- תקשורת I2C.
ממשק MLX90614 עם פטל פטל
ראשית, אנו נוריד את הספריה ואת החבילות הנדרשות בכדי להתממשק בהצלחה עם MLX90614.
שלב 1: הפעלת ההגדרה I2C מ- Raspberry Pi.
הקלד sudo raspi-config ואז עבור לאפשרויות הממשק.
עבור לאפשרות I2C והפעל אותה.
שלב 2: הורד את החבילה / הספריה של MLX90614 על ידי מעבר אל https://pypi.org/project/PyMLX90614/#files, ואז לחץ לחיצה ימנית והעתק את כתובת הקישור.
עבור למסוף RPI והקלד wget והדבק את הקישור שהועתק כמו למטה.
Wget
זה יוריד את הספרייה בשם קובץ ה- zip 'PyMLX90614-0.0.3.tar.gz' . ואז לחלץ את התיקיה עם סיומת שם הקובץ tar -xf או להשתמש בפקודה שלמטה כדי לעשות את אותו הדבר.
זפת -xf PyMLX90614-0.0.3.tar.gz
לאחר מכן עלינו להתקין כמה חבילות נדרשות באמצעות הפקודות הבאות.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
לאחר מכן עבור לתיקייה שחולצה באמצעות התקליטור PyMLX90614-0.0.3 / והפעל את הפקודה.
sudo python setup.py להתקין
לאחר שתסיים לבצע את השלבים, פשוט ממשק את חיישן MLX90614 עם פטל pi באמצעות המעגל המופיע להלן. המעגל של פטל פי MLX90614 להלן תוכנן באמצעות פריץ.
אם החיבורים וההתקנה נעשים כהלכה, אנו יכולים לבדוק אם אנו מקבלים את ערך כתובת החיישן באוטובוס I2C באמצעות הפקודה i2cdetect -y 1 .
אם הכל עובד כמצופה, אנו יכולים לראות את הפלט שלהלן במסוף שלנו.
0x5A מייצג את כתובת החיישן כפי שצוין בגליון הנתונים. קטע גליון הנתונים המראה אותו מופיע להלן.
כעת נפעיל שם קובץ חדש mlxread.py ונכתוב תוכנית לדוגמא לבדיקת הנתונים מהחיישן. הקוד עבור אותו ניתן להלן.
מ smbus2 יבוא SMBus מ mlx90614 יבוא MLX90614 אוטובוס = SMBus (1) חיישן = MLX90614 (אוטובוס, כתובת = 0x5A) הדפס "טמפרטורת סביבה:", sensor.get_ambient () הדפס "טמפרטורת אובייקט:", sensor.get_object_1 () אוטובוס. סגור()
לאחר יצירת הקובץ, נפעיל אותו עם סיומת פיתון python mlxread.py. הפלט שקיבלתי מוצג להלן. הרצתי את התוכנית מספר פעמים כדי לבדוק אם הערכים משתנים כשאני מעביר את היד שלי עליה.
וואה, ממשקנו MLX90614 בהצלחה עם פטל הפטל שלנו כפי שאתה יכול לאשר מהתמונה לעיל.
ממשק מצלמת פי עם פטל פי
שלב 1: הפעלת המצלמה מההגדרה של פטל.
הקלד sudo raspi-config ואז עבור לאפשרויות הממשק.
עבור למצלמה והפעל את המצלמה.
כעת חבר את מודול המצלמה כמוצג להלן.
שלב 2: כדי לבדוק אם המצלמה מחוברת כהלכה, אנו לוקחים תמונת בדיקה ושומרים אותה בשולחן העבודה שלנו (אנו משתמשים בגרסת מערכת הפעלה מלאה של Raspbian GUI)
raspistill -o Desktop / image.jpg
זה יאפשר למצלמה שלך ללחוץ על תמונה עם תמונת השם ולאחסן אותה על שולחן העבודה שלך.
הגדרת דוא"ל SMTP באמצעות Raspberry Pi
בחלק זה נבין כיצד נוכל להגדיר את חשבון GMAIL שלנו לשלוח הודעות התראה ברגע שהטמפרטורה עולה על הערך שהוגדר מראש.
SMTP הוא פרוטוקול העברת דואר פשוט שהוא פרוטוקול שכבת יישומים האחראי על שירות הדוא"ל באמצעות TCP / IP. הוא מספק את היכולת לשלוח ולקבל הודעות דואר אלקטרוני ומנוהל על ידי כוח המשימה להנדסת אינטרנט (IETF).
הדרכה זו עובדת רק עם חשבונות GMAIL וכדי למנוע שגיאות אפשריות, מומלץ להשתמש בחשבון Gmail חדש.
כברירת מחדל, גוגל אינה מתירה למשתמשים לשלוח דוא"ל באמצעות סקריפט פיתון. כדי לגרום לכך לעבוד, עלינו לאפשר כמה אפליקציות פחות מאובטחות על ידי כניסה להגדרות החשבון.
שלב 1: עבור לפינה השמאלית ולחץ על שלי נהל את חשבון Google שלך.
שלב 2: לחץ על אבטחה וגלול מטה אל "פחות גישה לאפליקציה מאובטחת".
שלב 3: אפשר את האפליקציה פחות מאובטחת.
שלב 4: חזור על כך גם עם מזהה הדוא"ל האחר כדי לשלוח / לקבל את הדוא"ל מתסריט הפיתון.
שלב 5: הורד את החבילות הנדרשות.
sudo apt-get install ssmtp sudo apt-get install mailutils
אם אתה מקבל שגיאה בהפעלת הפקודה באמצעות הדבקת העתקות, הקלד אותה באופן ידני.
שלב 6: לאחר סיום ההתקנה של כל הספריות, עלינו לבצע שינויים בקובץ ssmtp.conf שם עלינו להזין את פרטי הדוא"ל של השולח
עבור אל sudo nano /etc/ssmtp/ssmtp.conf
גלול מטה עד הסוף והדבק זאת, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
שיתפתי גם צילום מסך של המסופים שלי לעיונך.
פשוט השתמשתי בקרש לחם כדי ליצור את החיבור שלי, הגדרת החומרה שלי נראית כמו שלו כאשר ה- MLX90614 והמצלמה מחוברים.
קוד פייתון עבור Pi לקריאת טמפרטורה מ- MLX90614 ולשלוח דואר אלקטרוני עם תמונה
תוכנית הפיתון מבצעת את כל הפעולות הדרושות לקריאת נתוני החיישן, השוואתם לערך הסף, לאישור הדוא"ל ואז לשלוח את הדוא"ל עם התמונה המצורפת. בהתחלה, נצטרך הצהרת דוא"ל בספריות, שולח ומקלט. ניתן לשלוח דוא"ל באמצעות smtplib, אך אנו רק רוצים שדוא"ל יהיה מאורגן עם נושא, גוף ושאר קבצים מצורפים, זה נעשה בעזרת הרחבות דואר אינטרנט רב תכליתי (MIME). הקוד השלם נמצא בתחתית עמוד זה.
ייבא RPi.GPIO כ- gpio ייבוא picamera זמן יבוא ייבוא smtplib מאימייל. MIMEMultipart ייבוא MIMEMultipart מאימייל. MIMEText ייבוא MIMEText מאימייל. MIMEBase ייבוא MIMEBase מייבוא דוא"ל מקודדים מ- email.mime.image ייבוא MIMEImage מ- smbus2 ייבוא SMBus מ- mlx90614 ייבוא MLX906
לאחר מכן אנו מגדירים את כתובת הדואר האלקטרוני של השולח, את כתובת הדואר האלקטרוני של המקבל, נושא הדואר האלקטרוני, הגוף והודעת הקובץ המצורף.
fromaddr = "[email protected]" # שנה את כתובת הדוא"ל בהתאם toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "ערך הטמפרטורה עולה על ההתראה" body = "אנא מצא את המצורף תמונה"
לאחר מכן, אנו יוצרים פונקציה באמצעותה אנו יכולים לשלוח דואר אלקטרוני.
def sendMail (נתונים): mail.attach (MIMEText (גוף, 'רגיל')) הדפסת נתונים dat = '% s.jpg'% נתונים הדפסת קובץ מצורף = פתוח (dat, 'rb') תמונה = MIMEImage (attachment.read ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
לאחר מכן, אנו יוצרים פונקציה ללכידת התמונה אשר נשלחת באמצעות דוא"ל וגם מאחסנת את התמונה עם נתונים וזמן.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
לאחר מכן, אנו מבצעים הגדרות עם PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'אוטומטי' camera.brightness = 55
ולבסוף, יש לנו לולאה של זמן (1) שתפעל לאינסוף. הוא יקרא את הנתונים מחיישן הטמפרטורה MLX90614 ואם הטמפרטורה חורגת מהערך שנקבע, אז נקראת פונקציית ה- capture_image () ואז מתקשרת לפונקציית sendMail (data) כדי לשלוח את לכידת התמונה באמצעות דואר אלקטרוני.
מדידת טמפרטורה ושליחת התראת דואר עם PI
כאשר החומרה והתוכנה מוכנים, פשוט הפעל את קוד הפיתון (תן למטה) ב- pi שלך. זה ידפיס את ערך הטמפרטורה שנקרא מהחיישן כמוצג להלן.
אם טמפרטורת האובייקט חורגת מטמפרטורת הסף, אז תוכנית הפיתון שלנו תצלם תמונה מהמצלמה, תשמור אותה על פטל פטל, ותשתף אותה גם באמצעות דואר אלקטרוני. דוגמת דואר אלקטרוני לדוגמה שנשלחה מפי פטל מוצגת למטה.
את העבודה המלאה של הפרויקט ניתן למצוא גם בסרטון המקושר למטה. מקווה שנהנית מהמאמר, אם יש לך שאלות אנא השאיר אותן בתגובות למטה או שתוכל גם להשתמש בפורומים שלנו כדי לפרסם את שאלותיך וליצור קשר עם הקהילה.