محطة الطقس على Arduino من A إلى Z. Part 1

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



محطة الطقس. اردوينو ، ESP8266 ، nRF24L01 ، DHT22


"لذا ، دعنا نتفق على الفور: لن تقوم بعمل فيلم لهوليوود. حتى في بلاد العجائب ، لا تتم الموافقة على أكثر من خمسة بالمائة من جميع السيناريوهات ، ثم واحد بالمائة فقط يبدأ الإنتاج ... لذا ، بدلاً من كل هذا ، ستقوم بإنشاء هوليوود الخاصة بك. "
Ed Gaskell "صنع السينما الرقمية أو هوليوود في المنزل"


مقدمة


ماذا ، محطة أرصاد جوية أخرى على اردوينو ؟! نعم ، هناك شيء آخر ، وشيء يقول لي ، ليس آخر شيء على الإنترنت.


تمامًا كما هو مطلوب من كل مبرمج لكتابة البرنامج "Hello World!" ، لذلك يجب أن يتمتع كل اردوينو بتجربة بناء محطة الطقس بسيطة أو ليست في حد ذاتها.
تم وصف عدد كبير من المشاريع التي تم إنشاؤها بالفعل لمحطات الطقس على الإنترنت ، يمكن للقارئ اختيار أي منها للتنفيذ. لن أخفي ، لقد درست بعناية حوالي عشرة من هذه المشاريع ومجموعة من المشاريع ذات الصلة. لذلك ، لا يمكن القول أنني خلقت كل شيء من الصفر ، بالطبع "وقفت على أكتاف العمالقة".


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


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


سيرشدك المؤلف عبر متاهات التكنولوجيا الحديثة لإنترنت الأشياء. علاوة على ذلك ، عيون المبتدئ ، لأنه هو نفسه.


تم تنفيذ هذا المشروع في عام 2016 ، ولكن آمل أن يكون لا يزال ذا صلة.


مجموعة التكنولوجيا


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


  • أجهزة استشعار درجة الحرارة والرطوبة نوع DHT22 ، DHT11
  • استشعار الضغط الجوي نوع BMP180
  • وحدة WiFi ESP8266
  • وحدة راديو 2.4 جيجا هرتز nRF24
  • عائلة Arduino Pro Mini ، Arduino Mega
  • البطاريات الشمسية والبطاريات
  • لغة برمجة C / C ++
  • لغة برمجة PHP
  • نظام إدارة قاعدة بيانات MySQL
  • لغة برمجة Java وإطار Android (إنشاء تطبيق لـ Adnroid لعرض بيانات الطقس على الهاتف الذكي).

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


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


النماذج


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


ولكن هذا في صناعة يعمل فيها العمال بدوام كامل.


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


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


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


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


المتطلبات


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


لذا ، يجب على محطة الطقس لدينا:


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

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


يجب أن توفر بنية النظام والأجهزة والبرامج مزيدًا من إمكانية توسيع النظام لإضافة أجهزة استشعار جديدة وميزات جديدة.


حديد اختيار المكون


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


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


الحلقة المفرغة؟ ولكن توجد حلقات مفرغة لكسرها.


هناك مخرج. يمكنك أن تأخذ وتكرر مشروع شخص آخر. درست المشاريع الحالية لمحطات الأرصاد الجوية ، وآمل أن أخطو خطوة إلى الأمام.


لذا تعتمد بنية محطة الطقس على اردوينو. لأن Arduino لديه حد دخول صغير ، وقد تعاملت معه بالفعل. من الأسهل اختيار المزيد.


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


سيتم وضع الوحدة المركزية الرئيسية في الداخل. من المهم تحديد ذلك في المرحلة الأولية ، من هذا ، خصائص مهمة مثل نظام درجة حرارة التشغيل و "رقص" القوة.


سيكون المستشعر البعيد (أو المستشعرات) بدون "عقول" ، وتتمثل مهمته في قياس البيانات ونقلها دوريًا إلى الوحدة المنزلية المركزية. تتلقى الوحدة المركزية البيانات من جميع أجهزة الاستشعار ، وتعرضها على الشاشة وترسلها إلى قاعدة البيانات على الإنترنت. حسنًا ، أصبح الأمر أسهل بكثير هناك ، بمجرد أن تكون البيانات في قاعدة البيانات ، يمكنك أن تفعل ما تريد معها ، حتى رسم الرسومات.


بالنسبة للعلاقات مع العالم الخارجي ، تم اختيار الإنترنت بالتأكيد بواسطة وحدة WiFi ESP8266 بدون أي بديل تقريبًا (ربما ظهرت الآن مثل هذه البدائل). تتوفر بطاقات توسيع Arduino Ethernet ، لكني لم أرغب في توصيلها بالكابل على الإطلاق.


ESP8266


كان السؤال المثير للاهتمام هو كيفية توفير اتصال بين مستشعر مثبت على النافذة (أو المستشعرات ، تذكر متطلبات قابلية توسيع النظام؟) والمركز. منارات 433 MHz ليست مناسبة بالتأكيد (فهي ليست مناسبة لأي شيء على الإطلاق).


استفد من ESP8266 مرة أخرى؟


سلبيات هذا القرار:


  • مطلوب واي فاي المستدامة خارج المنزل


  • لن يكون نطاق الاتصال طويلاً


  • ستعاني الموثوقية ، إذا تعطل الإنترنت ، فلن نرى أجهزة الاستشعار عن بعد الخاصة بنا


  • زيادة استهلاك الطاقة.


  • استهلاك الطاقة ESP8266:


  • عند إرسال 120-170 مللي أمبير


  • عند أخذ 50-56 مللي أمبير


  • في النوم العميق 10 μA (μA)


  • من 5 µA (µA).



في النهاية ، تم اختيار شريحة nRF24L01 + مع جهاز إرسال واستقبال بتردد 2.4 جيجا هرتز في زجاجة واحدة ، بهوائي خارجي إضافي ، لتوصيل أجهزة الاستشعار عن بعد بالوحدة الرئيسية الرئيسية ، بحيث "بالتأكيد" تخترق الجدران.


nRF24L01 +


استهلاك الطاقة nRF24L01 + 2.4 جيجا هرتز:


  • عند تلقي 11 مللي أمبير
  • عند الإرسال بسرعة 2 ميجابت في الثانية - 13 مللي أمبير
  • في وضع الاستعداد I - 26 أمبير (أمبير)
  • خارج الدولة 900 لا يوجد.

أما بالنسبة لـ ESP8266 ، فإن nRF24L01 + ، نطاق درجة حرارة التشغيل مناسب: من -40 ℃ إلى + 80 ℃.


يمكنك شراء nRF24L01 + لحوالي 1 دولار ، أو فورًا باستخدام هوائي خارجي مقابل 3 دولارات. يمكنك شراء ESP8266-01 مقابل 4 دولارات تقريبًا. اقرأ وصف المنتج بعناية! خلاف ذلك ، قم بشراء هوائي واحد.


تلوح نواة النظام في الأفق. ننتقل إلى أجهزة الاستشعار نفسها.


في الشارع ، كما تعلم ، يمكن أن تصل درجة الحرارة إلى قيم سالبة ، لذا فإن مستشعر DHT11 غير مناسب ، ولكن DHT22 مناسب تمامًا.


DHT22


ميزات DHT22 / AM2302:


  • يوصى بإمداد طاقة من 3.3 فولت إلى 5 فولت ، 5 فولت
  • أقصى استهلاك 2.5mA ، في وقت القياس ونقل البيانات
  • نطاق قياس الرطوبة 0-100٪ بدقة 2-5٪
  • نطاق قياس درجة الحرارة من -40 إلى + 125 درجة مئوية بدقة ± 0.5 درجة مئوية
  • طلب قياس لا يزيد عن 0.5 هرتز - مرة واحدة كل ثانيتين.

داخل المنزل ، آمل ألا تكون هناك درجات حرارة سلبية ، لذلك يمكنك استخدام DHT11 ، خاصة وأنني كنت قد حصلت عليه بالفعل.


يتميز DHT11:


  • مصدر الطاقة من 3.3 فولت إلى 5 فولت
  • أقصى استهلاك 2.5 مللي أمبير ، في وقت القياس ونقل البيانات
  • مدى قياس الرطوبة 20-80٪ بدقة 5٪
  • نطاق قياس درجة الحرارة من 0 إلى +50 درجة مئوية بدقة ± 2 درجة مئوية
  • طلب قياس لا يزيد عن 1 هرتز - مرة واحدة في الثانية.

يمكنك شراء DHT22 مقابل 3 دولارات تقريبًا. DHT11 أرخص - دولار واحد ، ولكنه أقل دقة.


عاد الآن إلى Arduino. أي مجلس تختار؟


لقد اختبرت الأجزاء الفردية من النظام على Arduino UNO. على سبيل المثال لقد قمت بتوصيل وحدة ESP بـ Uno ودراستها ، وفصلها ، ثم توصيل nRF24 ، إلخ. من أجل التنفيذ النهائي لجهاز الاستشعار في الخارج ، اختار Arduino Pro Mini ليكون الأقرب إلى Uno من الأجهزة المصغرة.


اردوينو برو ميني


من حيث استهلاك الطاقة ، يبدو Arduino Pro Mini جيدًا أيضًا:


  • لا يوجد محول USB-TTL ، والذي في حد ذاته "يأكل" كثيرًا ،
  • يتم توصيل LED من خلال المقاوم 10 كيلو.

تم التخطيط للحفاظ على الطاقة المتقدمة:


  • إزالة LED - مؤشر الطاقة على Arduino Pro Mini (ندمت ، لم تفسد اللوحة)
  • إما استخدام التجميع العاري على المعالج الصغير Atmel ATmega328 (غير مستخدم)
  • استخدم مكتبة الطاقة المنخفضة أو JeeLib .

اخترت مكتبة منخفضة الطاقة من المكتبات ، وهي بسيطة وتحتوي فقط على ما تحتاجه.


بالنسبة للوحدة المركزية ، نظرًا لأنه تم التخطيط لربط العديد من الأجهزة الطرفية بها ، فقد تم اختيار لوحة Arduino Mega. بالإضافة إلى ذلك ، فهو متوافق تمامًا مع UNO ولديه ذاكرة أكبر. واستشرافا للمستقبل ، سأقول أن هذا الاختيار له ما يبرره تماما.


يمكنك شراء Arduino Mega مقابل 8 دولارات تقريبًا.


استهلاك الطاقة والطاقة


الآن عن الطاقة واستهلاك الطاقة.


يأتي Arduino Pro Mini في شكلين:


  • 5V امدادات الطاقة وتردد 16MHz
  • 3.3 فولت جهد العرض وتردد 8 ميجا هرتز.

نظرًا لأن وحدة الراديو nRF24L01 + تتطلب 3.3 فولت للطاقة ، والأداء ليس مهمًا هنا ، اشترِ Arduino Pro Mini بتردد 8MHz و 3.3V.


في نفس الوقت ، فإن نطاق جهد Arduino Pro Mini هو:


  • 3.35-12 فولت لنموذج 3.3 فولت
  • 5-12 فولت مقابل 5 فولت.

لقد كان لدي بالفعل Arduino Pro Mini على 5V ، ولهذا السبب استخدمته. يمكنك شراء Arduino Pro Mini مقابل 4 دولارات تقريبًا.


سيتم تشغيل الوحدة المركزية من شبكة 220 فولت من خلال وحدة تزويد طاقة صغيرة توفر خرج 12 فولت ، 450 مللي أمبير ، 5 واط. مثل هذا مقابل 5 دولارات. لا يزال هناك خرج منفصل عند 5V.


وحدة تزويد الطاقة AC / DC


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


لذلك ، سيتم تشغيل Arduino Pro Mini ووحدة الراديو nRF24 بواسطة مجموعة من 4 بطاريات Ni-Mh.


وتذكر أن السعة القصوى للبطارية الحديثة هي تقريبًا 2500-2700 مللي أمبير في الساعة ، كل ما هو أكثر إما الحيل التسويقية (Ansmann 2850) أو الغش (UltraFire 3500).


لا أستخدم بطاريات Li-Ion لعدة أسباب:


  • مكلف للغاية
  • عندما تنخفض درجة الحرارة المحيطة إلى ما دون 0 درجة مئوية ، تنخفض طاقة بطارية ليثيوم أيون إلى 40-50٪
  • تلك الرخيصة الثمن مصنوعة بدون حماية وهي غير آمنة (خلال دائرة قصر أو تفريغ يمكن أن تنفجر وتحترق ، شاهد مجموعة من مقاطع الفيديو على YouTube)
  • يكبرون ، حتى لو لم يتم استخدامهم (على الرغم من أن هذا يمكن أن يقال عن جميع العناصر الكيميائية) ، بعد عامين ، تفقد بطارية Li-Ion حوالي 20٪ من سعتها

بالنسبة للنموذج الأولي ، من الممكن جدًا الحصول على بطاريات Ni-MH AA أو AAA عالية الجودة. علاوة على ذلك ، لا نحتاج إلى تيارات كبيرة. السالب الوحيد لبطاريات Ni-MH هو شحنتها الطويلة.


المخطط العام لمحطة الطقس


لتلخيص. هنا مخطط عام لكيفية عمل كل شيء.


محطة الطقس. المخطط العام.


يتبع.

Source: https://habr.com/ru/post/ar425901/


All Articles