תוכן עניינים:
- אספקה
- שלב 1: הגדרת פטל פטל
- שלב 2: חיבור וחיבור Rpi אלחוטי לרשת המקומית שלך
- שלב 3: חיישן DS18B20 (טמפרטורה)-חוט אחד
- שלב 4: MCP3008 - חישה אנלוגית
- שלב 5: חומרה
- שלב 6: יצירת מאגר מידע של Mariadb
- שלב 7: קוד Github ובדיקה
- שלב 8: הפעל קוד בעת אתחול
- שלב 9: הגדרת אתר
- שלב 10: אופציונלי - אב טיפוס מיניאטורי
וִידֵאוֹ: פרויקט TheAir - חיישן גז: 10 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
פחמן חד חמצני ופחמן דו חמצני, המכונים גם 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 -> לחבר את כבל ה- ethernet בין המחשב ל- Rpi.
-
התחל מרק ומלא את זה:
- שם מארח (או כתובת IP): 169.254.10.1
- נמל: 22
-
מסוף צץ ואתה מקליד את שם המשתמש והסיסמה המוגדרים כברירת מחדל:
- שם משתמש: pi
- סיסמא: פטל
כעת, לאחר שאנו מחוברים מקומית ל- rpi, אנו רוצים של- Rpi יהיה חיבור ל- wifi שלך.
- תוספת: הקלד "sudo raspi-config"
- כאן יהיה עליך לשנות סיסמה עבור משתמש pi (סיבות בטיחות)
- לאחר מכן עבור אל אפשרויות לוקליזציה -> שנה זמן (בחר את הזמן הנכון) -> לאחר מכן עבור אל ארץ Wifi -> בחר מדינה.
- סגור את raspi-config ואתחל מחדש.
- כאשר אתה מחובר, עשה לעצמך זמני משתמש -> sudo -i
-
כתוב פקודה זו כדי להוסיף את הרשת שלך ל- 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 הדורש חוט אחד אשר לא אסביר מדוע אך אסביר כיצד לגרום לו לפעול לפחות.
לשם כך עלינו לחזור ל- raspi-config ב- Rpi, המסך הכחול והנחמד.
- עבור אל אפשרויות ממשק
- בחר 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, עלינו גם לשנות את ממשק 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 ב- 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 ובדיקה
אנחנו מתקרבים לסוף הפרויקט.
לפני שנקבל את הקוד, נצטרך לייבא כמה מודולים ל- 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: אופציונלי - אב טיפוס מיניאטורי
מסיבות בדיקה יצרתי אב טיפוס של קופסה עם כל החומרה שבתוכה כדי שאוכל לראות אם הכל עובד בהזמנה.
בדרך כלל הפרויקט הזה יתבצע בקנה מידה גדול יותר. לדוגמה: חדר, בית, מפעל, חנות וכן הלאה …
אבל ברור לפני שמתחילים לעשות חורים בקירות (חרוז נחמד). קודם כל אנחנו רוצים לראות אם זה פשוט עובד. אתה לא באמת צריך ליצור קופסה לבדיקה, אבל זה תמיד כיף לעשות קצת יצירה.
הנה הדוגמה שלי.
מוּמלָץ:
LinGollower HoGent - פרויקט סינתזה: 8 שלבים
Linefollower HoGent - Project Synthes: Voor het vak syntesproject project kregen we de mission a linefollower to make. במדריך זה ניתן ללמד איך לעשות זאת, ולנגד כמה בעיות אני יכול להשתמש בו
פרויקט מייצב גימבל: 9 שלבים (עם תמונות)
פרויקט מייצב גימבל: כיצד להכין גימבל למד כיצד להכין גימבל דו-ציריים למצלמת האקשן שלך בתרבות של היום כולנו אוהבים להקליט וידאו ולתפוס את הרגעים, במיוחד כשאתה יוצר תוכן כמוני, בטוח שהתמודדת עם הנושא של וידיאו כל כך מטלטל
ECG אוטומטי- פרויקט גמר BME 305 אשראי נוסף: 7 שלבים
אק"ג אוטומטי- פרויקט גמר BME 305 אשראי נוסף: קרדיוגרמה (א.ק.ג או א.ק.ג.) משמשת למדידת האותות החשמליים המופקים על ידי לב פועם והיא ממלאת תפקיד גדול באבחון ובפרוגנוזה של מחלות לב וכלי דם. חלק מהמידע המתקבל מא.ק.ג כולל את הקצב
פרויקט "מוכן מוכן" - שליטה על פרויקט "פונקציות כוח לגו": 9 שלבים
"Ready Maker" - שליטה על פרויקט "פונקציות כוח הלגו": למד כיצד לשלוט בלגו " פונקציות כוח " רכיבים עם לוח Arduino ובונה את הפרויקט שלך ב " Ready Maker " עורך (אין צורך בקוד) לשליטה מרחוק בדגם שלך
מבער מופעל באמצעות USB! פרויקט זה יכול להישרף מפלסטיק / עץ / נייר (פרויקט מהנה חייב להיות עץ דק מאוד): 3 שלבים
מבער מופעל באמצעות USB! פרויקט זה יכול להישרף מפלסטיק / עץ / נייר (פרויקט מהנה חייב להיות עץ דק מאוד): אל תעשה זאת באמצעות USB !!!! גיליתי שזה יכול להזיק למחשב שלך מכל התגובות. המחשב שלי בסדר גמור השתמש במטען טלפון של 600ma 5v. השתמשתי בזה וזה עובד מצוין ושום דבר לא יכול להינזק אם אתה משתמש בתקע בטיחות כדי לעצור את החשמל