قم ببناء محطة الطقس Raspberry Pi الخاصة بك

Build Your Own Raspberry Pi Weather Station



Raspberry Pi Sense Hat هي لوحة إضافية يمكن استخدامها مع أجهزة كمبيوتر Raspberry Pi أحادية اللوحة. تحتوي قبعة Raspberry Pi Sense على شاشة LED مقاس 8 × 8 وعصا تحكم بها 5 أزرار ، وهي مزودة بالمستشعرات التالية:

  1. جيروسكوب
  2. مقياس التسارع
  3. مقياس المغناطيسية
  4. درجة حرارة
  5. الضغط الجوي
  6. رطوبة

في هذه المقالة ، سأوضح لك كيفية إنشاء تطبيق ويب لمحطة الطقس يعتمد على Python API باستخدام ملف درجة الحرارة و الضغط الجوي ، و رطوبة مجسات قبعة Raspberry Pi Sense. لمتابعة هذا المقال ، ستحتاج إلى ما يلي:







  1. Raspberry Pi 3 أو Raspberry Pi 4 مع اتصال بالشبكة.
  2. وحدة Raspberry Pi Sense Hat.
  3. محول طاقة micro-USB (Raspberry Pi 3) أو USB Type-C (Raspberry Pi 4).
  4. بطاقة microSD بسعة 16 أو 32 غيغابايت مع نظام Raspberry Pi OS.
  5. كمبيوتر محمول أو كمبيوتر مكتبي للوصول إلى سطح المكتب البعيد لـ VNC أو وصول SSH إلى Raspberry Pi.

ملاحظة: في هذه المقالة ، سنتصل بـ Raspberry Pi عن بُعد عبر VNC أو SSH باستخدام الإعداد بدون رأس لـ Raspberry Pi. إذا كنت لا ترغب في الوصول إلى Raspberry Pi الخاص بك عن بُعد عبر SSH أو VNC ، فستحتاج إلى توصيل شاشة ولوحة مفاتيح وماوس بـ Raspberry Pi.



لمعرفة كيفية وميض صورة Raspberry Pi OS على بطاقة microSD ، يرجى الرجوع إلى كيفية تثبيت واستخدام Raspberry Pi Imager. إذا كنت بحاجة إلى مساعدة في تثبيت نظام Raspberry Pi OS على Raspberry Pi ، اقرأ كيفية تثبيت نظام Raspberry Pi OS على Raspberry Pi 4 . إذا كنت بحاجة إلى مساعدة في إعداد Raspberry Pi بدون رأس ، فتحقق من كيفية تثبيت وتكوين Raspberry Pi OS على Raspberry Pi 4 بدون شاشة خارجية.



ربط Raspberry Pi Sense Hat بـ Raspberry Pi

تأتي مجموعة Raspberry Pi Sense Hat مع لوحة Raspberry Pi Sense Hat الإضافية ، ورأس مكون من 40 سنًا من الذكور إلى الإناث ، وبعض البراغي والفواصل.





قبل أن تتمكن من إرفاق لوحة Sense Hat بـ Raspberry Pi ، يجب عليك توصيل الرأس ذي 40 سنًا بـ Sense Hat. قم بتوصيل دبابيس الذكور للرأس 40 سنًا من الذكور والإناث إلى Sense Hat كما هو موضح في الصور أدناه.



تحتوي أجهزة الكمبيوتر أحادية اللوحة Raspberry Pi على 4 فتحات يمكن استخدامها لإرفاق لوحات إضافية أو علبة. لإرفاق اللوحة الإضافية ، أدخل مسامير من الجزء الخلفي من Raspberry Pi ، كما هو موضح في الصور أدناه.

ثم قم بتوصيل الفاصل بالمسمار.

بمجرد إضافة جميع البراغي والفواصل الأربعة ، يجب أن يبدو Raspberry Pi الخاص بك كما هو موضح في الصورة أدناه.

قم بتوصيل Raspberry Pi Sense Hat برأس ذكر 40-pin GPIO الخاص بـ Raspberry Pi ، كما هو موضح في الصور أدناه.

ملاحظة: كن حذرًا أثناء فصل Raspberry Pi Sense Hat من رأس Raspberry Pi 40-pin GPIO لتجنب ثني دبابيس Raspberry Pi GPIO.

باستخدام البراغي الأربعة المتبقية ، اربط قبعة Raspberry Pi Sense ، كما هو موضح في الصور أدناه.

تشغيل Raspberry Pi

الآن بعد أن تم توصيل Raspberry Pi Sense Hat بـ Raspberry Pi ، أدخل بطاقة microSD مع نظام Raspberry Pi OS في فتحة بطاقة microSD في Raspberry Pi ، وقم بتوصيل كابل الطاقة بـ Raspberry Pi ، وقم بتشغيله.

تثبيت مكتبة Raspberry Pi Sense Hat Python

لاستخدام Raspberry Pi Sense Hat على Raspberry Pi ، فإن قبعة بمعنى يجب تثبيت مكتبة Python على نظام Raspberry Pi OS. ال قبعة بمعنى مكتبة متاحة في مستودع الحزم الرسمي لـ Raspberry Pi OS.

لتثبيت Raspberry Pi قبعة بمعنى مكتبة Python على نظام Raspberry Pi OS ، قم أولاً بتحديث ذاكرة التخزين المؤقت لمستودع حزمة APT بالأمر التالي:

sudo apt update

بعد ذلك ، قم بتشغيل الأمر التالي:

sudo apt install sense-hat -y

تثبيت مكتبة بايثون Flask Micro Web Framework

سنستخدم إطار عمل Flask Python لإنشاء تطبيق الطقس الخاص بنا. يمكنك تثبيت Flask من مستودع الحزم الرسمي لنظام Raspberry Pi OS باستخدام الأمر التالي:

sudo apt قم بتثبيت python3-flask -y

إنشاء دليل المشروع

من الجيد إنشاء دليل مشروع لتنظيم ملفات مشروعك. لإنشاء دليل المشروع ~ / العمل ، استخدم الأمر التالي:

$ mkdir ~ / العمل

بمجرد إنشاء دليل المشروع ، انتقل إلى دليل المشروع على النحو التالي:

$ cd ~ / work

اختبار قبعة Raspberry Pi Sense

لاختبار ما إذا كان Raspberry Pi Sense Hat يعمل أم لا ، يمكننا كتابة نص اختبار بايثون بسيط. يمكنك إنشاء برنامج نصي جديد من Python يسمى test.py مع ال نانو محرر نصوص كالتالي:

اختبار النانو $

أدخل الرمز التالي في ملف test.py ملف. واردات السطر 1 حس من بمعنى الوحدة النمطية ، السطر 3 يخلق ملف حس الكائن ويخزن مرجعًا في يشعر متغير ، وتضبط الأسطر 5-6 لون جميع مصابيح LED مقاس 8 × 8 على اللون الأحمر. بمجرد الانتهاء ، اضغط على + X تليها و و .

يمكنك تشغيل ملف test.py نص Python بالأمر التالي:

$ python3 test.py

يجب أن تتوهج مصفوفة 8 × 8 LED باللون الأحمر كما هو موضح في الصورة أدناه.

لإيقاف تشغيل مصابيح LED الخاصة بـ Sense Hat ، قم بتشغيل ملف صافي() طريقة بدون أي قيمة لونية في ملف test.py نص Python ، كما هو موضح في لقطة الشاشة أدناه ، وقم بتشغيل ملف test.py نص بايثون مرة أخرى.

يجب الآن إيقاف تشغيل مصابيح LED الخاصة بـ Sense Hat ، كما هو موضح في الصورة أدناه.

إذا كانت Sense Hat تعمل بشكل صحيح ، فانتقل إلى القسم التالي.

الحصول على بيانات الطقس من Sense Hat

يمكنك الحصول على بيانات المستشعر من Sense Hat بسهولة بالغة باستخدام ملف قبعة بمعنى مكتبة بايثون. لاسترداد بيانات المستشعر من Sense Hat ، يمكنك إنشاء نص برمجي جديد من Python read_sensor_data.py على النحو التالي:

نانو $ read_sensor_data.py

أدخل الرمز التالي في ملف read_sensor_data.py ملف Python.

من عندبمعنىيستوردحس
من عند زمن يستوردنايم
يشعر=حس()
يشعر.صافي()
في حين حقيقي:
درجة الحرارة=يشعر.get_temperature()
درجة الحرارة=درجة الحرارة *(9/5)+32
الضغط=يشعر.get_pressure()
رطوبة=يشعر.الحصول على الرطوبة()

مطبعة(درجة الحرارة:٪ .2f ° C /٪. 2f ° Fن'٪(درجة الحرارةودرجة الحرارة))
مطبعة(الضغط:٪ .2f ميغابايتن'٪(الضغط))
مطبعة(الرطوبة:٪ .2f ٪٪نن'٪(رطوبة))
نايم(5)

بمجرد الانتهاء ، اضغط على + X تليها و و .

في الكود أعلاه ، يستورد السطران 1 و 2 جميع المكتبات المطلوبة ، بينما ينشئ السطر 4 ملف حس الكائن ، والخط 5 يقوم بإيقاف تشغيل جميع مصابيح LED الخاصة بـ Sense Hat باستخدام ملف صافي() طريقة. حلقة while في السطر 7 عبارة عن حلقة لا نهائية ستقوم بتشغيل الكود في السطور 8-16 إلى الأبد.

في السطر 8 ، get_temperature () تستخدم الطريقة لقراءة بيانات درجة الحرارة (بالدرجات المئوية) من مستشعر الرطوبة في Sense Hat. في السطر 9 ، يتم تحويل بيانات درجة الحرارة من درجات مئوية إلى درجات فهرنهايت. في السطر 10 ، فإن ملف get_pressure () تُستخدم الطريقة لقراءة بيانات ضغط الهواء (بالملي بار) من مستشعر الضغط في Sense Hat. في السطر 11 ، فإن ملف الحصول على الرطوبة () يتم استخدام الطريقة لقراءة بيانات الرطوبة (٪) من مستشعر الرطوبة الخاص بـ Sense Hat.

يتم استخدام الأسطر 13-15 لطباعة بيانات المستشعر إلى وحدة التحكم ، ويتم استخدام السطر 16 للانتظار لمدة 5 ثوانٍ قبل قراءة بيانات المستشعر مرة أخرى.

يمكنك تشغيل ملف read_sensor_data.py نص Python على النحو التالي:

python3 $ read_sensor_data.py

بمجرد تشغيل البرنامج النصي ، ستتم طباعة بيانات المستشعر إلى وحدة التحكم.

الآن بعد أن أصبح بإمكاننا قراءة بيانات المستشعر من Sense Hat ، اضغط + ج لإيقاف البرنامج.

إنشاء تطبيق ويب محطة الطقس

في هذا القسم ، سنوضح لك كيفية استخدام إطار عمل ويب Python Flask لإنشاء واجهة برمجة تطبيقات الطقس وتطبيق الطقس. سيصل تطبيق الطقس إلى واجهة برمجة تطبيقات بيانات الطقس ويعرض بيانات الطقس في الوقت الفعلي. كل الأكواد التي تمت مناقشتها في هذا القسم متاحة على GitHub على العنوان shovon8 / raspberry-pi-sense-hat-hat-weather-app .

أولاً ، قم بإنشاء ملف server.py نص Python في دليل المشروع على النحو التالي:

خادم النانو $

أدخل الرمز التالي في ملف server.py ملف Python.

من عندقارورةيستوردقارورة
من عندقارورةيستوردjsonify
من عندقارورةيستوردتقديم_قالب
من عندقارورةيستوردurl_for
من عندبمعنىيستوردحس
تطبيق=قارورة(__اسم__)
تطبيق.التكوين['SEND_FILE_MAX_AGE_DEFAULT'] = 0
يشعر=حس()
يشعر.صافي()
معتطبيق.test_request_context():
url_for('ثابتة'واسم الملف='style.css')
url_for('ثابتة'واسم الملف='app.js')
@تطبيق.طريق('/إطلاق النار')
defإطلاق النار():
درجة الحرارة=يشعر.get_temperature()
درجة الحرارة=درجة الحرارة *(9/5)+32
الضغط=يشعر.get_pressure()
الضغط=الضغط *0.0145038
الضغط=الضغط *100
رطوبة=يشعر.الحصول على الرطوبة()

إرجاعjsonify({
'درجة الحرارة':{ 'ج': tempCو 'F': tempF}و
'الضغط':{ 'mb': الضغطو 'hPa': الضغطو
'psi': الضغطو 'ف': الضغط}و
'رطوبة': رطوبة
})
@تطبيق.طريق('/')
defالصفحة الرئيسية():
إرجاعتقديم_قالب('./home.html')

ثم اضغط + X تليها و و لحفظ server.py نص بايثون.

في الكود أعلاه ، تستورد الأسطر من 1 إلى 5 جميع المكتبات المطلوبة ، بينما ينشئ السطر 7 تطبيق Flask ، وينشئ السطر 11 كائنًا SenseHat ، ويقوم السطر 12 بإيقاف تشغيل جميع مصابيح LED الخاصة بـ Sense Hat. يقوم Line 8 بتعطيل التخزين المؤقت على الويب لتطبيق Flask. نظرًا لأن هذا التطبيق خفيف الوزن ، فلا داعي للتخزين المؤقت. إذا كنت ترغب في تعديل التطبيق ، فإن تعطيل التخزين المؤقت للويب سيجعل الاختبار أسهل بكثير.

تقرأ السطور 18–31 بيانات المستشعر من Sense Hat وتعيد بيانات واجهة برمجة التطبيقات بتنسيق JSON على طلب HTTP GET في /إطلاق النار نقطة نهاية خادم الويب. تعرض الأسطر 37-39 الصفحة الرئيسية لتطبيق الطقس على الويب على / نقطة نهاية خادم الويب. يتم تقديم الصفحة الرئيسية من ملف home.html الملف الذي يجب أن يكون في ملف قوالب / دليل دليل المشروع.

يتم استخدام الأسطر 14-16 للسماح بالوصول إلى ملف style.css و app.js ملفات ثابتة. يجب أن تكون هذه الملفات بتنسيق ثابتة/ دليل دليل المشروع. ال style.css يتم استخدام الملف لأسلوب ملف home.html الصفحة الرئيسية و app.js يتم استخدام الملف لطلب بيانات API من ملف /إطلاق النار نقطة النهاية وتحديث بيانات الطقس على home.html صفحة كل 5 ثوان.

قم بإنشاء ملف ثابتة/ و قوالب / الدليل في دليل المشروع على النحو التالي:

$ mkdir -v {ثابت ، قوالب}

إنشاء home.html ملف في قوالب / الدليل على النحو التالي:

قوالب $ nano / home.html

أدخل الرمز التالي في ملف home.html ملف.


< لغة البرمجة >
< رئيس >
< ميتا اسم='منفذ العرض' المحتوى='العرض = عرض الجهاز ، المقياس الأولي = 1.0'>
< لقب >محطة الطقس Raspberry Pi</ لقب >
< حلقة الوصل rel='ورقة الأنماط' نوع='text / css'
href='{{url_for (' static '، filename =' style.css ')}}'/>
</ رئيس >
< هيئة >
< شعبة هوية شخصية='المحتوى'>
< h1 >محطة الطقس Raspberry Pi</ h1 >

< شعبة صف دراسي='محتوى البيانات'>
< h2 >درجة حرارة</ h2 >
< شعبة صف دراسي='صف البيانات'>
< شعبة صف دراسي='خلية البيانات' هوية شخصية='tempC'>
...
</ شعبة >
< شعبة صف دراسي='خلية البيانات' هوية شخصية='tempF'>
...
</ شعبة >
</ شعبة >
</ شعبة >

< شعبة صف دراسي='محتوى البيانات'>
< h2 >ضغط</ h2 >
< شعبة صف دراسي='صف البيانات'>
< شعبة صف دراسي='خلية البيانات' هوية شخصية='pressureMb'>
...
</ شعبة >
< شعبة صف دراسي='خلية البيانات' هوية شخصية=الضغط>
...
</ شعبة >
</ شعبة >
< شعبة صف دراسي='صف البيانات'>
< شعبة صف دراسي='خلية البيانات' هوية شخصية=الضغط>
...
</ شعبة >
< شعبة صف دراسي='خلية البيانات' هوية شخصية='pressureP'>
...
</ شعبة >
</ شعبة >
</ شعبة >

< شعبة صف دراسي='محتوى البيانات'>
< h2 >رطوبة</ h2 >
< شعبة صف دراسي='صف البيانات'>
< شعبة صف دراسي='خلية البيانات' هوية شخصية='رطوبة'>
...
</ شعبة >
</ شعبة >
</ شعبة >
</ شعبة >

< النصي نوع='نص / جافا سكريبت' src='{{url_for (' static '، filename =' app.js ')}}'></ النصي >
</ هيئة >
</ لغة البرمجة >

ثم اضغط + X تليها و و لحفظ home.html ملف.

إنشاء style.css ملف في ثابتة/ الدليل على النحو التالي:

نانو $ static / style.css

أدخل الرموز التالية في ملف style.css ملف.

@يستورد عنوان url('https://fonts.googleapis.com/css2؟family=Roboto&display=swap')؛
* {
حشوة: 0؛
هامش: 0؛
خط العائلة: 'إنسان آلي'و بلا الرقيق؛
}
هيئة{
معرفتي: # 737373؛
}
h1{
عرض: منع؛
لون: #79DC7B؛
محاذاة النص: المركز؛
وزن الخط: 400؛
معرفتي: # 000؛
حشوة: 0.5em 0؛
}
h2{
عرض: منع؛
معرفتي: # 000؛
لون: #fff؛
محاذاة النص: المركز؛
وزن الخط: 400؛
حجم الخط: 1em؛
}
.data-content {
هامش: 10 بكسل؛
الحدود: 2 بكسل صلب أسود؛
نصف قطر الحد: 5 بكسل؛
لون الخلفية: #79DC7B؛
}
صف البيانات {
عرض:ثني؛
الاتجاه المرن:صف؛
}
خلية البيانات {
العرض: 100٪؛
ارتفاع: 80 بكسل؛
عرض:ثني؛
محاذاة العناصر: المركز؛
تبرير المحتوى: المركز؛
وزن الخط: بالخط العريض؛
حجم الخط: 1.5em؛
لون: # 006902؛
}
خلية البيانات:يحوم {
معرفتي: # FFE891؛
لون: # AA8600؛
المؤشر: المؤشر؛
}

ثم اضغط + X تليها و و لحفظ style.css ملف.

يخترع app.js ملف في ثابتة/ الدليل على النحو التالي:

nano $ ثابت / app.js

أدخل الرمز التالي في ملف app.js ملف.

نافذة او شباك.addEventListener('حمل'والأساسية)؛
وظيفةالأساسية() {
وظيفةgetAPIData() {
أينhttp= الجديدXMLHttpRequest()؛

http.عند تغيير الخلاف = وظيفة() {
لو(هذه.جاهز === 4 && هذه.الحالة === 200) {
تحديث(جسون.تحليل(هذه.استجابة النص))؛
}
}

http.افتح('احصل على'و '/إطلاق النار'و حقيقية)؛
http.يرسل()؛
}


وظيفةتحديث(apiData) {
أيندرجة الحرارة=وثيقة.getElementById('tempC')؛
أيندرجة الحرارة=وثيقة.getElementById('tempF')؛
أينالضغط=وثيقة.getElementById('pressureMb')؛
أينالضغط=وثيقة.getElementById(الضغط)؛
أينالضغط=وثيقة.getElementById(الضغط)؛
أينالضغط=وثيقة.getElementById('pressureP')؛
أينرطوبة=وثيقة.getElementById('رطوبة')؛

درجة الحرارةداخلي HTML =تحليل عائم(apiData.درجة الحرارة.ج).للتصليح(2) + درجة مئوية؛
درجة الحرارةداخلي HTML =تحليل عائم(apiData.درجة الحرارة.F).للتصليح(2) + 'درجة فهرنهايت'؛

الضغطداخلي HTML =تحليل عائم(apiData.الضغط.ميغابايت).للتصليح(2) + 'mb'؛
الضغطداخلي HTML =تحليل عائم(apiData.الضغط.رطل).للتصليح(2) + 'psi'؛
الضغطداخلي HTML =تحليل عائم(apiData.الضغط.hPa).للتصليح(2) + 'hPa'؛
الضغطداخلي HTML =تحليل عائم(apiData.الضغط.ص).للتصليح(2) + 'ف'؛

رطوبة.داخلي HTML =تحليل عائم(apiData.رطوبة).للتصليح(2) + '٪'؛
}


وظيفةتطبيق() {
نافذة او شباك.تعيين الفاصل(وظيفة() {
getAPIData()؛
}و 5000)؛
}

تطبيق()؛
}

ثم اضغط + X تليها و و لحفظ app.js ملف.

هنا ، يعمل السطر 1 على تشغيل ملف الأساسية() تعمل عند انتهاء تحميل صفحة الويب. في ال الأساسية() وظيفة getAPIData () تجلب الدالة بيانات API الخاصة بالطقس باستخدام AJAX وتستدعي ملف تحديث() الوظيفة (في السطر 10) بمجرد أن يتم جلب البيانات بنجاح. ال تحديث() تقوم الوظيفة بتحديث عنصر صفحة الويب باستخدام بيانات API.

في السطر 20 ، document.getElementById () يتم استخدام الطريقة للحصول على مرجع عنصر صفحة الويب بالمعرف درجة الحرارة . يستخدم السطر 28 لاستبدال محتوى عنصر صفحة الويب الذي يحتوي على المعرف درجة الحرارة مع درجة الحرارة (بالدرجة المئوية) من API. بالطريقة نفسها ، يتم استبدال محتويات جميع عناصر الويب (الأسطر 21-26) ببيانات واجهة برمجة التطبيقات الخاصة بكل منها.

في ال تطبيق() وظيفة getAPIData () يتم استدعاء كل 5 ثوانٍ (5000 مللي ثانية) للحفاظ على تحديث بيانات الطقس في تطبيق الطقس. أخيرًا ، في السطر 46 ، فإن ملف تطبيق() يتم تنفيذ الوظيفة.

لاختبار تطبيق الويب ، أدخل الأمر التالي:

$ FLASK_APP = server.py تشغيل القارورة - المضيف = 0.0.0.0

يجب تشغيل تطبيق الطقس على المنفذ 5000 (افتراضيًا).

لاختبار ما إذا كانت واجهة برمجة تطبيقات الطقس تعمل ، قم بتشغيل الأمر التالي:

$ curl -s http: // localhost: 5000 / api | json_pp

كما ترى ، تتم طباعة بيانات Weather API على وحدة التحكم. لذلك ، تعمل API.

لاختبار تطبيق الطقس ، قم بزيارة http: // localhost: 5000 من متصفح الويب Chromium. يجب تحميل تطبيق Weather على متصفح الويب ، ولكن يجب عدم عرض بيانات الطقس في البداية.

بعد بضع ثوانٍ ، يجب أن ينتهي تطبيق الطقس من جلب بيانات الطقس من واجهة برمجة التطبيقات وعرضها.

يمكنك الضغط في أي وقت + ج لإيقاف خادم الويب.

إنشاء خدمة Systemd لتطبيق Weather Web

في هذا القسم ، سنوضح لك كيفية إنشاء ملف خدمة systemd لتطبيق الطقس بحيث يبدأ تلقائيًا عند التشغيل.

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

خدمة النانو للطقس

أدخل سطور التعليمات البرمجية التالية في ملف خدمة محطة الطقس ملف.

[وحدة]
الوصف = تطبيق ويب محطة الطقس Raspberry Pi باستخدام Raspberry Pi Sense Hat
بعد = network.target

[خدمة]
دليل العمل = / home / pi / work
البيئة = FLASK_APP = server.py
البيئة = FLASK_ENV = الإنتاج
ExecStart = / usr / bin / flask run --host = 0.0.0.0
StandardOutput = ترث
StandardError = يورث
إعادة التشغيل = دائما
المستخدم = pi

[تثبيت]
WantedBy = multi-user.target

ثم اضغط + X تليها و و لحفظ خدمة محطة الطقس ملف.

انسخ ال خدمة محطة الطقس ملف إلى / etc / systemd / system / الدليل بالأمر التالي:

$ sudo cp -v weather-station.service / etc / systemd / system /

أعد تحميل شياطين systemd لتصبح التغييرات سارية المفعول على النحو التالي:

sudo systemctl daemon-reload $ الخفي

ال محطة الطقس يجب أن تكون خدمة systemd غير نشطة في الوقت الحالي ، كما هو موضح في لقطة الشاشة أدناه.

$ sudo systemctl status weather-station.service

ابدأ ال محطة الطقس الخدمة بالأمر التالي:

sudo systemctl تبدأ خدمة weather-station.service

كما ترون ، فإن محطة الطقس الخدمة قيد التشغيل الآن.

$ sudo systemctl status weather-station.service

الآن بعد أن أصبح ملف محطة الطقس الخدمة تعمل ، يمكنك إضافتها إلى نظام بدء تشغيل Raspberry Pi OS باستخدام الأمر التالي:

sudo systemctl يقوم بتمكين weather-station.service

أعد تشغيل Raspberry Pi باستخدام الأمر التالي:

sudo إعادة التشغيل

بمجرد أن يقوم Raspberry Pi بالتمهيد ، فإن ملف محطة الطقس يجب أن تكون الخدمة قيد التشغيل ، كما هو موضح في لقطة الشاشة أدناه.

$ sudo systemctl status weather-station.service

الوصول إلى تطبيق الطقس من الأجهزة الأخرى

للوصول إلى تطبيق الطقس من الأجهزة الأخرى في شبكتك المنزلية ، تحتاج إلى معرفة عنوان IP الخاص بـ Raspberry Pi. يمكنك العثور على عنوان IP الخاص بـ Raspberry Pi 4 من واجهة إدارة الويب لجهاز التوجيه المنزلي الخاص بك. في حالتنا ، عنوان IP هو 192.168.0.103 ، ولكن هذا العنوان سيكون مختلفًا بالنسبة لك ، لذا تأكد من استبدال هذا العنوان بعنوانك في جميع الخطوات اللاحقة.

إذا كان لديك وصول إلى وحدة تحكم Raspberry Pi ، فيمكنك تشغيل الأمر التالي للعثور على عنوان IP أيضًا.

اسم المضيف -أنا

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

استنتاج

في هذه المقالة ، أوضحنا لك كيفية استخدام Raspberry Pi Sense Hat لبناء محطة طقس Raspberry Pi. استخدمنا ملف قبعة بمعنى مكتبة Python لاستخراج بيانات الطقس من Raspberry Pi Sense Hat. بعد ذلك ، استخدمنا إطار عمل الويب المصغر Flask Python لإنشاء واجهة برمجة تطبيقات خاصة بالطقس وتطبيق ويب. يحصل تطبيق الويب على بيانات الطقس من واجهة برمجة تطبيقات الطقس كل 5 ثوانٍ لإبقاء تطبيق الويب محدثًا بأحدث بيانات الطقس.