جدول المحتويات:
- الخطوة 1: اختيار الجزء والأدوات والمواد
- الخطوة 2: توصيل أجهزتنا
- الخطوة 3: توصيل كل شيء: إعداد Pi
- الخطوة 4: البرنامج / الكود
- الخطوة 5: الضميمة
فيديو: محطة الطقس RPi مع موقع ويب سريع الاستجابة: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
بالنسبة لمشروع مدرسي ، كان علينا إنشاء جهاز إنترنت الأشياء مع موقع ويب لتصور المعلومات المجمعة بطريقة لطيفة ، اخترت إنشاء محطة طقس مدعومة من 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
بادئ ذي بدء ، علينا التأكد من أننا متصلون بالإنترنت.
للقيام بذلك في الجهاز ، يمكنك الانتقال إلى ملف 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.
يتم تثبيت هذه المستشعرات داخل حاوية منفصلة لأنها تحتاج إلى أن تكون في الهواء الطلق (دون أن تمطر عليها الأمطار) ، ولكن ليس هناك حاجة إلى توت العليق.
كما ترى ، أضفت بعض السيليكون حول الحواف لجعله مقاومًا للماء ، كما أنني قمت بحفر بعض الثقوب في الحاوية العلوية للحصول على هواء نقي بداخلها.
آمل أن تكون قد استمتعت بدليلي حول كيفية بناء محطة طقس ، فقد يكون الأمر صعبًا بعض الشيء حول الحواف نظرًا لأنها المرة الأولى التي أكتب فيها دليلًا كهذا ، ولكن آمل أن تكون قد أحببت ذلك على الرغم من ذلك:)
موصى به:
محطة الطقس NaTaLia: محطة أردينو تعمل بالطاقة الشمسية نفذت بالطريقة الصحيحة: 8 خطوات (بالصور)
محطة الطقس NaTaLia: محطة الطقس Arduino التي تعمل بالطاقة الشمسية نفذت بالطريقة الصحيحة: بعد عام واحد من التشغيل الناجح في موقعين مختلفين ، أشارك خطط مشروع محطة الطقس التي تعمل بالطاقة الشمسية وأشرح كيف تطورت إلى نظام يمكنه حقًا البقاء على قيد الحياة لفترة طويلة فترات من الطاقة الشمسية. إذا تابعت
محطة الطقس ESP8266 التي تعرض البيانات على موقع ويب: 7 خطوات
محطة الطقس ESP8266 التي تعرض البيانات على موقع ويب: ملاحظة: قد تتوفر أجزاء من هذا البرنامج التعليمي بتنسيق فيديو على قناتي على YouTube - Tech Tribe. في هذا الدليل ، سأوضح كيفية إنشاء محطة طقس ترسل البيانات مباشرة إلى موقع الويب الخاص بك . لذلك ، ستحتاج إلى مجالك الخاص (على سبيل المثال:
محطة الطقس RPi والساعة الرقمية: 4 خطوات (بالصور)
محطة الطقس RPi والساعة الرقمية: هذا مشروع سريع وسهل الصنع ، وشاشة عرض رائعة. يعرض كلاً من الوقت وحالة الطقس ودرجة الحرارة. وإذا أعجبك ما تراه ، فاتبعني على Instagram و Twitter (@ Anders644PI) لمواكبة ما أقوم به
PixelOrgan: شريط DotStar LED سريع الاستجابة (مع MicroView): 3 خطوات (بالصور)
PixelOrgan: شريط DotStar LED مستجيب للصوت (مع MicroView): هذا عبارة عن عنصر ضوئي حيث يتم عرض مدخل ميكروفون مدمج على شريط DotStar 72 LED بحيث يمثل مؤشر LED العلوي الارتفاع / المتوسط / المنخفض الحالي leves كـ R / G / B ، وبقية مصابيح LED تمثل القيم السابقة (حتى نحصل على
إنشاء موقع Bookhuddle.com ، وهو موقع لاكتشاف معلومات الكتاب وتنظيمها ومشاركتها: 10 خطوات
إنشاء موقع Bookhuddle.com ، وهو موقع لاكتشاف معلومات الكتاب وتنظيمها ومشاركتها: يصف هذا المنشور الخطوات المتبعة في إنشاء وإطلاق موقع Bookhuddle.com ، وهو موقع ويب يهدف إلى مساعدة القراء على اكتشاف معلومات الكتاب وتنظيمها ومشاركتها. ستنطبق على تطوير مواقع الويب الأخرى