جدول المحتويات:

محطة الطقس RPi مع موقع ويب سريع الاستجابة: 5 خطوات
محطة الطقس RPi مع موقع ويب سريع الاستجابة: 5 خطوات

فيديو: محطة الطقس RPi مع موقع ويب سريع الاستجابة: 5 خطوات

فيديو: محطة الطقس RPi مع موقع ويب سريع الاستجابة: 5 خطوات
فيديو: [فيلم وثائقي] القصة وراء أول حادث بانديكوت 🦊 2024, شهر نوفمبر
Anonim
محطة الطقس RPi مع موقع ويب متجاوب
محطة الطقس RPi مع موقع ويب متجاوب
محطة الطقس RPi مع موقع ويب متجاوب
محطة الطقس RPi مع موقع ويب متجاوب

بالنسبة لمشروع مدرسي ، كان علينا إنشاء جهاز إنترنت الأشياء مع موقع ويب لتصور المعلومات المجمعة بطريقة لطيفة ، اخترت إنشاء محطة طقس مدعومة من Raspberry Pi 3 تشغيل Flask لموقع الويب سريع الاستجابة ، MySQL (MariaDB) لقاعدة البيانات الخاصة بي ونص بيثون لجمع المعلومات من جميع أجهزة الاستشعار الخاصة بي ، وقد استغرق الأمر حوالي أسبوعين من البداية إلى النهاية حتى الاكتمال.

لقد تم تشجيعنا على تقديم تعليمات لمشاركة تقدمنا مع بقية مجتمع DIY ، لذلك ها هو!

الخطوة 1: اختيار الجزء والأدوات والمواد

في البداية كنت بحاجة إلى معرفة نوع المستشعرات التي كانت ضرورية لمحطة الطقس ، وقررت أنني أريد قياس جميع البيانات التالية:

  • درجة حرارة
  • ضغط جوي
  • رطوبة
  • سرعة الرياح
  • مؤشر الأشعة فوق البنفسجية

إليك جميع الأدوات والمواد والأجزاء التي استخدمتها

القطع:

  • DHT22 / AM2302 لقراءات درجة الحرارة والرطوبة. (15 يورو)
  • Adafruit BMP280 للضغط الجوي ودرجة الحرارة. (12 يورو)
  • Adafruit SI1145 لقياس مؤشر الأشعة فوق البنفسجية. (10 يورو)
  • مقياس شدة الريح التناظري Adafruit لقياس سرعة الرياح (50 يورو)
  • جهاز MCP3008 لتحويل الإشارات التناظرية إلى رقمية.
  • 10kOhm المقاوم كما سحب لأعلى AM2302.
  • محول 9 فولت "لتشغيل" مقياس شدة الريح
  • محول بجهد 5 فولت لجهاز Raspberry Pi
  • Raspberry Pi 3 (أي Pi يجب أن يكفي)

المواد:

وعاء بلاستيكي لتخزين كل شيء وجعله مقاوم للمطر

أدوات:

  • لحام الحديد والقصدير
  • المقياس المتعدد
  • سيليكون
  • بعض الشريط

في المجموع ، كلفتني جميع المستشعرات حوالي 85 يورو ، وهي شديدة الانحدار لكنني أردت حقًا تضمين مقياس سرعة الرياح المناسب لذلك أعتقد أنه يستحق ذلك.

يمكنك العثور على قائمة أكثر تفصيلاً بالمحلات التجارية التي يمكنك شراء كل شيء منها ، في ملف pdf أدناه:)

الخطوة 2: توصيل أجهزتنا

توصيل أجهزتنا
توصيل أجهزتنا
توصيل أجهزتنا
توصيل أجهزتنا

بالطبع سنحتاج إلى توصيل مستشعراتنا بـ Raspberry Pi الخاص بنا. يمكنك أن ترى في الأعلى مخطط فريتز الذي يمكنك اتباعه لتوصيل كل شيء بشكل صحيح.

في المخطط ، يمكنك رؤية استخدام بطارية 9 فولت كمصدر للطاقة لجهاز قياس شدة الريح لدينا ، وهذا أفضل استخدام للاختبار فقط لأنه لن يستمر طويلاً ، يمكنك استبدال بطارية 9 فولت لأي مصدر طاقة 7-12 فولت. يختار.

سيتم التحكم في كل من مستشعرات SI1145 و BMP280 باستخدام بروتوكول I2C نظرًا لأن هذا هو الأسهل في التعامل معه ويحتاج إلى أسلاك أقل.

يظهر مقياس شدة الريح الموجود على المخطط على أنه LDR هنا لأنه يحتوي على أسلاك متطابقة إلى حد كبير مثل مقياس شدة الريح ولم أتمكن من العثور على مقياس شدة حقيقي لأضعه على مخطط فريتز الخاص بي:)

الخطوة 3: توصيل كل شيء: إعداد Pi

توصيل كل شيء: إعداد Pi
توصيل كل شيء: إعداد Pi

بادئ ذي بدء ، علينا التأكد من أننا متصلون بالإنترنت.

للقيام بذلك في الجهاز ، يمكنك الانتقال إلى ملف wpa_supplicant الخاص بك عن طريق تشغيل الأمر التالي: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

يمكنك إضافة هذا في الملف:

شبكة = {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

تحتاج أولاً إلى إنشاء دليل تريد وضع مشروعك فيه (سنسميه "weatherstation"):

cd ~ mkdir weatherstationcd محطة الطقس

ثم قمنا بإعداد بيئتنا الافتراضية python3:

python3 -m pip install - Upgrade pip setuptools wheel virtualenvpython3 -m venv - حزم موقع النظام envsource env / bin / activatepython -m pip install mysql-connector-python flask flask-mysql mysql-connector-python passlib mysql-connector -بيثون- RF

ثم سنحتاج إلى تثبيت بعض الحزم الأخرى اللازمة لجعل كل شيء يعمل بشكل صحيح:

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

الآن سنقوم بإنشاء قاعدة بياناتنا:

على الرغم من ذلك ، ما زلنا بحاجة إلى إعداد قاعدة البيانات الخاصة بنا ، ويمكنك القيام بذلك عن طريق تشغيل ملف code / 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" إلى اسم المستخدم الخاص بك

ستحتاج أيضًا إلى نسخ كل من ملفات الخدمة. إلى 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 status- *

نحتاج بعد ذلك إلى تعديل ملف التكوين 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 - المضيف المحلي

كل شيء يجب أن يعمل بشكل جيد الآن يمكنك تصفح عنوان IP الخاص بـ Raspberry Pi الذي حددناه في البداية ويتم الترحيب بك بشاشة تسجيل الدخول.

الخطوة 5: الضميمة

الضميمة
الضميمة
الضميمة
الضميمة
الضميمة
الضميمة

الآن بعد أن نجح كل شيء ، نحتاج إلى وضع كل شيء في شيء ما.

اخترت صندوقًا بلاستيكيًا بسيطًا بغطاء شفاف ، حيث تم تركيب مقياس شدة الريح فوقه ، وكذلك حاوية صغيرة ثانوية تحتوي على مستشعرات DHT22 و BMP280.

يتم تثبيت هذه المستشعرات داخل حاوية منفصلة لأنها تحتاج إلى أن تكون في الهواء الطلق (دون أن تمطر عليها الأمطار) ، ولكن ليس هناك حاجة إلى توت العليق.

كما ترى ، أضفت بعض السيليكون حول الحواف لجعله مقاومًا للماء ، كما أنني قمت بحفر بعض الثقوب في الحاوية العلوية للحصول على هواء نقي بداخلها.

آمل أن تكون قد استمتعت بدليلي حول كيفية بناء محطة طقس ، فقد يكون الأمر صعبًا بعض الشيء حول الحواف نظرًا لأنها المرة الأولى التي أكتب فيها دليلًا كهذا ، ولكن آمل أن تكون قد أحببت ذلك على الرغم من ذلك:)

موصى به: