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

פרויקט TheAir - חיישן גז: 10 שלבים
פרויקט TheAir - חיישן גז: 10 שלבים

וִידֵאוֹ: פרויקט TheAir - חיישן גז: 10 שלבים

וִידֵאוֹ: פרויקט TheAir - חיישן גז: 10 שלבים
וִידֵאוֹ: פרויקט ונוס: ב-10 דקות 2024, יולי
Anonim
TheAir - פרויקט חיישן גז
TheAir - פרויקט חיישן גז

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

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

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

אספקה

  • פטל פי 3+
  • מטען מיני-USB 5V/2.5A
  • כרטיס מיקרו אס די
  • חיישנים

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (טמפרטורה)
  • מאוורר 2 x 12V DC
  • 2 x טרנזיסטורים 2n2222
  • תצוגת LCD 16*2
  • לחץ על הכפתור
  • MCP3008
  • ממיר רמות לוגי
  • כבל אתרנט (מסיבות התקנה)

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

הגדרת פטל פטל
הגדרת פטל פטל
הגדרת פטל פטל
הגדרת פטל פטל

לפני עבודה עם ה- Rpi, נזדקק לתוכנה כלשהי.

  • WinSCP או FilleZilla (אופציונלי אם ברצונך להעביר קבצים מהמחשב שלך ל- Rpi)
  • דיסק Win32 או Etcher (שאתה מעדיף יותר)
  • מרק או MobaXterm (שאתה מעדיף יותר)
  • תמונה מסוג Raspbian עם שולחן עבודה

לפני שנתחיל ברצוני להזכיר כי בעת ביצוע הדרכה זו, כשאני בוחר תוכנית על פני השנייה, אין זה אומר שאני ממליץ עליה. לדוגמא אני אוהב להשתמש באצ'ר כי יותר ידידותי למשתמש אבל ל- Win32 יש אפשרות לבצע גיבויים. עכשיו זה מחוץ למערכת שלי, נתחיל.

אם כבר יש לך Rpi המחובר לרשת ה- wifi שלך, דלג לשלב 3.

ראשית נשתמש באצ'ר כדי לשים את התמונה Raspbian על כרטיס ה- SD שלך. עכשיו לפני שנשלוף את כרטיס ה- sd, אנחנו הולכים לשנות כמה "דברים" בקובץ cmdline.txt, שניתן למצוא אותו בתמונה. פתח את קובץ ה- txt -> הוסף שורה זו "ip = 169.254.10.1" (ללא מרכאות) בסוף השורה (הכל בשורה אחת) -> שמור קובץ

שנית צור תיקייה ריקה בשם "ssh" במחיצת האתחול (ללא מרכאות).

לאחר מכן תוכל להוציא בבטחה את ה- Microsd ולהכניס אותו ל- Rpi.

הסיבה ל- IP הסטטי המקודד הקשה היא להקל על החיבור ל- Rpi. אם מסיבה כלשהי ל- Rpi אין ip עם DHCP אז אתה משתמש בקלות ב- ipic סטטי.

שלב 2: חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך

יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
יצירת חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך

אנו הולכים לאתחל את ה- Rpi -> לחבר את כבל ה- ethernet בין המחשב ל- Rpi.

  1. התחל מרק ומלא את זה:

    • שם מארח (או כתובת IP): 169.254.10.1
    • נמל: 22
  2. מסוף צץ ואתה מקליד את שם המשתמש והסיסמה המוגדרים כברירת מחדל:

    • שם משתמש: pi
    • סיסמא: פטל

כעת, לאחר שאנו מחוברים מקומית ל- rpi, אנו רוצים של- Rpi יהיה חיבור ל- wifi שלך.

  1. תוספת: הקלד "sudo raspi-config"
  2. כאן יהיה עליך לשנות סיסמה עבור משתמש pi (סיבות בטיחות)
  3. לאחר מכן עבור אל אפשרויות לוקליזציה -> שנה זמן (בחר את הזמן הנכון) -> לאחר מכן עבור אל ארץ Wifi -> בחר מדינה.
  4. סגור את raspi-config ואתחל מחדש.
  5. כאשר אתה מחובר, עשה לעצמך זמני משתמש -> sudo -i
  6. כתוב פקודה זו כדי להוסיף את הרשת שלך ל- Rpi (קוד מתחת לרשימה)

    • password = "password" (עם מרכאות)
    • שם רשת = "SSID"
    • זכור להשתמש בכפול >>! חשוב!

הד "סיסמא" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

עכשיו הפעל מחדש

בעת חיבור מחדש, בדוק את ה- IP שלך על ידי הקלדת:

ifconfig

ובדוק wlan0, ליד inet.

כעת, כשיש לנו חיבור לאינטרנט, נוכל לבצע עדכון "מהיר".

עדכון sudo apt

sudo apt dist -upgrade -y

זה עשוי לקחת זמן.

שלב 3: חיישן DS18B20 (טמפרטורה)-חוט אחד

חיישן DS18B20 (טמפרטורה)-חוט אחד
חיישן DS18B20 (טמפרטורה)-חוט אחד
חיישן DS18B20 (טמפרטורה)-חוט אחד
חיישן DS18B20 (טמפרטורה)-חוט אחד

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

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

לשם כך עלינו לחזור ל- raspi-config ב- Rpi, המסך הכחול והנחמד.

  1. עבור אל אפשרויות ממשק
  2. בחר 1-Wire ובחר אפשר.

בוצע…

רק צוחק.

כעת נצטרך להתאים /boot/config.txt

sudo nano /boot/config.txt

הוסף שורה זו בתחתית.

# אפשר onewire

dtoverlay = w1-gpio

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

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

cd/sys/bus/w1/devices/w1_bus_master1

ls

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

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

שלב 4: MCP3008 - חישה אנלוגית

MCP3008 - חישה אנלוגית
MCP3008 - חישה אנלוגית
MCP3008 - חישה אנלוגית
MCP3008 - חישה אנלוגית

כפי שעשינו שינוי עבור חיישן הטמפרטורה, עלינו גם לבצע כמה שינויים עבור החיישנים האחרים מכיוון שהם צריכים לקרוא בנתונים אנלוגיים. כאן המקום בו שימושי MCP3008, עלינו גם לשנות את ממשק SPI.

sudo raspi-config

עבור אל אפשרויות ממשק -> בחר SPI -> הפעל.

ואז סיים.

שלב 5: חומרה

לא סיימנו לגמרי את ה- Rpi אבל מספיק כדי שנוכל להתחיל לבנות ולחבר את החומרה.

כמה עצות היא לבדוק היטב את החיבורים שלך בעת הבנייה כדי לוודא שלא … לפוצץ את ה- Rpi.

כמו כן, בתרשים תוכל להבחין שחלק מהרכיבים נמצאים בו רק פעם אחת למרות שנעבוד עם יותר מאחד מרכיב זהה. זה רק אומר שאתה צריך לחזור על אותו תהליך של בניית אותו רכיב אחד. יש חריג קטן אחד, חיישני mq-x אינם זקוקים לממיר רמות נוסף או MCP3008. פשוט הוסף כבל ירוק נוסף (ב- pdf) לממיר הרמות ול- MCP3008.

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

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

אם אין לך אחד כמוני, תצטרך לעשות זאת כך, מאוורר אחד = טרנזיסטור אחד, 2 מאווררים = 2 טרנזיסטורים וכן הלאה (לכל מאוורר יש טרנזיסטור + דיודה משלו כמו ב- pdf).

יהיה עליך גם להוסיף קוד ל- app.py ב- backend_project בהמשך שלב 7: קוד Git….

שלב 6: יצירת מאגר מידע של Mariadb

יצירת מאגר מידע של Mariadb
יצירת מאגר מידע של Mariadb

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

ראשית, הורד את Mariadb ב- Rpi.

sudo apt-get להתקין mariadb-server

לאחר ההתקנה, בואו להשתמש בו.

mysql -u root

הסיסמה ריקה, אז אין מה להקליד. לחץ אנטר.

בואו ליצור משתמש עכשיו.

צור משתמש 'משתמש'@'%' המזוהה על ידי 'userdb';

להעניק את כל ההפרשות ב *. * ל'משתמש '@'%'עם אופציית GRANT;

זכויות הדחה;

הקש Ctrl + C כדי לצאת ולבצע הפעלה מחדש מהירה של השירות:

sudo service mysql הפעלה מחדש

התחבר עם שם משתמש: משתמש וסיסמה: userdb:

mysql -u משתמש -p

הגיע הזמן ליצור את מסד הנתונים עכשיו.

צור DATABASE project_db Default Default SET utf8;

השתמש ב- project_db

צור טבלה "historiek" (פירושה היסטוריה).

צור טבלה אם אינה קיימת 'historiek' ('id' INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;

וואלה, מסד הנתונים עשוי.

שלב 7: קוד Github ובדיקה

קוד Github ובדיקה
קוד Github ובדיקה

אנחנו מתקרבים לסוף הפרויקט.

לפני שנקבל את הקוד, נצטרך לייבא כמה מודולים ל- Rpi:

pip3 התקן את Flask_MySQL

pip3 התקן flask-socketio

pip3 להתקין -בבקבוקונים -U

pip3 להתקין spidev

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

שיבוט git

בדוק אם התיקייה קיימת עם:

ls

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

עבור אל backend_project וטמפרטורה באמצעות הפקודה cd.

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

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

הטרמינל עם תיקיית הטמפרטורה, תוכלו למצוא app.py. אנחנו הולכים לפתוח אותו.

sudo nano app.py

חפש את הפונקציה שנקראת "def temperatur ():", שם יהיה עליך להחליף את "**" במספרים שכתבת. במקרה שלי הייתי מקבל את זה בשורת הקוד (כל מספר הוא ייחודי).

sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave

זמן הבדיקה. שני המסופים בתיקיית backend_project ובטמפרטורה, הקלד:

python3 app.py

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

טוב, אם לא חזור לשלב 5.

כעת עלינו להוסיף קוד כפי שציינתי ל- app.py ב- backend_project. כדי להקל, יצרתי דוגמה לכך בקוד. כל שורה של קוד תגובה שיש בה "fan1", אל תגיב על השורות האלה וואלה, עכשיו אתה יכול להשתמש בשני אוהדים.

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

שלב 8: הפעל קוד בעת אתחול

הפעל קוד בעת אתחול
הפעל קוד בעת אתחול

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

לשם כך הקלד:

sudo nano /etc/systemd/system/temperature.service

העתק והדבק את זה עבור temperature.service:

[יחידה] תיאור = טמפרטורת שירות לאחר = multi-user.target

[שירות] סוג = פשוט

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

הפעלה מחדש = כישלון

RestartSec = 60s

[להתקין]

WantedBy = multi-user.target

סגור ועשה שוב אך לאחר מכן עבור backend_project.service:

טקסט פתוח ראשון:

sudo nano /etc/systemd/system/backend_project.service

ואז שוב העתק והדבק:

[יחידה] תיאור = שירות backend_project

אחרי = multi-user.target

[שֵׁרוּת]

סוג = פשוט

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

הפעלה מחדש = כישלון

RestartSec = 60s

[להתקין]

WantedBy = multi-user.target

שמור וסגור.

החלק האחרון הוא הקלדת זה:

sudo systemctl daemon-reload

sudo systemctl לאפשר טמפרטורה. שירות sudo אתחול מחדש

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

שלב 9: הגדרת אתר

כשהורדת את המאגר, היית צריך לקבל גם תיקייה בשם front. כאן נמצא התוכן של האתר.

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

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

cd /Documents /nmct-s2-project-1-TheryBrian

לאחר מכן הקלד:

sudo mv front/var/www/html

כאשר זה נעשה, עבור אל תיקיית html, התכונן לעבודה קצת מייגעת (אשמתי).

cd/var/www/html/

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

דוגמא:

sudo mv css/var/www/html

לאחר מכן מחק את התיקיה הקדמית.

וסיימנו עם הכל.

בהצלחה:).

שלב 10: אופציונלי - אב טיפוס מיניאטורי

אופציונלי - אב טיפוס מיניאטורי
אופציונלי - אב טיפוס מיניאטורי
אופציונלי - אב טיפוס מיניאטורי
אופציונלי - אב טיפוס מיניאטורי

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

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

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

הנה הדוגמה שלי.

מוּמלָץ: