תחנת מזג אוויר RPi עם אתר רספונסיבי: 5 שלבים
תחנת מזג אוויר RPi עם אתר רספונסיבי: 5 שלבים
Anonim
תחנת מזג אוויר RPi עם אתר רספונסיבי
תחנת מזג אוויר RPi עם אתר רספונסיבי
תחנת מזג אוויר RPi עם אתר רספונסיבי
תחנת מזג אוויר RPi עם אתר רספונסיבי

עבור פרויקט בית ספר נאלצנו ליצור מכשיר IoT עם אתר אינטרנט להדמיה של המידע שנאסף בצורה נחמדה. בחרתי לייצר תחנת מזג אוויר המופעלת על ידי Raspberry Pi 3 הפעלת בקבוק לאתר הרספונסיבי, MySQL (MariaDB) עבור מסד הנתונים שלי. ותסריט פייתון לאיסוף מידע עם כל החיישנים שלי. לקח לי בערך שבועיים מההתחלה ועד הסוף עד להשלמתו.

עודדנו אותנו להנחות את שיתוף ההתקדמות שלנו עם שאר קהילת ה- DIY, אז הנה!

שלב 1: בחירת חלקים, כלים וחומרים

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

  • טֶמפֶּרָטוּרָה
  • לחץ אוויר
  • לחות
  • מהירות הרוח
  • מדד UV

להלן כל הכלים, החומרים והחלקים בהם השתמשתי

חלקים:

  • DHT22/AM2302 לקריאת טמפרטורה ולחות. (15 אירו)
  • Adafruit BMP280 ללחץ וטמפרטורה ברומטרית. (12 אירו)
  • Adafruit SI1145 למדידת מדד UV. (10 אירו)
  • מד -רוח מד אנלוגי של Adafruit למדידת מהירות הרוח (50 אירו)
  • MCP3008 להמרת אותות אנלוגיים לדיגיטליים.
  • הנגד של 10kOhm כמשיכה ל- AM2302 שלי.
  • מתאם 9V ל'הפעלת 'מד הרוח
  • מתאם 5V ל- Raspberry Pi
  • Raspberry Pi 3 (כל פי צריך להספיק)

חומרים:

מיכל פלסטיק לאחסון הכל והפיכתו לגשם

כלים:

  • מלחם ופח
  • מולטימטר
  • סיליקון
  • קצת קלטת

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

תוכל למצוא רשימה מפורטת יותר עם חנויות בהן תוכל לקנות הכל, בקובץ ה- PDF למטה:)

שלב 2: חיבור החומרה שלנו

חיבור החומרה שלנו
חיבור החומרה שלנו
חיבור החומרה שלנו
חיבור החומרה שלנו

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

בתרשים אתה יכול לראות שסוללת 9V משמשת כמקור החשמל עבור מד הרוח שלנו, זה משמש בצורה הנכונה ביותר לבדיקה רק מכיוון שזה לא יחזיק יותר מדי זמן, אתה יכול להחליף את סוללת 9V לכל מקור כוח של 7-12V שאתה בחר.

חיישני SI1145 ו- BMP280 שלנו נשלטים שניהם באמצעות פרוטוקול I2C מכיוון שזהו הכי קל לעבודה וזקוק פחות חוטים.

המד הרוחב על הסכימה מוצג כאן כ- LDR מכיוון שיש לו חיווט זהה למדי למד -הרוח ולא הצלחתי למצוא מד -מד אמיתי להרכבת סכמטי הטיפוח שלי:)

שלב 3: חיבור הכל: הגדרת ה- Pi

חיבור הכל: הגדרת ה- Pi
חיבור הכל: הגדרת ה- Pi

קודם כל, עלינו לוודא שאנו מחוברים לאינטרנט.

כדי לעשות זאת במסוף אתה יכול לעבור לקובץ wpa_supplicant שלך על ידי הפעלת הפקודה הבאה: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

בקובץ אתה יכול להוסיף את זה:

network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

תוכל גם לבחור להגדיר את כתובת ה- IP שלך כסטטית לגישה קלה יותר בעתיד. לשם כך עליך לעבור לקובץ dhcpcd.conf על ידי הפעלת הפקודה הבאה: sudo nano /etc/dhcpcd.conf

הוסף את זה לקובץ:

ממשק wlan0static ip_address = 192.168.0.100/24

אז נוודא שהחבילות שכבר מותקנות ב- Pi שלנו מעודכנות במלואן:

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

זה עלול לקחת זמן, אז אל תדאג

יהיה עליך להפעיל את פרוטוקול I2C ו- SPI בתוך תצורת raspi. תוכל לעשות זאת על ידי הפעלת פקודה זו:

sudo raspi-config

לאחר מכן עבור לאפשרויות הממשק והפעל את שניהם, I2C ו- SPI

ראשית עליך ליצור ספרייה בה ברצונך להכניס את הפרויקט שלך (נקרא לזה 'תחנת מזג אוויר'):

תחנת מזג אוויר cd ~ mkdir תחנת מזג אוויר

לאחר מכן הקמנו את הסביבה הווירטואלית של python3:

python3 -m pip להתקין-שדרוג pip setuptools גלגל virtualenvpython3 -m venv-מערכות-אתר-חבילות envsource env/bin/activatepython -m pip התקן mysql-connector-python בקבוק-mysql mysql-connector-python passlib mysql-connector -python-rf

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

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

כעת אנו הולכים להכין את מסד הנתונים שלנו:

אנו עדיין צריכים להגדיר את מסד הנתונים שלנו. תוכל לעשות זאת על ידי הפעלת קובץ הקוד/sql הממוקם בתיקיית 'sql' באופן הבא:

sudo mariadb <sql/db_init.sql

שאילתת ה- sql תהפוך את הטבלאות הדרושות לנו ותגרום לכמה משתמשים להפוך את מסד הנתונים שלנו למעט מאובטח יותר.

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

כדי להתקין את Adafruit_GPIO ו- MyPyDHT תצטרך לעשות עוד כמה דברים. תחילה חזור לתיקיית השימוש ולאחר מכן:

שיבוט git https://github.com/adafruit/Adafruit_Python_GPIO.gitcd התקנת Adafruit_Python_GPIO sudo python3 setup.py

cd..git clone -recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py התקנה

שלב 4: תוכנה / קוד

תוכנה / קוד
תוכנה / קוד
תוכנה / קוד
תוכנה / קוד
תוכנה / קוד
תוכנה / קוד

עלינו להגדיר את הקצה האחורי לתחנת מזג האוויר, הכוללת:

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

תוכל להמשיך ולשבט את קוד הפרויקט שלי מ- Github לתיקיית הפרויקט שלך. עבור אל תיקיית המשתמש שלך והפעל: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

לאחר מכן נווט אל תיקיית conf בתחנת מזג האוויר וכל הקבצים בתיקייה.

שנה את כל המופעים של 'USERNAME' לשם המשתמש שלך

יהיה עליך גם להעתיק את שני קבצי.service ל- systemd ולבדוק אותם כך:

sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service

sudo systemctl מצב תחנת מזג אוויר-*

לאחר מכן עלינו לערוך את תצורת nginx.

sudo cp conf/nginx/etc/nginx/sites-available/weatherstations סודו rm/etc/nginx/sites-enabled/defaultsudo ln -s/etc/nginx/sites-available/weatherstation/etc/nginx/sites-enabled/weatherstationsudo systemctl הפעל מחדש nginx.servicesudo systemctl סטטוס nginx.service

אם הכל הלך טוב אתה אמור להיות מסוגל להריץ את זה ולהדפיס קצת html במסוף:

wget -qO - localhost

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

שלב 5: המארז

המארז
המארז
המארז
המארז
המארז
המארז

עכשיו, כשהכל עובד, עלינו להכניס את כל העניין למשהו.

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

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

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

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

מוּמלָץ: