فهرست مطالب:

RPi Weatherstation با وب سایت پاسخگو: 5 مرحله
RPi Weatherstation با وب سایت پاسخگو: 5 مرحله

تصویری: RPi Weatherstation با وب سایت پاسخگو: 5 مرحله

تصویری: RPi Weatherstation با وب سایت پاسخگو: 5 مرحله
تصویری: 25 Most Ininnovative Personal Transport Vehicles 2024, جولای
Anonim
RPi Weatherstation با وب سایت پاسخگو
RPi Weatherstation با وب سایت پاسخگو
RPi Weatherstation با وب سایت پاسخگو
RPi Weatherstation با وب سایت پاسخگو

برای یک پروژه مدرسه ، ما مجبور بودیم یک دستگاه اینترنت اشیا با یک وب سایت برای تجسم اطلاعات جمع آوری شده به شیوه ای زیبا بسازیم. من تصمیم گرفتم که یک آب و هوا با استفاده از Raspberry Pi 3 Flask برای وب سایت پاسخگو ، MySQL (MariaDB) برای پایگاه داده خود ایجاد کنم. و یک اسکریپت پایتون برای جمع آوری اطلاعات با تمام سنسورهایم. از ابتدا تا انتها تا تکمیل من حدود 2 هفته طول کشید.

ما تشویق شدیم که برای به اشتراک گذاشتن پیشرفت خود با بقیه جامعه DIY دستورالعمل آموزشی ارائه دهیم ، بنابراین اینجاست!

مرحله 1: انتخاب قسمت ، ابزار و مواد

ابتدا باید بفهمم چه نوع سنسورهایی برای ایستگاه هواشناسی ضروری هستند. تصمیم گرفتم همه داده های زیر را اندازه گیری کنم:

  • درجه حرارت
  • فشار هوا
  • رطوبت
  • سرعت باد
  • شاخص اشعه ماوراء بنفش

در اینجا همه ابزارها ، مواد و قطعاتی که استفاده کردم وجود دارد

قطعات:

  • DHT22/AM2302 برای اندازه گیری دما و رطوبت. (15 یورو)
  • Adafruit BMP280 برای فشار و دما فشارسنجی. (12 یورو)
  • Adafruit SI1145 برای اندازه گیری شاخص UV. (10 یورو)
  • بادسنج آنالوگ Adafruit برای اندازه گیری سرعت باد (50 یورو)
  • MCP3008 برای تبدیل سیگنال های آنالوگ به دیجیتال.
  • مقاومت 10 کیلو اهم به عنوان کشش برای AM2302 من.
  • آداپتور 9V برای "تغذیه" بادسنج
  • یک آداپتور 5V برای رزبری پای
  • Raspberry Pi 3 (هر Pi باید کافی باشد)

مواد:

یک ظرف پلاستیکی برای نگهداری همه چیز و ضد باران بودن آن

ابزارها:

  • لحیم کاری آهن و قلع
  • مولتی متر
  • سیلیکون
  • مقداری نوار

بنابراین در مجموع تمام سنسورها حدود 85 یورو برای من هزینه داشتند ، که بسیار تند است ، اما من واقعاً می خواستم یک بادسنج مناسب را در نظر بگیرم ، بنابراین فکر می کنم ارزش آن را دارد.

شما می توانید لیست دقیق تری را با فروشگاه هایی که می توانید همه چیز را در آنها خریداری کنید ، در pdf زیر پیدا کنید:)

مرحله 2: اتصال سخت افزار ما

اتصال سخت افزار ما
اتصال سخت افزار ما
اتصال سخت افزار ما
اتصال سخت افزار ما

البته ما باید سنسورهای خود را به رزبری پای خود متصل کنیم. در بالا می توانید شماتیک برجسته ای را مشاهده کنید که می توانید برای اتصال همه چیز به درستی دنبال کنید.

در شکل کلی می بینید که یک باتری 9 ولت به عنوان منبع تغذیه بادسنج ما استفاده می شود ، این دستگاه به درستی برای آزمایش استفاده می شود ، زیرا طول نمی کشد ، شما می توانید باتری 9 ولت را برای هر منبع تغذیه 7-12 ولت جایگزین کنید. انتخاب کنید.

سنسورهای SI1145 و BMP280 ما هر دو با استفاده از پروتکل I2C کنترل می شوند ، زیرا این آسان ترین کار با آن است و به سیم های کمتری نیاز دارد.

بادسنج روی شماتیک به صورت LDR در اینجا نشان داده می شود ، زیرا سیم کشی تقریباً مشابه بادسنج دارد و من نمی توانم یک بادسنج واقعی برای قرار دادن طرحواره خیره کننده خود پیدا کنم:)

مرحله 3: اتصال همه چیز: تنظیم Pi

اتصال همه چیز: تنظیم Pi
اتصال همه چیز: تنظیم Pi

اول از همه ، ما باید مطمئن شویم که به اینترنت متصل هستیم.

برای انجام این کار در ترمینال می توانید با اجرای دستور زیر به فایل wpa_supplicant خود بروید: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

در فایل می توانید این را اضافه کنید:

network = {ssid = "Your_Wifi_SSID" psk = "گذرواژه_ی_فای شما" key_mgmt = WPA-PSK

}

همچنین می توانید آدرس IP خود را برای دسترسی آسانتر در آینده به حالت static تنظیم کنید. برای این کار باید با اجرای این دستور به فایل 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 config فعال کنید. با اجرای این دستور می توانید این کار را انجام دهید:

sudo raspi-config

سپس به سراغ گزینه های واسط بروید و هر دو را فعال کنید ، I2C و SPI

ابتدا باید یک دایرکتوری ایجاد کنید که می خواهید پروژه خود را در آن قرار دهید (ما آن را "Weatherstation" نامگذاری می کنیم):

cd ~ mkdir weatherstation cd Weatherstation

سپس محیط مجازی python3 خود را راه اندازی می کنیم:

python3 -m pip install-upgrade pip setuptools wheel virtualenvpython3 -m venv-system-site-packages envsource env/bin/activpython -m pip install mysql-connector-python Flask flask-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 clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

مرحله 4: نرم افزار / کد

نرم افزار / کد
نرم افزار / کد
نرم افزار / کد
نرم افزار / کد
نرم افزار / کد
نرم افزار / کد

ما باید پشت و رو را برای هواشناسی تنظیم کنیم که شامل موارد زیر است:

- یک پایگاه داده mariadb برای ذخیره خواندن سنسور من و برخی موارد جزئی دیگر- یک سرویس flask برای اجرای وب سایت.- سرویس دیگری که فایل Python را اجرا می کند و همه سنسورها را می خواند. در بالا می توانید تنظیمات پایگاه داده بسیار ساده من را مشاهده کنید. جدول کاربران غیر ضروری است ، اما از آنجا که من می خواستم یک سیستم ورود به سیستم داشته باشم ، زیرا من (حتی اگر همه داده ها برای همه کاربران یکسان باشد) تصمیم گرفتم در پایگاه داده خود قرار دهم.

می توانید کد پروژه من را از Github در پوشه پروژه خود کلون کنید. به پوشه کاربری خود بروید و اجرا کنید: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

سپس به پوشه conf در weatherstation و همه فایلهای موجود در پوشه بروید.

همه موارد "USERNAME" را به نام کاربری خود تغییر دهید

شما همچنین باید هر دو فایل.service را برای systemd کپی کرده و آنها را به این شکل آزمایش کنید:

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

sudo systemctl وضعیت آب و هوا-*

سپس باید پیکربندی nginx را ویرایش کنیم.

sudo cp conf/nginx/etc/nginx/sites-available/weatherstationsudo 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 است.

این سنسورها در داخل یک ظرف جداگانه نصب می شوند زیرا باید در هوای آزاد (بدون بارندگی) قرار گیرند ، اما تمشک pi نیازی به آن نیست.

همانطور که می بینید من مقداری سیلیکون به لبه های آن اضافه کردم تا ضد آب شود. من همچنین چند سوراخ در ظرف بالایی حفر کردم تا هوای تازه در آن وارد شود.

امیدوارم از راهنمای من در مورد نحوه ایجاد آب و هوا لذت ببرید ، ممکن است کمی خشن باشد زیرا اولین بار است که چنین راهنمایی را می نویسم ، اما امیدوارم با این وجود دوست داشته باشید:)

توصیه شده: