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

AirPi - חיישן איכות אוויר: 8 שלבים
AirPi - חיישן איכות אוויר: 8 שלבים

וִידֵאוֹ: AirPi - חיישן איכות אוויר: 8 שלבים

וִידֵאוֹ: AirPi - חיישן איכות אוויר: 8 שלבים
וִידֵאוֹ: Air quality sensor on Raspberry Pi 2024, נוֹבֶמבֶּר
Anonim
AirPi - חיישן איכות אוויר
AirPi - חיישן איכות אוויר

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

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

פרויקט זה נערך על ידי סטודנט ב- Howest Kortrijk, NMCT (New Media and Communication Technology).

שלב 1: חומרים

חומרים
חומרים

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

ללא ההדפסה, הכסף שהוצאתי על פרויקט זה הוא 81,80 יורו.

אלה החומרים שאתה צריך:

מעגל חשמלי:

  • פטל פי 3
  • כרטיס SD 8GB (מינימום)
  • חיישן איכות אוויר CCS811
  • חיישן טמפרטורה ולחות DHT22
  • פוטנציומטר (LCD ניגודיות)
  • LCD 16x2
  • חוטי מגשר נקבה לנקבה
  • LED ירוק ואדום
  • נגדים (2x470ohm ו- 1 4700ohm)

מקרה:

  • הדפס תלת מימד
  • ברגים
  • דבק 2 רכיבים (או דבק חם אחר)
  • כלי לחיתוך חוטים

רק אתה משתמש ב- PCB:

  • מלחם
  • שטף (מקל על זה)
  • פַּח
  • ניסוי PCB 2x4cm

שלב 2: חיבורים

חיבורים
חיבורים

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

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

שלב 3: הדפס תלת מימד

הדפס תלת מימד
הדפס תלת מימד
הדפס תלת מימד
הדפס תלת מימד

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

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

שלב 4: קוד

ניתן למצוא את הקוד לפרויקט זה ב- Github. אם השתמשת בסיכות אחרות (למשל סיכת GPIO נוספת עבור נוריות ה- LED, יהיה עליך להתאים משתנים אלה. יהיו שני סקריפטים של פייתון, web.py לאתר ו- sensor.py כדי לקרוא את החיישנים ולעדכן. אנו נייבא את LCD המחלקה מ- lcd.py.

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

sudo apt-get update && sudo apt-get upgrade

לאחר מכן יהיה עליך להתקין את החבילות הבאות:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

כעת צור סביבה וירטואלית:

me@my -rpi: ~ $ python3 -m pip install -שדרוג pip setuptools גלגל וירטואלי

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv-system-site-packages env me@my-rpi: ~/project1 $ source env/bin/ הפעל (env) me@my-rpi: ~/project1 $ python -m pip התקן את mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

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

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

מכיוון שחיישן CCS811 שימש בכוונה עבור הארדואינו, זה לא יכול לתקשר באמצעות האוטובוס i2c במהירות של פטל הפטל. יהיה עליך להפחית את המהירות לשידור העומס של 10000 (השתמשתי ב 9600) בקובץ התצורה.

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

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

מכיוון שאנו משתמשים בשרת אינטרנט nginx, יהיה עלינו לבטל את ברירת המחדל ולהחליף אותה בתצורה משלנו. לשם כך יש לבצע את השלבים הבאים:

  • העתק conf/nginx ל *זמין באתרים *
  • הסר את הקישור להגדרת ברירת המחדל
  • הוסף קישור לתצורה החדשה
  • הפעל מחדש את nginx כדי לשמור את השינויים

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl הפעל את project1-* me@my-rpi: ~/project1 $ sudo systemctl סטטוס project1-*

Nginx ו- mysql אמורים לפעול כל הזמן. הם מתחילים יחד עם פאי הפטל. סקריפט האינטרנט ותסריט החיישן עדיין לא.

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

sudo systemctl אפשר project1-flask.service

sudo systemctl אפשר project1-sensor.service

שלב 5: מסד נתונים

מאגר מידע
מאגר מידע

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

ניתן למצוא כאן את קובץ ה- SQL, אך כדי לקבל את מסד הנתונים על פטל הפטל, עליך לבצע את השלבים הבאים:

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

me@my-rpi: ~ $ sudo systemctl סטטוס mysql

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

me@my-rpi: ~ $ echo 'הצג טבלאות;' | mysql project1 -t -u project1 -admin -p

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

שלב 6: התחבר ל- Wi-Fi

פתח את קובץ התצורה wpa-supplicant בננו (לא ממש משנה, רק וודא שאתה יכול לעבוד עם עורך הטקסט).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

עבור לתחתית הקובץ והוסף את הדברים הבאים (החלף את שם ה- ssid ושם הסיסמה בשמך):

רשת = {

ssid = "ssid-name" psk = "שם הסיסמה"}

כדי ליצור סיסמה מוצפנת אתה יכול להשתמש ב- wpa_passphrase ופשוט להעתיק אותה ל ppa wpa_supplicant.conf כדי להפוך את הדברים לאבטחים יותר.

wpa_passphrase "ssid-name" "שם הסיסמה"

אם אתה רוצה שהוא יתחבר לרשת Wi-Fi זו באופן אוטומטי וישנם אחרים בקובץ התצורה, הקפד לשנות את העדיפות לרמה גבוהה יותר על ידי הוספת שורה זו לרשת בקובץ התצורה:

עדיפות = 2

אל תשכח להגדיר מחדש את הממשק באמצעות:

wpa_cli -i wlan0 להגדיר מחדש

עכשיו אתה מוכן ומחובר לרשת wifi.

שלב 7: חיבור הכל

לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד
לחבר הכל ביחד

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

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

השלב השלישי הוא הברגת הפי על החלק התחתון. תזדקק לברגים באורך 7 מ"מ בקוטר של 3 מ"מ. לאחר מכן תוכל לדחוף את לוח ה- PCD למקום המסופק בחלקו העליון של החלק התחתון. ניתן לדחוף את חיישן CCS811 למקום המסופק בצד שמאל ולחבר את ה- DHT11 לצלחת הימנית. שניהם מבודדים ומאווררים מספיק, אך לאחר מכן שמנו לב שעדיין מתחמם בפנים. עוד על כך בהמשך.

אז אתה צריך לחבר את נוריות LED לצינור שלהם. עשינו את זה עם דבק דו רכיבי אבל אתה יכול לעשות את זה כרצונך. וודא שהם נדבקים שם.

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

שלב 8: הפעל אותו

תהליך ההפעלה של פרויקט זה קל מאוד:

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

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

מוּמלָץ: