هل فكرت في مراقبة جودة الهواء داخل أو خارج منزلك: أين تعيش وتعمل؟ هذا المشروع ، الذي قمنا
بتدعيم balenaSense ، هو وحدة
لقياس درجة الحرارة والرطوبة والضغط الجوي ونوعية الهواء ، بالإضافة إلى لوحة القيادة التي يمكنك الوصول إليها من أي مكان للاطلاع على إحصائيات موجزة وتتبع الاتجاهات.

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

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


المعدات اللازمة
هنا هو ما تحتاج إلى شراء لهذا المشروع. اعتمادًا على ما إذا كنت تريد استخدام مكواة لحام أم لا ، نختار لوحة استشعار: بعض العمل على الفور ، بينما يحتاج البعض الآخر إلى لحام قليل.

أنا لا أريد لحام
إذا كنت لا تريد لحام ، فستحتاج إلى:
أريد لحام - أعطني!
إذا كنت سعيدًا لالتقاط مكواة لحام ، فستحتاج إلى:
أجهزة استشعار أخرى
إذا كان لديك بالفعل نوعًا من المستشعرات ، فإن هذا المشروع يدعم
Sense HAT مع مكافأة إضافية: ابتسامة على مصفوفة LED (اعتمادًا على جودة الهواء ، بالطبع)!

يمكن طلب بوش BME680 مع الناهض من موردين مختلفين بأسعار مختلفة.
المذكرة. نستخدم في المقالة Pimoroni: هذه اللوحة لها ميزة إضافية وهي أن جهات الاتصال مقطوعة بالترتيب الصحيح لـ Raspberry Pi GPIO. عند استخدام بطاقات أخرى ، يجب التحقق من مطابقة دبابيس ناقل الطاقة والأرض و I2C (SDA و SCL) ، كما هو موضح لاحقًا في الدليل.
البرمجيات
لقد فتحنا مشروع
balena-sense على GitHub ، والذي يحتوي على جميع البرامج والتكوين والرمز الذي تحتاجه لنظام العمل. سنقوم بنشر هذا المشروع على حساب
balenaCloud المجاني لتوزيع جميع البرامج على Raspberry Pi ، وكذلك توفير الوصول عن بعد. لذلك ، سوف تحتاج إلى:
تجميع المعدات
هناك القليل من العمل على واجهة الأجهزة لهذا المشروع. هدفنا هو توصيل لوحة المستشعر بلوحة GPIO على Raspberry Pi.
يتصل الطراز BME680 مع Raspberry Pi عبر حافلة تسمى I2C (العين المربعة) ، وهي حافلة تسلسلية بها سلكان. تسمى هذه الأسلاك اثنين خط التزامن (SCK) وخط البيانات (SDA). بالإضافة إلى السلكين ، من الضروري توفير الطاقة للمستشعر (3.3 فولت أو 3 فولت 3) وتوصيله بالأرض.
إذا اخترت الخيار دون لحام من Pimoroni أو Sparkfun أو باستخدام Sense HAT ، فما عليك سوى توصيل المكونات الجديدة اللامعة بـ Raspberry Pi وسيتم إجراء جميع الاتصالات من أجلك: انتقل إلى الخطوة التالية!
إذا قررت توصيل المستشعر مباشرةً بـ Raspberry Pi باستخدام Pimoroni أو أداة رفع أخرى ، فإن الشيء الرئيسي هو ضمان الاتصال الصحيح لجهات الاتصال الموضحة أعلاه (SDA و SCK و 3 V3 و GND).
موقع مفيد للعمل مع GPIO على Raspberry Pi هو
pinout.xyz ؛ يظهر بوضوح أننا نحتاج إلى دبابيس 1 (3V3 الطاقة) ، 3 (SDA) ، 5 (SCL) و 9 (الأرض). يتوفر GPIO من 40 سنًا بشكل قياسي في Pi 2 والإصدارات الأحدث. إذا كنت تستخدم لوحة Pimoroni ، فستكون جهات الاتصال بالترتيب الصحيح لتوصيل الألواح. لاحظ كيف يطابق النقش الموجود على اللوحة مخطط pinout أعلاه.

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

وبالمثل ، إذا كنت تستخدم مستشعرًا آخر ، حيث لا تتطابق مخططات pinout تمامًا ، فيمكنك توصيل هذه اللوحات بـ Pi باستخدام نفس الطريقة. الشيء الرئيسي هو ضمان الامتثال ل 3 V3 ، SDA ، SCL و GND. إذا كانت اللوحة تحتوي على جهات اتصال لـ SDI و SDO و CS - فيمكنك تجاهلها ، لأنها تستخدم لواجهة SPI بديلة ، والتي لا نستخدمها في هذا المشروع.
في الصور أعلاه ، لدينا Raspberry Pi 3A + ، ولكن Pi Zero مناسب أيضًا كحل أرخص.
تكوين التوت بي
سنقوم بوميض بطاقة SD باستخدام نظام التشغيل balenaOS ، ونعلق على سحابة balenaCloud ، ونضيف أجهزتنا هناك ونهيئ المشروع بحيث يمكن تحديثه بسهولة لاحقًا.
تحتاج أولاً إلى إنشاء حساب balenaCloud. هذا يعني التسجيل وإضافة تطبيق وإضافة جهاز.
الخطوة 1. قم بالتسجيل في balenaCloud
إذا كان لديك بالفعل حساب GitHub أو Google ، فيمكنك استخدامه لتسجيل الدخول دون المرور بعملية
التسجيل .
الخطوة 2. إنشاء التطبيق
أضف التطبيق عن طريق تحديد نوع الجهاز الصحيح و
Starter
كنوع التطبيق ، ثم انقر فوق
Create New Application
. هذا النوع يدعم جميع الخدمات الصغيرة وهو مجاني لما يصل إلى عشرة أجهزة.
بعد ذلك ، سيتم نقلك إلى لوحة القيادة للتطبيق المنشأ حديثًا ، حيث يمكنك الانتقال إلى الخطوة التالية وإضافة الجهاز. يمكنك إعطاء التطبيق اسمًا تعسفيًا ، لكنك ستحتاج إليه لاحقًا في الدليل عندما نكتب الرمز.
الخطوة 3. إضافة الجهاز وتمهيد نظام التشغيل
بعد إنشاء التطبيق ، يمكنك إضافة جهاز إلى هذا التطبيق بالنقر فوق الزر "
إضافة جهاز" الأخضر. عند إضافة جهاز ، حدد نوع الجهاز الصحيح. إذا كنت تتصل بشبكة لاسلكية ، فيمكنك ضبط WiFI SSID وكلمة مرور.
ملاحظة: يشار إلى Raspberry Pi 3 في الرسوم المتحركة ، ولا تنسَ تحديد النوع الصحيح لجهازك!

تقوم هذه العملية بإنشاء صورة مخصصة للتطبيق ونوع الجهاز ، بما في ذلك إعدادات الشبكة ، إذا كان محددًا.
ملاحظة: بالنسبة للمبتدئين ، من الأفضل اختيار صورة مطورة لإجراء بعض الاختبارات واستكشاف الأخطاء وإصلاحها. لمزيد من المعلومات حول الاختلافات بين الصور التطوير والإنتاج ، انظر
هنا . إذا كنت متأكدًا من أنه يمكنك البدء في نشر صورة إنتاج الآن - من فضلك.
الخطوة 4. تسجيل بطاقة SD وجهاز التمهيد
عندما يتم تحميل صورة نظام التشغيل ، حان وقت وميض بطاقة SD. يمكنك استخدام
balenaEtcher لهذا الغرض.

بعد اكتمال العملية ، أدخل بطاقة SD في Raspberry Pi وقم بتوصيل مصدر الطاقة.

عند بدء تشغيل الجهاز لأول مرة ، يتصل الجهاز بلوحة القيادة balenaCloud ، وبعد ذلك يمكنك رؤيته في القائمة عبر الإنترنت والانتقال إلى الخطوة التالية.
استكشاف الأخطاء وإصلاحها: يجب أن يظهر الجهاز على اللوحة في بضع دقائق. إذا لم يظهر ، حدث خطأ ما. تحتوي الوثائق على
دليل شامل
لاستكشاف الأخطاء وإصلاحها يحتوي على الكثير من المعلومات حول سبب حدوث ذلك. إذا لم تساعد الوثائق ، فيرجى الاتصال
بالمنتديات .
نشر البرمجيات
عند إعداد برنامج Raspberry Pi وتنزيله وتوصيله بـ balenaCloud ، تكون جاهزًا لتثبيت رمز التطبيق على الجهاز.
تثبيت أدوات balena CLI على محطة عمل
يسمح لك BalenaCloud بنقل برنامج / رمز التطبيق عن بعد إلى Raspberry Pi والأجهزة الأخرى. لجعل هذا ممكنًا ، يجب أن تفي محطة العمل الخاصة بك (وليس Raspberry Pi) ببعض متطلبات الحد الأدنى من البرامج.
ملاحظة: لنشر هذا المشروع بنجاح ، لن تحتاج إلى تشغيل أي أوامر على الجهاز نفسه ، إما من خلال SSH أو من لوحة التحكم balenaCloud. كل شيء يتم عن بعد!
إذا كان لديك بالفعل (أو يمكنك تكوين)
npm على جهاز الكمبيوتر الخاص بك ، فهذه هي أسرع طريقة لتشغيل أدوات CLI. هناك أيضًا
ثنائيات لنظام Windows و macOS و Linux .
ملاحظة: إذا كنت قد قمت بالفعل بتثبيت هذه الأدوات لمشاريعنا الأخرى ، يمكنك تخطي هذا الجزء والانتقال مباشرة إلى الخطوة التالية.
تصف
وثائق أدوات CLI تثبيت حزمة npm وتكوينها وكذلك الثنائيات.
عند تثبيت CLI وتشغيله ، فإن الخطوة الأولى هي تسجيل الدخول إلى balenaCloud عن طريق تشغيل أمر
balena login
:


عندما يكون هناك CLI عاملة مسجلة في الحساب ، فأنت جاهز لتثبيت البرامج على Raspberry Pi.
تنزيل مشروع من جيثب
الخطوة التالية هي
تنزيل رمز هذا المشروع من GitHub .
سيقوم الزر الأزرق بتحميل ملف zip الخاص بالمشروع ، ولكن إذا كنت معتادًا على Git ، فيمكنك استخدام
git clone
بالطريقة المعتادة.
تثبيت على التوت بي
منذ تثبيت CLI وأحدث رمز ، يمكنك تشغيل هذا الرمز على balenaCloud باستخدام أمر واحد. هناك ، يتم تجميع صورة Docker وتكوينها ، والتي سيتم تشغيلها على جهازك.
من دليل المشروع بعد
balena push <appName>
، قم بتشغيل الأمر
balena push <appName>
، حيث يكون appName هو اسم التطبيق المحدد في بداية الدليل. على سبيل المثال ،
balena push balenaSense
.
إذا تم كل شيء بشكل صحيح ، بعد بضع دقائق ، يجب أن تعرض شاشة معلومات جهازك على لوحة التحكم الخدمات قيد التشغيل ، واحدة لكل مكون من مكونات البرنامج ، شيء مثل هذا:

في المرة الأولى قد يستغرق التنزيل عدة دقائق (حسب سرعة اتصالك بالإنترنت) ، ولكن بعد ذلك فقط يتم تنزيل التغييرات في الحاوية ، لذلك يحدث كل شيء بشكل أسرع.
ملاحظة: عند بدء تشغيل التطبيق لأول مرة (وتستخدم BME680 ، وليس Sense HAT) ، ينفذ المستشعر "حرق" لمدة خمس دقائق تقريبًا. خلال هذه الفترة ،
لن تؤخذ قراءات وإدراجها في قاعدة البيانات. سيقوم التطبيق بتسجيل العد التنازلي ، والذي يتم عرضه في لوحة balenaCloud:

عندما يصل العدد إلى الصفر ، سترى الرسالة "بدء الحلقة ...". بعد ذلك ، سيتم أخذ القراءات وإدراجها في قاعدة البيانات كل 10 ثوانٍ.
عرض لوحة القيادة
آمل أن تكون قد تومض الجهاز ، متصلاً بالشبكة وبدأت دون أي مشاكل. واحدة من المزايا الكبيرة لاستخدام حساب balenaCloud المجاني هي ميزة
Public Device URL
.

قم بتنشيط رمز التبديل هذا وانقر فوق أيقونة السهم الأزرق للوصول إلى لوحة القيادة. يمكنك مشاركة هذا الرابط أو وضع إشارة مرجعية عليه على هاتفك أو على جهاز آخر. أثناء اتصال جهاز balenaSense والعمل ، يمكنك إلقاء نظرة على لوحة القيادة من أي مكان!

إذا كنت لا ترغب في تمكين الوصول العام ، فلا يزال بإمكانك عرض لوحة القيادة من شبكتك المحلية عن طريق عنوان IP ، كما يمكن رؤيته في لقطة الشاشة أعلاه. ستكون مختلفًا عنك ، ولكن ما عليك سوى إدخال
http://<ip->
في المتصفح ، وسيظل بإمكانك الوصول إلى لوحة القيادة إذا كنت على نفس الشبكة مثل الجهاز. على سبيل المثال ، للوصول إلى جهازي ، أود إدخال
http://10.1.231.36
.
إذا كنت ترغب في تسجيل الدخول إلى Grafana واللعب باستخدام الإعدادات ، فإن بيانات الاعتماد الافتراضية هي
admin
والمسؤول.
كيف يعمل؟
يحتوي هذا المشروع على ثلاثة مكونات رئيسية وثلاثة خدمات. هذه الأسماء موجودة على لوحة القيادة balenaCloud:
- InfluxDB - قاعدة بيانات تستخدم لتخزين قراءات أجهزة الاستشعار
- Sensor - مكتبة ورمز Python للوصول إلى المستشعر ، أخذ القراءات وحفظها في قاعدة البيانات
- Grafana - تستخدم لإنشاء لوحة معلومات مع الرسوم البيانية والتقارير
يقوم مستشعر BME680 من بوش بالكشف عن درجة الحرارة والرطوبة والضغط ومقاومة الغاز. تعمل مجسات درجة الحرارة والرطوبة والضغط خارج الصندوق مباشرة ، ولكن قراءات مقاومة الغاز وحدها ليست مفيدة للغاية. هذه هي مؤشرات التغيرات في تكوين الهواء. عندما يبدأ المستشعر ، فإنه يحدد الأساس ، ثم يراقب التغييرات. وترد المؤشرات الإرشادية لجودة الهواء في المئة وتأخذ في الاعتبار تأثير الرطوبة ومقاومة الغاز.
إذا كنت تستخدم Sense HAT ، حيث لا يوجد مستشعر لمقاومة الغاز ، فإننا نقدر قراءات جودة الهواء استنادًا إلى قيم درجة الحرارة والرطوبة المستهدفة.
ما التالي؟
أتمنى الآن أن تكون قد أطلقت المشروع بالكامل ، وتمكنت من الوصول إلى لوحة القيادة ، وأخذت القراءات وبدأت في ملء قاعدة البيانات الخاصة بك. اذكر بعض الأشياء الأكثر أهمية.
تغيير كلمة المرور
إذا قمت بفتح الجهاز للوصول العام ، فمن المستحسن تغيير كلمة المرور لجرافانا.

قمنا بإعداد النظام باستخدام اسم المستخدم وكلمة مرور
admin
الافتراضية. لتغييرها ، قم بتسجيل الدخول إلى Grafana باستخدام الزر الموجود في الركن الأيسر السفلي من اللوحة. سيُطلب منك تغيير كلمة المرور عند تسجيل الدخول لأول مرة.
تخصيص لذوقك
يحتوي برنامج Grafana للوحة القيادة والتقارير على الكثير من معلمات التكوين والإعدادات. لقد أنشأنا لوحة أساسية تعرض مخططًا ورسمًا بيانيًا لكل خيار من خيارات القياس الأربعة.

يمكنك تخصيص كل لوحة Grafana بالمرور فوق العنوان والانتقال إلى التحرير. أوصي باللعب بالإعدادات - لا يتم حفظ التغييرات في لوحة القيادة تلقائيًا ، لذلك إذا ارتكبت خطأ ، ما عليك سوى إعادة تحميل الصفحة وسيعود كل شيء إلى شكله الأصلي. إذا كنت ترغب في حفظ التغييرات ، فانقر فوق
حفظ أعلى لوحة التحكم ، وسيتم حفظ جميع الإعدادات على جهازك.

يمكنك أيضا تكوين أجهزة الاستشعار. على سبيل المثال ، على الرسم البياني لمقياس الضغط ، أنشأنا عدة نطاقات وقيم نصية أساسية بدلاً من الأرقام. كل هذا يتغير لذوقك!
إسكان
هذه المجسات مثالية لوضعها في
كشك للأرصاد الجوية ، والذي يحمي المجسات من أشعة الشمس والحرارة المشعة. إذا كنت تتحكم في البيئة في الغرفة ، فهذا ليس مهمًا للغاية ، ولكن إذا تم تثبيت المستشعر في الهواء الطلق ، فإن تحديد موقعه وحمايته مهمان للحصول على قراءات دقيقة.
أكشاك الطقس
معروضة للبيع ، ولكنها قد تكون باهظة الثمن ، لذلك ضع في اعتبارك
خيارات DIY .
يحتوي Thingiverse على العديد من
المباني BME680 وأكشاك الطقس .
الأفكار الأخيرة
شكرا للقراءة! إذا قررت إنشاء محطة أرصاد جوية خاصة بك مع التحكم في جودة الهواء - أخبرنا كيف حدث كل شيء ، فما هي المشاكل التي نشأت. أفكار لتطوير مشروعنا يمكن التعبير عنها
في المنتديات .