تقيس محطة الطقس العادية ذات العلامة التجارية المنزلية أو محلية الصنع رطوبة درجة الحرارة (في الغرفة وفي الشارع) ، والضغط الجوي ، بالإضافة إلى ساعة مع تقويم. ومع ذلك ، فإن محطة الطقس الحقيقية لديها أكثر من ذلك بكثير - مستشعر للإشعاع الشمسي ، وعداد هطول وما إلى ذلك ، وهو ما يتطلب بشكل عام فقط للاحتياجات المهنية ، باستثناء واحد. تعد أداة قياس معلمات الرياح (السرعة ، والأهم من ذلك ، الاتجاه) إضافة مفيدة جدًا لمنزل ريفي. علاوة على ذلك ، أجهزة استشعار الرياح ذات العلامات التجارية باهظة الثمن حتى على Ali Baba ، ومن المنطقي أن ننظر إلى الحلول محلية الصنع.
يجب أن أقول على الفور أنه إذا عرفت مسبقًا مقدار العمل اليدوي والأموال التي يتم إنفاقها على التجارب ستسكب فكرتي ، ربما لن أبدأ. لكن الفضول فاق ، ولدى قراء هذه المقالة فرصة لتجنب تلك المزالق التي كان علي أن أعثر عليها.
لقياس سرعة الرياح (
قياس شدة الريح) ، هناك المئات من الطرق ، أهمها:
- سلك ساخن ،
- ميكانيكي - مع دافع (بشكل أكثر دقة ، دافع) أو دافع كوب أفقي (
مقياس شدة كوب كلاسيكي). إن قياس السرعة في هذه الحالات يعادل قياس سرعة المحور الذي يتم تركيب المروحة أو المكره عليه.
- وكذلك الموجات فوق الصوتية ، تجمع بين قياسات السرعة والاتجاه.
لقياس اتجاه الطرق أقل:
- الموجات فوق الصوتية المذكورة ؛
- ريشة الطقس الميكانيكية مع الإزالة الإلكترونية لزاوية الدوران. هناك أيضًا العديد من الطرق المختلفة لقياس زاوية الدوران: بصري ، مقاوم ، مغناطيسي ، حثي ، ميكانيكي. من الممكن ، بالمناسبة ، إرفاق بوصلة إلكترونية ببساطة بعمود ريشة الطقس - هذه طرق موثوقة وبسيطة فقط (للتكرار "حتى الركبة") لنقل القراءات من محور دوار عشوائي. لذلك ، نختار أيضًا الطريقة البصرية التقليدية.
إذا كررت بشكل مستقل أيًا من هذه الطرق ، يجب أن تضع في اعتبارك متطلبات الحد الأدنى من استهلاك الطاقة على مدار الساعة (وربما على مدار السنة؟) التعرض لأشعة الشمس والمطر. لا يمكن وضع مستشعر الرياح تحت السقف في الظل - بل على العكس ، يجب أن يكون بعيدًا قدر الإمكان عن جميع العوامل المسببة للتداخل و "مفتوح لجميع الرياح". المكان المثالي هو سلسلة من سطح المنزل أو ، في أسوأ الأحوال ، حظيرة أو شرفة ، بعيدًا عن المباني والأشجار الأخرى. تتطلب هذه المتطلبات طاقة مستقلة ، ومن الواضح أن هناك قناة بيانات لاسلكية. هذه المتطلبات مسؤولة عن بعض "أجراس وصفارات" التصميم ، الموضحة أدناه.
حول الحد الأدنى من استهلاك الطاقةبالمناسبة ، كم هو الحد الأدنى لاستهلاك الطاقة؟ بناءً على البطاريات المنزلية العادية من نوع AA ، يجب ألا يزيد متوسط استهلاك الدائرة عن 1-2 مللي أمبير. عد لنفسك: تبلغ قدرة عنصر قلوي لائق بحجم AA حوالي 2.5-3 Ah • أي أن الدائرة ذات الاستهلاك المشار إليه ستعمل منه لمدة 1500-2500 ساعة أو 2-3 أشهر. من حيث المبدأ ، هذا أيضًا قليل ، ولكنه مقبول نسبيًا - لا يمكنك أن تفعل أي شيء أقل: إما تفلس أو تستخدم البطاريات التي ستحتاج إلى الشحن أكثر من تغيير البطاريات. لهذا السبب ، عند وضع مثل هذا المخطط ، نحن ملزمون بالقبض على أي فتات: وضع توفير الطاقة الإلزامي والدوائر المدروسة بعناية وتسلسل الإجراءات في البرنامج. علاوة على ذلك ، سنرى أنه في التصميم النهائي لم أتمكن حتى الآن من تلبية المتطلبات اللازمة واضطررت إلى استخدام طاقة البطارية.
قصة معرفية حول كيفية محاولتي إعادة إنتاج أحدث الأساليب وأكثرها تقدمًا - الموجات فوق الصوتية ، والفشل ، سأخبرنا في وقت آخر. تتضمن جميع الطرق الأخرى قياسًا منفصلًا للسرعة والاتجاه ، لذلك اضطررت إلى سياج مستشعرين. بعد دراسة مقاييس شدة الريح السلكية نظريًا ، أدركت أننا لن نتمكن من شراء عنصر حساس على مستوى الهواة جاهز (متوفر في السوق الغربية!) ، ولكن لاختراعه بنفسي - للمشاركة في البحث والتطوير التالي مع مضيعة للوقت والمال. لذلك ، بعد بعض التفكير ، قررت إنشاء تصميم موحد لكلا المستشعرين: مقياس شدة الريح مع قياس بصري لسرعة الدوران وريشة الطقس مع قياس زاوية الدوران الإلكتروني بناءً على قرص التشفير (التشفير).
تصاميم أجهزة الاستشعار
تتمثل ميزة المستشعرات الميكانيكية في عدم الحاجة إلى البحث والتطوير هناك ، والمبدأ بسيط وواضح ، وتعتمد جودة النتيجة على دقة تنفيذ التصميم المدروس بعناية.
لذلك يبدو من الناحية النظرية ، في الواقع ، أدى هذا إلى مجموعة من الأعمال الميكانيكية ، والتي كان يجب طلب بعضها على الجانب ، بسبب عدم وجود آلات الطحن والطحن في متناول اليد. يجب أن أقول على الفور أنني لم أندم أبدًا على أنني قد اعتمدت على نهج رأس المال منذ البداية ، ولم أبدأ في إنشاء الإنشاءات من المواد المرتجلة.
بالنسبة إلى ريشة الطقس ومقياس شدة الريح ، هناك حاجة إلى الأجزاء التالية ، والتي يجب طلبها من تيرنر ومشغل آلة الطحن (يتم تحديد الكمية والمواد على الفور لكل من أجهزة الاستشعار):

نلاحظ أن المحاور يتم تشغيلها بالضرورة على مخرطة: من المستحيل عمليا إنشاء محور مع نقطة بالضبط في المركز على الركبة. ويعتبر وضع الطرف بالضبط على طول محور الدوران هنا عاملاً محددًا للنجاح. بالإضافة إلى ذلك ، يجب أن يكون المحور مستقيمًا تمامًا ، ولا يُسمح بانحرافات.
مستشعر اتجاه الرياح الميكانيكي - ريشة الطقس الإلكترونية
أساس ريشة الطقس (بالإضافة إلى مستشعر السرعة أدناه) هو قوس على شكل حرف U مصنوع من D-16 duralumin ، كما هو موضح في الرسم أعلى اليسار. يتم الضغط على قطعة من البلاستيك الفلوري في التجويف السفلي ، حيث يتم عمل تجويف متدرج بالتتابع مع مثقاب 2 و 3 مم. يتم إدخال محور في هذه العطلة مع نهاية حادة (لريشة الطقس - من النحاس الأصفر). من الأعلى ، يمر بحرية من خلال ثقب 8 مم. فوق هذه الفتحة ، تُعلق المسامير M2 على الحامل بقطعة مستطيلة من نفس الفلوروبلاستيك بسمك 4 مم بحيث تتداخل مع الحفرة. يتم عمل ثقب في البلاستيك الفلوري على طول قطر المحور 6 مم (يقع بالضبط على طول المحور العام للثقوب - انظر رسم التجميع أدناه). تلعب Ftoroplast أعلاه وأدناه دور المحامل المنزلقة.

يمكن صقل المحور في مكان الاحتكاك ضد اللدائن الضوئية ، ويمكن تقليل منطقة الاحتكاك عن طريق مواجهة الثقب في اللدائن الفلورية. (
انظر في هذا الموضوع أدناه UPD من 09/13/18 و 06/05/19 ). بالنسبة لريشة الطقس ، لا يلعب هذا دورًا خاصًا - فبعض "التثبيط" مفيد له ، وبالنسبة لعداد مقياس شدة الريح ، سيكون عليك محاولة تقليل الاحتكاك والقصور الذاتي.
الآن عن إزالة زاوية الدوران. يبدو
التشفير الرمادي الكلاسيكي مع 16 موضعًا في حالتنا كما هو موضح في الشكل:

تم اختيار حجم القرص على أساس عزل بصري موثوق به لأزواج الباعث والمستقبل عن بعضها البعض. باستخدام هذا التكوين ، يتم أيضًا تباعد الفتحات التي يبلغ عرضها 5 مم عن بعضها بمسافة 5 مم ، والأزواج البصرية متباعدة تمامًا بفارق 10 مم. تم حساب أبعاد القوس الذي يتم إرفاق ريشة الطقس به بدقة على أساس قطر قرص يبلغ 120 ملم. يمكن بالطبع تقليل كل هذا (خاصة إذا اخترت مصابيح LED وأجهزة كشف ضوئي لأصغر قطر ممكن) ، ولكن تم مراعاة تعقيد تصنيع برنامج التشفير: اتضح أن آلات الطحن لم تأخذ مثل هذا العمل الدقيق ، لذلك كان من الضروري قطعه يدويًا بملف. وبعد ذلك كلما كانت الأبعاد أكبر ، كلما كانت النتيجة أكثر موثوقية وأقل متاعب.
يوضح رسم التجميع أعلاه تركيب القرص على المحور. يتم تثبيت قرص مركزي بعناية باستخدام مسامير M2 إلى محور كابرولون. يتم وضع الغلاف على المحور بحيث يكون الخلوص في الأعلى ضئيلاً (1-2 مم) - بحيث يدور المحور في الوضع الطبيعي بحرية ، وخلال الثورة لا يقع الطرف من المقبس أدناه. يتم إرفاق كتل أجهزة الكشف عن الضوء والانبعاثات على القوس الموجود في الجزء العلوي والسفلي من القرص ، وبشكل أكثر تحديدًا حول تصميمها.
يتم وضع الهيكل بأكمله في علبة بلاستيكية (ABS أو البولي كربونات) 150 × 150 × 90 مم. يتم تجميع مستشعر الاتجاه (بدون غطاء أو ريشة الطقس) على النحو التالي:

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

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

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


تصنع الأكواب من قيعان من زجاجات تحت مياه أجوشا للأطفال. يتم قطع الجزء السفلي بعناية ، وكل الثلاثة - على نفس المسافة ، بحيث يكون لديهم نفس الوزن ، يسخن محليًا في المركز (لا يسخن الكل في أي حال من الأحوال - سيشوه بشكل لا رجعة فيه!) وينحني الجزء الخلفي من المقبض الخشبي إلى الخارج لجعله أكثر انسيابية. سوف تتكرر - قم بتخزين زجاجات أكبر من خمس أو ست قطع ، ربما ستتمكن من صنع ثلاث أكواب أكثر أو أقل من نفس الكوب. في الكؤوس المصنوعة ، يتم إجراء قطع على الجانب ويتم تثبيتها على طول محيط القرص عند 120 درجة فيما يتعلق ببعضها البعض بمساعدة مانع التسرب الغراء المقاوم للماء. يتركز القرص بشكل صارم حول المحور (فعلت ذلك بمساعدة غسالة معدنية متداخلة) ويتم تركيبه على محور الكابرون مع مسامير M2.
التصميم العام وتركيب أجهزة الاستشعار
يتم وضع كلا المستشعرين ، كما سبق ذكره ، في علب بلاستيكية 150 × 150 × 90 ملم. يجب التعامل مع اختيار مواد الحالة بعناية: ABS أو البولي كربونات لديهم مقاومة كافية للطقس ، ولكن البوليسترين ، الزجاج الشفاف ، وخاصة البولي إيثيلين لن تكون مناسبة هنا (وسيكون من الصعب طلاءها للحماية من الشمس). إذا لم يكن من الممكن شراء صندوق الشركة ، فمن الأفضل لحام العلبة من الألياف الزجاجية الرقيقة ثم طلاءها لحمايتها من التآكل وإعطاء مظهر جمالي.
يتم صنع ثقب من 8-10 مم في الغطاء تمامًا عند نقطة خروج المحور ، حيث يتم قطع مخروط بلاستيكي من فوهة من علبة بخاخ مع مانع التسرب أو الغراء باستخدام نفس المادة اللاصقة:

لتوسيط المخروط على طول المحور ، استخدم مشبك لتثبيت قطعة من الخشب في الجزء السفلي من الغطاء ، وضع علامة على المركز الدقيق عليها وتعمق أكثر باستخدام مثقاب ريش 12 مم ، مما يجعل عطلة حلقية حول الفتحة. يجب أن يدخل المخروط هناك بالضبط ، وبعد ذلك يمكن طلاءه بالغراء. يمكن تثبيته بشكل إضافي في وضع رأسي لفترة التصلب باستخدام المسمار M6 والصمولة.
يغطي مستشعر السرعة نفسه المحور مع هذا المخروط ، مثل المظلة ، مما يمنع الماء من دخول الجسم. بالنسبة لريشة الطقس ، من الضروري إضافة كم فوق المخروط ، مما سيغلق الفجوة بين المحور والمخروط من تدفق المياه المباشر (انظر صورة المنظر العام لأجهزة الاستشعار أدناه).
يتم توجيه الأسلاك من optocouplers إلى موصل نوع D-SUB منفصل (انظر صورة مستشعر الاتجاه أعلاه). يتم إدخال النظير مع الكابل من خلال فتحة مستطيلة في قاعدة السكن. ثم يتم تغطية الفتحة بغطاء مع فتحة للكابل ، مما يمنع الموصل من السقوط. يتم تثبيت أقواس Duralumin على قاعدة السكن للتثبيت في المكان. يعتمد تكوينها على موقع أجهزة الاستشعار.
عند التجميع ، يبدو كلا المستشعرين كما يلي:

هنا تظهر أنها مثبتة بالفعل في مكانها - على حافة الشجرة. يرجى ملاحظة أن تجاويف البراغي التي تثبت الغطاء محمية ضد الماء بواسطة سدادات مطاطية خام. يتم تثبيت المستشعرات بشكل أفقي بشكل صارم في المستوى ، والتي اضطررت إلى استخدام البطانات من قطع المشمع.
الجزء الإلكتروني
تتكون محطة الطقس ككل من وحدتين: وحدة بعيدة (والتي تخدم كلاً من مستشعرات الرياح ، وتأخذ أيضًا قراءات من مستشعر درجة الحرارة والرطوبة الخارجي) ، والوحدة الرئيسية مع الشاشات. تم تجهيز الوحدة البعيدة بجهاز إرسال لاسلكي لإرسال البيانات المثبتة داخلها (يخرج الهوائي من الجانب). تتلقى الوحدة الرئيسية البيانات من الوحدة البعيدة (يتم وضع جهاز الاستقبال ، من أجل راحة اتجاهه ، على كابل في وحدة منفصلة) ، ويأخذ أيضًا قراءات من مستشعر درجة الحرارة والرطوبة الداخلي ويعرض كل هذا على شاشات العرض. مكون منفصل للوحدة الرئيسية هو ساعة مع تقويم ، من أجل راحة الإعداد العام للمحطة ، يتم خدمتها بواسطة وحدة تحكم Arduino Mini منفصلة ولها شاشات عرض خاصة بها.
الوحدة عن بعد ودائرة قياس أجهزة استشعار الرياح
كمنبع للصور ، تم اختيار IR-LEDs AL-107B. بالطبع ، هذه المصابيح القديمة ليست الأفضل في فئتها ، ولكن لديها حالة مصغرة بقطر 2.4 ملم وقادرة على إرسال تيار يصل إلى 600 مللي أمبير لكل نبضة. بالمناسبة ، اتضح خلال الاختبارات أن عينة LED حوالي 1980 (في الحالة الحمراء) لديها ما يقرب من ضعف الكفاءة (معبر عنها في نطاق التشغيل الموثوق للكاشف الضوئي) من النسخ الحديثة التي تم شراؤها في Chip-Dip (لديهم شفافية جسم أخضر مصفر). من غير المحتمل أن تكون البلورات في عام 1980 أفضل من الآن ، على الرغم من أن الجحيم لا يمزح؟ ومع ذلك ، من الممكن أن تكون المسألة في زوايا تشتت مختلفة في تصميم واحد والآخر.
تم تمرير تيار مستمر يبلغ حوالي 20 مللي أمبير (المقاوم 150 أوم مع مصدر طاقة 5 فولت) من خلال LED في مستشعر السرعة ، وتم تمرير نبض (تعرج مع دورة عمل 2) تيار حوالي 65 مللي أمبير (نفس 150 أوم مع مصدر طاقة 12 فولت) في مستشعر الاتجاه. يبلغ متوسط التيار من خلال LED واحد لمستشعر الاتجاه في هذه الحالة حوالي 33 مللي أمبير ، في أربع قنوات فقط - حوالي 130 مللي أمبير.
كمقاسات ضوئية ، تم اختيار الترانزستورات الضوئية L-32P3C في حالة يبلغ قطرها 3 مم. تم التقاط الإشارة من مجمّع تم تحميله على مقاوم 1.5 أو 2 كيلو أوم من مصدر 5 فولت ، ويتم تحديد هذه المعلمات بحيث تصل إشارة منطقية كاملة الحجم عند مستويات 5 فولت على الفور إلى المدخل دون تضخم إضافي على مسافة 20 مم تقريبًا بين باعث الصورة وجهاز الاستقبال. . قد تبدو التيارات التي تظهر هنا كبيرة بشكل غير متناسب لك ، استنادًا إلى الحد الأدنى لمتطلبات استهلاك الطاقة المذكورة أعلاه ، ولكن كما سترى ، تظهر في كل دورة قياس بحد أقصى عدة مللي ثانية بحيث يظل إجمالي الاستهلاك صغيرًا.
كان أساس تركيب أجهزة الاستقبال والانبعاثات هو أجزاء قناة الكابل (مرئية في صورة أجهزة الاستشعار أعلاه) ، المقطوعة لتشكيل "آذان" للتركيب على الحامل في القاعدة. لكل من هذه القصاصات ، تم لصق لوح بلاستيكي على غطاء القفل من الداخل ، متساوياً في العرض مع عرض القناة.
تم تثبيت مصابيح LED والترانزستورات الضوئية على المسافة المناسبة في الفتحات المحفورة في هذه اللوحة بحيث كانت الخيوط داخل القناة ، وكانت البروزات فقط في نهاية الأصداف بارزة إلى الخارج. يتم لحام الاستنتاجات وفقًا للرسم التخطيطي (انظر أدناه) ، والاستنتاجات الخارجية مصنوعة من قصاصات من سلك مرن متعدد الألوان. توجد أيضًا مقاومات لبواعث مستشعر الاتجاه داخل القناة ، ويتم استنتاج عام واحد منها. بعد فك اللولب ، يستقر الغطاء في مكانه ، ويتم إغلاق جميع الفتحات بالبلاستيك وشريط لاصق إضافي ، والذي يغلق أيضًا الثقب على الجانب المقابل للأطراف ، ويتم ملء الهيكل بالكامل بالإيبوكسي. يتم عرض الاستنتاجات الخارجية ، كما يمكن رؤيته في صورة أجهزة الاستشعار ، على الكتلة الطرفية المركبة على الجزء الخلفي من القوس.مخطط الدائرةتبدو وحدة معالجة مستشعرات الرياح على
النحو التالي : حول مصدر قوة 12-14 فولت ، انظر أدناه. بالإضافة إلى المكونات الموضحة في الرسم التخطيطي ، تحتوي الوحدة البعيدة على مستشعر درجة الحرارة والرطوبة ، والذي لا يظهر في الرسم التخطيطي. تم تصميم مقسم الجهد المتصل بالطرف A0 لجهاز التحكم للتحكم في جهد مصدر الطاقة لاستبداله في الوقت المناسب. إن مصباح LED المتصل بالطرف 13 التقليدي (المحطة 19 لمبيت DIP) شديد السطوع ، لأن توهجه العادي غير المبهر ، يكفي تيار كافي في جزء من مللي أمبير ، والذي يتم توفيره بواسطة معدل مقاومة مرتفع بشكل غير عادي يبلغ 33 كيلو أوم.يستخدم المخطط وحدة تحكم Atmega328 "عارية" في حزمة DIP ، مبرمجة عبر Uno ومثبتة على مقبس. يتم بيع وحدات التحكم هذه مع محمل Arduino المسجل بالفعل ، على سبيل المثال ، في Chip-Dip (أو يمكنك تسجيل المحمل بنفسك ). تتم برمجة وحدة التحكم هذه بشكل مريح في بيئة مألوفة ، ولكن ، خالية من المكونات الموجودة على اللوحة ، فهي ، أولاً ، أكثر اقتصادا ، وثانيا ، تأخذ مساحة أقل. يمكن الحصول على وضع كامل لتوفير الطاقة عن طريق التخلص من أداة تحميل التشغيل أيضًا (وعمومًا برسم جميع التعليمات البرمجية في المجمّع :) ، ولكن هنا ليس مناسبًا جدًا ، والبرمجة معقدة بشكل غير ضروري.في الرسم البياني ، تدور المستطيلات الرمادية حول مكونات مرتبطة بشكل منفصل بقنوات السرعة والاتجاه. ضع في اعتبارك تشغيل الدائرة ككل.يتم التحكم في تشغيل وحدة التحكم ككل بواسطة جهاز ضبط الوقت WDT ، والذي يتم تشغيله في وضع استدعاء المقاطعة. يوقظ WDT وحدة التحكم من وضع السكون على فترات محددة. إذا بدأ المؤقت مرة أخرى في المقاطعة التي تم استدعاؤها ، فلن يتم إعادة تشغيلها من البداية ، وتبقى جميع المتغيرات العامة عند قيمها. يسمح لك هذا بتجميع البيانات من الاستيقاظ إلى الاستيقاظ وفي مرحلة ما لمعالجتها - على سبيل المثال ، إلى المتوسط.في بداية البرنامج ، تم إصدار الإعلانات التالية عن المكتبات والمتغيرات العالمية (حتى لا يتم تشويش نص الأمثلة الشاملة بالفعل ، تم إصدار كل ما يتعلق بمستشعر درجة الحرارة والرطوبة هنا):#include <VirtualWire.h> #include <avr/wdt.h> #include <avr/sleep.h> . . . . . #define ledPin 13 // (PB5 19 ATmega) #define IR_Pin 10 // IRLU (PB2 16 Atmega) #define in_3p 9 // 3 #define in_2p 8 // 2 #define in_1p 7 // 1 #define in_0p 6 // 0 #define IR_PINF 5 //(PD5,11) - #define IN_PINF 4 //(PD4,6) volatile unsigned long ttime = 0; // float ff[4]; // char msg[25]; // byte count=0;// int batt[4]; // byte wDir[4]; // byte wind_Gray=0; //
يتم استخدام الإجراءات التالية لبدء وضع السكون و WDT (الاستيقاظ كل 4 ثوان):
// void system_sleep() { ADCSRA &= ~(1 << ADEN); //. cbi(ADCSRA,ADEN); set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep_mode(); // sleep_disable(); // watchdog ADCSRA |= (1 << ADEN); /. sbi(ADCSRA,ADEN); } //**************************************************************** // ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; if (ii > 9 ) ii=9; bb=ii & 7; if (ii > 7) bb|= (1<<5); // bb - bb|= (1<<WDCE); MCUSR &= ~(1<<WDRF); // WDTCSR |= (1<<WDCE) | (1<<WDE); // WDTCSR = bb; WDTCSR |= (1<<WDIE); // WDT } //**************************************************************** // ISR(WDT_vect) { wdt_reset(); }
يعطي مستشعر السرعة تواتر انقطاع القناة الضوئية ، وترتيب الحجم بضع عشرات من هرتز. يعد قياس هذه القيمة أكثر اقتصادية وأسرع بعد فترة (كان هذا موضوع منشور المؤلف "
تقييم طرق قياس الترددات المنخفضة على Arduino "). هنا ، يتم تحديد الطريقة من خلال وظيفة pulseInLong () المعدلة ، والتي لا تربط القياس بمخرجات وحدة تحكم معينة (يمكن العثور على نص وظيفة periodInLong () في المنشور).
في وظيفة الإعداد () ، يتم الإعلان عن اتجاهات الإخراج ، وتتم تهيئة مكتبة جهاز الإرسال 433 ميجاهرتز وتوقيت المراقبة (يكون خط IN_PINF غير ضروري في الأساس ، ويتم إدخاله للذاكرة):
void setup() { pinMode(IR_PINF, OUTPUT); // pinMode(IN_PINF, INPUT); // pinMode(13, OUTPUT); // vw_setup(1200); // VirtualWire vw_set_tx_pin(2); //D2, PD2(4) VirtualWire // Serial.begin(9600); // Serial- setup_watchdog(8); //WDT 4 c wdt_reset(); }
أخيرًا ، في الدورة الرئيسية للبرنامج ، نبدأ أولاً في كل مرة نستيقظ فيها (كل 4 ثوانٍ) نقرأ الجهد ونحسب تردد مستشعر سرعة الرياح:
void loop() { wdt_reset(); // digitalWrite(ledPin, HIGH); // batt[count]=analogRead(0); // /*=== ==== */ digitalWrite(IR_PINF, HIGH); // - float f=0; // ttime=periodInLong(IN_PINF, LOW, 250000); // 0,25 // Serial.println(ttime); // if (ttime!=0) {// f = 1000000/float(ttime);} // digitalWrite(IR_PINF, LOW); // - ff[count]=f; // . . . . .
سيكون وقت حرق LED LED (يستهلك ، أذكر ، 20 مللي أمبير) هنا ، كما ترون ، أقصى حد في حالة عدم دوران قرص المستشعر وفي هذه الحالة سيكون حوالي 0.25 ثانية. وبالتالي ، سيكون الحد الأدنى للتردد المقاس 4 هرتز (ربع دورة القرص في الثانية مع 16 حفرة). كما اتضح أثناء معايرة المستشعر (انظر أدناه) ، هذا يتوافق مع ما يقرب من 0.2 م / ث من سرعة الرياح. نؤكد أن هذه هي أصغر قيمة قابلة للقياس لسرعة الرياح ، ولكنها ليست دقة وليست عتبة لبدء التشغيل (والتي ستكون أعلى بكثير). إذا كان هناك تردد (أي عندما يدور المستشعر) ، فسيتم تقليل وقت القياس (وبالتالي ، وقت احتراق LED ، أي الاستهلاك الحالي) بشكل نسبي ، وستزداد الدقة.
فيما يلي الإجراءات التي يتم إجراؤها كل صحوة رابعة (أي كل 16 ثانية). قيمة تردد مستشعر السرعة من القيم الأربع المتراكمة التي نرسلها ليست متوسطة ، ولكنها قصوى - كما أظهرت التجربة ، هذه قيمة أكثر إفادة. من أجل الراحة والتوحيد ، يتم تحويل كل قيمة ، بغض النظر عن نوعها ، قبل الإرسال إلى عدد صحيح موجب من 4 منازل عشرية. يتم مراقبة متغير العد بواسطة متغير العد:
// 16 // 4- : if (count==3){ f=0; // for (byte i=0; i<4; i++) if (f<ff[i]) f=ff[i]; // int fi=(int(f*10)+1000); // 4 . int volt=0; // for (byte i=0; i<4; i++) volt=volt+batt[i]; volt=volt/4+100; // 100 = 3 . volt=volt*10; // 4 . . . . . .
التالي هو تعريف اتجاه الكود الرمادي. هنا ، للحد من الاستهلاك ، بدلاً من باستمرار على مصابيح LED IR ، يتم توفير تردد 5 كيلو هرتز لجميع القنوات الأربع في وقت واحد من خلال ترانزستور تأثير المجال الرئيسي باستخدام وظيفة نغمة (). تم الكشف عن وجود تردد في كل من التصريفات (مخرجات in_0p - in_3p) باستخدام طريقة مشابهة لمقاومة الارتداد عند قراءة قراءات الزر المضغوط. أولاً ، ننتظر في الدورة لمعرفة ما إذا كان هناك مستوى عالٍ في الإخراج ، ثم نتحقق منه بعد 100 μs. 100 μs هي نصف فترة تردد 5 كيلو هرتز ، أي إذا كان هناك تردد على الأقل من المرة الثانية ، فسوف ننخفض مرة أخرى إلى مستوى عالٍ (فقط في حالة التكرار أربع مرات) وهذا يعني أنه موجود بالتأكيد. نكرر هذا الإجراء لكل من البتات الأربعة من التعليمات البرمجية:
/* ===== Wind Gray ==== */ //: tone(IR_Pin,5000);// 5 boolean yes = false; byte i=0; while(!yes){ // 3 i++; boolean state1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100 yes=(state1 & !digitalRead(in_3p)); if (i>4) break; // } if (yes) wDir[3]=1; else wDir[3]=0; yes = false; i=0; while(!yes){ // 2 i++; boolean state1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100 yes=(state1 & !digitalRead(in_2p)); if (i>4) break; // } if (yes) wDir[2]=1; else wDir[2]=0; yes = false; i=0; while(!yes){ // 1 i++; boolean state1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // 100 yes=(state1 & !digitalRead(in_1p)); if (i>4) break; // } if (yes) wDir[1]=1; else wDir[1]=0; yes = false; i=0; while(!yes){ // 0 i++; boolean state1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // 100 yes=(state1 & !digitalRead(in_0p)); if (i>4) break; // } if (yes) wDir[0]=1; else wDir[0]=0; noTone(IR_Pin); // // : wind_Gray=wDir[0]+wDir[1]*2+wDir[2]*4+wDir[3]*8; // . int wind_G=wind_Gray*10+1000; // 4- . . . . . .
ستكون المدة القصوى لإجراء واحد في حالة عدم وجود تردد في المستقبل وتساوي 4 × 100 = 400 ميكروثانية. سيكون الحد الأقصى لوقت الاحتراق لأربعة مؤشرات LED في حالة عدم إضاءة أجهزة الاستقبال ، أي 4 × 400 = 1.6 مللي ثانية. بالمناسبة ، ستعمل الخوارزمية بالطريقة نفسها تمامًا ، إذا كان من السهل تطبيق مستوى عال ثابت على مصابيح LED بدلاً من التردد الذي تكون فترته مضاعفة لـ 100 μs. إذا كان هناك متعرج بدلاً من مستوى ثابت ، فإننا ببساطة نحفظ الطعام بمقدار النصف. لا يزال بإمكاننا الحفظ إذا بدأنا كل IR LED من خلال خط منفصل (على التوالي ، من خلال خرج منفصل من وحدة التحكم مع الترانزستور الرئيسي الخاص به) ، ولكن في نفس الوقت تكون الدائرة والأسلاك والتحكم معقدة ، والتيار هو 130 مللي أمبير لمدة 2 مللي ثانية كل 16 ثانية - هذا ، كما ترون ، قليلا.
أخيرًا ،
نقل البيانات لاسلكيًا . لنقل البيانات من موقع تركيب المستشعر إلى لوحة نتائج محطة الطقس ، تم اختيار الطريقة الأبسط والأرخص والأكثر موثوقية:
زوج جهاز إرسال / استقبال بتردد 433 ميجاهرتز . أوافق على أن الطريقة ليست هي الأكثر ملاءمة (نظرًا لأن الأجهزة مصممة لإرسال تسلسلات بت ، وليس وحدات بايت كاملة ، عليك تحسين رأيك حول تحويل البيانات بين التنسيقات الضرورية) ، وأنا متأكد من أن العديد من الأشخاص سيرغبون في مجادلتي من حيث موثوقيتها. الجواب على الاعتراض الأخير بسيط: "أنت فقط لا تعرف كيف تطبخهم!"
السر هو أنه عادة ما يبقى خلف الكواليس لأوصاف مختلفة لتبادل البيانات على قناة 433 ميجاهرتز: نظرًا لأن هذه الأجهزة تناظرية بحتة ، يجب تنظيف مصدر الطاقة إلى جهاز الاستقبال جيدًا جدًا من أي نبضات غريبة. لا يجب عليك بأي حال من الأحوال تشغيل جهاز الاستقبال من مثبت اردوينو 5 فولت الداخلي! يؤدي تثبيت مثبت منفصل منخفض الطاقة للمستقبل (LM2931 أو LM2950 أو ما شابه) مباشرة بالقرب من أطرافه ، مع دوائر التصفية الصحيحة عند المدخلات والمخرجات ، إلى زيادة نطاق الإرسال والموثوقية بشكل جذري.
في هذه الحالة ، عمل جهاز الإرسال مباشرة من جهد البطارية 12 فولت ، وتم تجهيز جهاز الاستقبال وجهاز الإرسال بهوائيات محلية الصنع قياسية على شكل قطعة من الأسلاك بطول 17 سم. تم نقل حزمة معلومات 24 بايت (مع مراعاة الرطوبة ودرجة الحرارة) دون أي مشاكل بثقة بسرعة 1200 بت / ثانية قطريًا من خلال قطعة أرض مساحتها 15 فدانًا (حوالي 40-50 مترًا) ، ثم من خلال ثلاثة سجلات الجدران داخل الغرفة (حيث ، على سبيل المثال ، يتم استقبال إشارة خلوية بصعوبة كبيرة وليس في كل مكان). الشروط التي لا يمكن تحقيقها عمليًا لأي طريقة قياسية 2.4 جيجا هرتز (مثل Bluetooth و Zig-Bee وحتى Wi-Fi للهواة) ، على الرغم من حقيقة أن استهلاك جهاز الإرسال هنا بائس 8 مللي أمبير وفقط في وقت الإرسال الفعلي ، بقية الوقت الذي يستهلكه جهاز الإرسال بنسات. يتم وضع جهاز الإرسال داخل الوحدة البعيدة بشكل هيكلي ، ويخرج الهوائي أفقيًا من الجانب.
نقوم بدمج جميع البيانات في حزمة واحدة (في محطة حقيقية ، سيتم إضافة درجة الحرارة والرطوبة إليها) ، والتي تتكون من أجزاء موحدة من 4 بايت ويسبقها توقيع "DAT" ، وإرسالها إلى جهاز الإرسال وإكمال جميع الدورات:
/*=====Transmitter=====*/ String strMsg="DAT"; // - strMsg+=volt; // 4 strMsg+=wind_G; // wind 4 strMsg+=fi; // 4 strMsg.toCharArray(msg,16); // // Serial.println(msg); // vw_send((uint8_t *)msg, strlen(msg)); // vw_wait_tx(); // - ! delay(50); //+ count=0; // }//end count==3 else count++; digitalWrite(ledPin, LOW); // system_sleep(); // — } //end loop
يمكن تقليل حجم الحزمة إذا رفضت شرط تقديم كل قيمة من أنواع مختلفة في شكل رمز 4 بايت موحد (على سبيل المثال ، بالنسبة للرمز الرمادي ، بالطبع ، بايت واحد يكفي). ولكن من أجل العالمية ، تركت كل شيء كما هو.
ميزات التغذية والتصميم للوحدة البعيدة . يتم حساب استهلاك الوحدة البعيدة بهذه الطريقة:
- 20 مللي أمبير (باعث) + ~ 20 مللي أمبير (وحدة تحكم مع دوائر مساعدة) لحوالي 0.25 ثانية كل أربع ثوان - بمعدل 40/16 = 2.5 مللي أمبير ؛
- 130 مللي أمبير (بواعث) + ~ 20 مللي أمبير (وحدة تحكم مع دوائر مساعدة) لحوالي 2 مللي ثانية كل 16 ثانية - بمتوسط 150/16/50 ≈ 0.2 مللي أمبير ؛
بعد إلقاء هذا الحساب على استهلاك وحدة التحكم عند أخذ البيانات من مستشعر درجة الحرارة والرطوبة وعندما يعمل جهاز الإرسال ، يمكننا رفع متوسط الاستهلاك بأمان إلى 4 مللي أمبير (مع ذروة تبلغ حوالي 150 مللي أمبير ، ضع في اعتبارك!). يجب تغيير البطاريات (التي ، بالمناسبة ، ما يصل إلى 8 قطع لتزويد جهاز الإرسال بالجهد الأقصى!) في كثير من الأحيان ، لذلك كانت الفكرة هي تشغيل الوحدة البعيدة من بطاريات 12 فولت لمفك البراغي - كان لدي اثنان فقط. قدرتها أقل من العدد المقابل من بطاريات AA - فقط 1.3 ألف • ساعة ، ولكن لا يزعج أحد بتغييرها في أي وقت ، مع إبقاء الشحن الثاني جاهزًا. مع الاستهلاك المشار إليه وهو 4 مللي أمبير ، فإن سعة 1300 مللي أمبير • ساعة تكفي لمدة أسبوعين تقريبًا ، وهذا ليس مزعجًا للغاية.
لاحظ أن جهد البطارية المشحونة حديثًا يمكن أن يصل إلى 14 فولت. تم تركيب مثبت جهد 12 فولت في هذه الحالة - من أجل منع الجهد الزائد لمصدر طاقة المرسل وليس التحميل الزائد للمثبت الرئيسي بخمسة فولت.
توجد الوحدة المحمولة في صندوق بلاستيكي مناسب تحت السقف ، ويتم توصيل كابل طاقة من البطارية ووصلات بأجهزة استشعار الرياح على الموصلات. تتمثل الصعوبة الرئيسية في أن الدائرة أصبحت حساسة للغاية لرطوبة الهواء: في الطقس الممطر ، بعد ساعتين يبدأ المرسل في الفشل ، تظهر قياسات التردد فوضى كاملة ، وتظهر قياسات جهد البطارية "الطقس على كوكب المريخ".
لذلك ، بعد تصحيح الخوارزميات والتحقق من جميع الاتصالات ، يجب إغلاق الحالة بعناية. يتم إغلاق جميع الموصلات عند مدخل السكن بمواد مانعة للتسرب ، وينطبق الشيء نفسه على جميع رؤوس البراغي البارزة ، وخرج الهوائي وكابل الطاقة. يتم تلطيخ مفاصل الجسم بالبلاستيك (مع مراعاة أنه يجب فصلها) ، بالإضافة إلى لصقها في الأعلى بشرائط من شريط السباكة. من الجيد تقوية الموصلات المستخدمة بداخلها مع الإيبوكسي بلطف: على سبيل المثال ،
DB-15 الموضح في الرسم البياني للوحدة البعيدة ليس ضيقًا في حد ذاته ، وسوف يتسرب الهواء الرطب ببطء بين الإطار المعدني والقاعدة البلاستيكية.
ولكن كل هذه الإجراءات في حد ذاتها لن تعطي سوى تأثير قصير المدى - حتى إذا لم يكن هناك شفط للهواء الرطب البارد ، فإن الهواء الجاف من الغرفة يتحول بسهولة إلى هواء رطب عندما تنخفض درجة الحرارة خارج السكن (تذكر الظاهرة التي تسمى "نقطة الندى").
لتجنب ذلك ، من الضروري ترك خرطوشة أو حقيبة بها مجفف - هلام السيليكا داخل العلبة (توضع الحقائب في بعض الأحيان في صناديق مع حذاء أو في بعض العبوات مع الأجهزة الإلكترونية). إذا تم تخزين هلام السيليكا من أصل غير معروف لفترة طويلة ، فيجب تحميصه قبل استخدامه في فرن كهربائي عند 140-150 درجة لعدة ساعات. إذا تم إغلاق العلبة بشكل صحيح ، فيجب استبدال المجفف في كثير من الأحيان في بداية كل موسم صيفي.
الوحدة الرئيسية
في الوحدة الرئيسية ، يتم قبول جميع القيم ، وفك تشفيرها ، إذا لزم الأمر ، وتحويلها وفقًا لمعادلات المعايرة وعرضها.
يتم وضع جهاز الاستقبال خارج الوحدة الرئيسية للمحطة ويوضع في صندوق صغير مع آذان للتثبيت. يتم إخراج الهوائي من خلال فتحة في الغطاء ، ويتم إغلاق جميع الفتحات في السكن بمطاط خام. يتم توصيل جهات اتصال جهاز الاستقبال بموصل محلي موثوق به للغاية من نوع RS-4 ، ويتم توصيله من جانب جهاز الاستقبال من خلال قطعة من كبل AV مزدوج محمية:

يتم التقاط إشارة على طول أحد نوى الكابلات ، ومن ناحية أخرى ، يتم توفير الطاقة في شكل 9 فولت خام من محول طاقة الوحدة. يتم تثبيت نوع المثبت LM-2950-5.0 مع مكثفات الترشيح في صندوق مع جهاز الاستقبال على وشاح منفصل.
تم إجراء التجارب لزيادة طول الكابل (فقط في حالة عدم عمل فجأة من خلال الجدار؟) ، حيث اتضح أنه لا شيء يتغير في طول يصل إلى 6 أمتار.
لا يوجد سوى أربع شاشات OLED: اثنان من بيانات الطقس الأصفر ، وساعتين خضراء وتقويم. يظهر موضعهم في الصورة:

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

هنا ، على عكس الوحدة البعيدة ، يظهر اتصال أجهزة استشعار الطقس - بارومتر ومستشعر درجة الحرارة والرطوبة الداخلي. انتبه إلى الأسلاك الكهربائية - يتم تشغيل الشاشات بواسطة مثبت 5 فولت منفصل نوع LM1085. من الطبيعي أن تعمل الطاقة على عرض الساعة منها ، ولكن في هذه الحالة يجب أيضًا تشغيل وحدة تحكم الساعة بنفس الجهد ، ومن خلال خرج 5 فولت ، وليس Vin (بالنسبة لـ Mini Pro ، يُطلق على الأخير اسم RAW). إذا قمت بتشغيل وحدة تحكم الساعة بنفس طريقة Nano - 9 volts من خلال دبوس RAW ، فسوف يتعارض المثبت الداخلي مع 5 فولت الخارجية ، وبالطبع ، سيفوز الأقوى في هذه المعركة ، أي LM1085 ، وسيترك Mini تمامًا بدون كهرباء. أيضًا ، لتجنب جميع أنواع المشاكل ، قبل برمجة Nano وخاصة Mini (أي قبل توصيل كبل USB) ، يجب فصل المحول الخارجي.
في مثبت LM1085 ، عندما يتم توصيل جميع الشاشات الأربعة ، سيتم تخصيص الطاقة حول وات ، وبالتالي يجب تثبيتها على مشعاع صغير حوالي 5-10 سم 2 من زاوية من الألومنيوم أو النحاس.
استقبال ومعالجة البيانات. أقوم هنا بإعادة إنتاج أجزاء من البرنامج المتعلقة ببيانات الرياح والتعليق عليها فقط ، بضع كلمات حول أجهزة استشعار أخرى أدناه.
لاستقبال رسالة على قناة MHz 433 ، تكون الطريقة القياسية الموضحة في العديد من المصادر قابلة للتطبيق. نربط المكتبة ونعلن المتغيرات:
#include <VirtualWire.h> . . . . . int volt; // float batt; // — byte wDir; // uint16_t t_time = 0; // char str[5]; // uint8_t buf[VW_MAX_MESSAGE_LEN]; // uint8_t buflen = VW_MAX_MESSAGE_LEN; // max . . . . .
ترتبط خصوصية واحدة بحجم المخزن المؤقت: لا يكفي الإعلان عن قيمته (VW_MAX_MESSAGE_LEN) مرة واحدة في بداية البرنامج. نظرًا لأن هذا المتغير يظهر كمرجع في دالة التلقي (انظر أدناه) ، يجب تحديث حجم الرسالة الافتراضي في كل دورة. خلاف ذلك ، نظرًا لاستقبال الرسائل التالفة ، سيتم اختصار قيمة buflen في كل مرة حتى تبدأ في الحصول على جميع أنواع الهراء بدلاً من البيانات. في الأمثلة ، عادة ما يتم الإعلان عن كلا هذين المتغيرين محليًا في دورة الحلقة () ، لأن حجم المخزن المؤقت يتم تحديثه تلقائيًا ، وهنا سنقوم ببساطة بإعادة تعيين القيمة المطلوبة في بداية كل دورة.
في إجراء الإعداد ، قم بإجراء الإعدادات التالية: void setup() { delay (500); // pinMode(16,INPUT_PULLUP); // vw_setup(1200); // VirtualWire vw_set_rx_pin(17); //A3 VirtualWire . . . . .
قبل قبول شيء ما ، انقضى الفاصل الزمني t_time منذ فحص آخر استقبال. إذا تجاوزت الحدود المعقولة (على سبيل المثال ، 48 ثانية - ثلاث مرات وقت إعادة محاولة الرسائل من الوحدة الخارجية) ، فسيتم اعتبار ذلك على أنه فقد للمستشعر ويتم عرضه بطريقة ما على الشاشة: void loop() { vw_rx_start(); // buflen = VW_MAX_MESSAGE_LEN; // if ((int(millis()) - t_time) > 48000) // t_time 48 { < > }//end if (vw_have_message()) { // if (vw_get_message(buf, &buflen)) // { vw_rx_stop(); // t_time = millis(); // t_time for (byte i=0;i<3;i++) // str[i]= buf[i]; str[3]='\0'; if((str[0]=='D')&&(str[1]=='A')&&(str[2]=='T')) { // // : for (byte i=3;i<7;i++) // str[i-11]= buf[i]; // volt=atoi(str); // volt=(volt/10)-100; // 4- batt=float(volt)/55.5; // // for (byte i=7;i<11;i++) // str[i-15]= buf[i]; // int w_Dir=atoi(str); // w_Dir=(w_Dir-1000)/10; // wDir=lowByte(w_Dir); // - < case> . . . . .
المعامل 55.5 - تحويل قيمة رمز ADC إلى جهد حقيقي ، وتعتمد قيمته على الجهد المرجعي وقيم المقاومات للمقسم.بالمناسبة ، يحتوي الرمز الرمادي على ميزة واحدة: ترتيب البتات ليس مهمًا فيه ، يحفظ الرمز جميع خصائصه عند إعادة ترتيبها. ومنذ فك التشفير ، ما زلنا نعتبر كل حالة على حدة ، يمكن عرض البتات بأي ترتيب وحتى الخلط عند الاتصال. إنها مسألة أخرى إذا كنت ترغب في فرز هذه المسألة بطريقة ما - على سبيل المثال ، قم بإنشاء مجموعة من قيم الاتجاه ("s" ، "ssz" ، "sz" ، "ssz" ، "z" ، إلخ.) ، وبدلاً من التفكير الفردي كل خيار لاستخراج التعيينات حسب الرقم في هذا المصفوفة. ثم سيكون من الضروري تحويل الرمز الرمادي إلى ثنائي منظم ، ويلعب ترتيب البتات دورًا مهمًا.وأخيرًا ، نستخرج قيمة السرعة ونغلق جميع العوامل: . . . . . for (byte i=19;i<23;i++) // str[i-19]= buf[i]; // int wFrq=atoi(str); // wFrq = (wFrq-1000)/10; // 4- wFrq=10+0.5*wFrq;// < > }//end if str=DAT }//end vw_get_message } //end vw_have_message(); . . . . .
هنا 10 + 0.5 * wFrq هي معادلة المقياس. 10 dm / s (أي 1.0 متر في الثانية) هي عتبة البدء ، و 0.5 هو معامل لتحويل التردد إلى سرعة (dm / s). مع القيمة الصفرية لتردد المدخلات ، تعطي هذه المعادلة 10 dm / s ، لذلك يجب توخي الحذر بشكل منفصل بحيث لا تكون 1 m / s ، ولكن قيمة صفرية. يمكنك معايرة مستشعر السرعة باستخدام أي من أرخص مقاييس شدة الريح المحمولة ومراوح سطح المكتب. لا تحاول تحديد عتبة البدء تجريبيًا - سيكون أكثر دقة إذا لوحظت نقطتان أو ثلاث نقاط من القيمة المباشرة للمعايرة للسرعة V مقابل التردد F: V = V + K × F بمعدلات تدفق مختلفة ، ثم يتم تحديد عتبة البدء تلقائيًا كقيمة V (إحداثيات النقطة تقاطع هذا الخط مع محور السرعات).قبل إغلاق الحلقة الرئيسية ، تحتاج إلى القيام بشيء آخر. لدينا جهد البطارية ، لكنك لست بحاجة إلى عرضه طوال الوقت - فقط شغل مساحة. للقيام بذلك ، نحتاج إلى زر Kn1 - بالنقر فوقه ، نقوم مؤقتًا (حتى تحديث البيانات التالي) باستبدال خط درجة الحرارة والرطوبة الخارجية بقيمة الجهد: . . . . . if (digitalRead(16)==LOW){ // < , -> }// delay(500); }// loop
كان لدي زر ، كما يمكن رؤيته من الدائرة ، مع جهة اتصال متغيرة ، ولكن لا شيء يمنع تثبيت المعتاد مع جهة اتصال مغلقة ، وربطه بمصدر الطاقة من خلال المقاوم. يمكنك أيضًا إضافة وميض الرموز على الشاشة إذا انخفض جهد البطارية أدناه ، على سبيل المثال ، 10 فولت ، كإشارة إلى أن الوقت قد حان لتغييره.في الختام حول أجهزة استشعار الطقس. تم استخدام SHT-75 كمستشعر خارجي - جهاز استشعار الهواة الوحيد الذي وجدته ولا يتطلب معايرة ويظهر قيمًا حقيقية لكل من درجة الحرارة والرطوبة "مباشرة من الصندوق" (ومن ثم سعره المرتفع).يمكن العثور على مكتبة لربطها هنا .تم تصميم SHT-75 إلى حد ما بغباء: الركيزة المعدنية للوحة تحمل الحرارة بشكل جيد للغاية ، لذلك يجب إزالتها تمامًا خارج العلبة. خلاف ذلك ، فإن وجود وحدة تحكم واحدة فقط من نوع ATmega328 مع منظم طاقة في حالة مغلقة يكفي لتسخين المستشعر من خلال الركيزة بدرجتين حتى لو تم إخراج رأسه. مخطط بلدي مع أجهزة استشعار الرياح ، مع تياراتها من 20-130 مللي أمبير (حتى تيارات من المللي غير المهم) يسخن SHT-75 درجة بمقدار خمسة ، لذلك تم إخراجه وتثبيته بشكل منفصل على لوحة بلاستيكية تخرج من الحالة الجانبية.يتم أخذ البيانات من SHT-75 من قبل نفس وحدة التحكم مثل البيانات من أجهزة استشعار الرياح وإرسالها من وحدة التحكم عن بعد في حزمة واحدة عبر قناة لاسلكية 433 ميجاهرتز. للإرسال ، يتم أيضًا تحويلها بشكل مبدئي إلى تنسيق سلسلة 4 بايت.لقياس درجة الحرارة والرطوبة داخل الغرفة ، تم اختيار DHT-22 العادي - نظرًا لأن النطاق هناك صغير مقارنة بالشارع ، فلا فرق بين المستشعر الذي يجب استخدامه (باستثناء ، بالطبع ، DHT-11 ، والذي لا ينبغي استخدامه على الإطلاق تحت أي ظرف من الظروف ، في إنها ببساطة لا تعمل). تم تصحيح درجة حرارة DHT-22 من خلال القياسات باستخدام ميزان حرارة زئبقي (تزامنت تمامًا مع SHT-75!) ، وتم تسوية الرطوبة قليلاً بالمقارنة مع SHT-75. يتم إدخال التصحيحات مباشرة قبل العرض.بالمناسبة ، يحتاج DHT-22 أيضًا إلى الابتعاد عن العلبة مع الشاشات - وإلا فإنه سوف يسخن ويكذب حتمًا. أقوم بإصلاحه على حامل بلاستيكي في الجزء السفلي من العلبة ، على مسافة عشرة ملليمترات منه. هذا الظرف ، بالمناسبة ، كما أظن ، هو أحد الأسباب (باستثناء عدم وجود معايرة فردية) أن جميع محطات الطقس المنزلية ذات العلامات التجارية RST وأوريجون تقع بشكل مخجل في الشهادة ، حتى أن لديها انتشارًا لنفسها (جهاز استشعار داخلي مع جهاز خارجي) من درجتين إلى ثلاث درجات ورطوبة تصل إلى عشرة بالمائة.بارومترلا يمثل مشاكل ، حيث يتم تصنيع جميع المنتجات المتاحة تجاريًا تقريبًا على نفس الأساس - رقاقة BMP180 الكهروميكانيكية الدقيقة (MEMS) أو تعديلاتها. كانت تجربتي الشخصية في محاولة استخدام متغير نادر بناءً على LPS331AP سلبية: كان من الصعب العثور على مكتبة لها ، وأهمها ، تم العثور على تعارض مع أجهزة أخرى على ناقل I2C. قد يلزم تعديل قراءات البارومتر في موقع التركيب - كل 10-12 مترًا فوق مستوى سطح البحر يقلل الضغط بمقدار 1 مم زئبق. الفن.
لذلك ، يجب طرح (أو إضافة) قيمة معينة من القراءات بحيث يتوافق الضغط مع قراءات محطة الأرصاد الجوية الرسمية في المنطقة.أنا لا أحمل جميع برامج محطة الطقس بالكامل - فهي ضخمة إلى حد ما ، ولن تتمكن من تكرار البناء واحد لواحد. إذا كان أي شيء ، اطرق على PM.UPD من 06/30/17. الطاقة المركبة من الألواح الشمسية. مجموعة من هنا: وحدة تحكمالألواح الشمسيةالبطاريةالكل معًا + التسليم في موسكو في غضون 2.5 tyr. يعمل بشكل لا تشوبه شائبة.تقنية مثيرة للاهتمام لحساب قوة البطارية الشمسية والبطارية ، والتي يقدمها استشاريون من هذا الموقع. كمثال على حساب 3 واط من استهلاك الطاقة (لدي أقل بكثير) ، أقتبس:"3 وات مضروبة في 24 ساعة ومقسمة على 6 = 12 أمبير وهذا هو الحد الأدنى لسعة البطارية3 وات مضروبًا في 24 ساعة ومقسومًا على 3 ساعات = 24 واط هذه هي الحد الأدنى من طاقة البطارية الشمسية"لا تعليق.
في حالتي ، الطاقة الناتجة لمحطة للطاقة الشمسية أعلى بعشر مرات مما هو ضروري في أسوأ الظروف الجوية. لذلك ، في وحدة تحكم المستشعر ، لا يمكنك القلق بشكل خاص بشأن توفير الطاقة ، وتطبيق أي ترددات ضرورية لأخذ القراءات وقيم المتوسط.UPD من 09/13/18. خلال موسمي التشغيل تقريباً ، تم الكشف عن نقاط القوة والضعف في المحطة. ضعيف - أولاً وقبل كل شيء ، فإن دورة تحديث قراءات 16 ثانية (من أربع سلاسل من القياسات) ، كما كانت في البداية ، طويلة جدًا. سمح لنا تثبيت بطارية شمسية ببطارية عازلة بعدم التفكير في توفير الطاقة واللعب مع وقت الدورة. ونتيجة لذلك ، تم ضبط الدورة على 8 ثوانٍ (أربعة قياسات في ثانيتين).من التحسينات الميكانيكية ، تم إدخال محمل دفع قوي تحت طرف مستشعر السرعة (نعم ، تم تحذيري من ضرورته في ذلك الوقت ، لكنني لم أعرف كيفية القيام بذلك في ذلك الحين). بعد مرور بعض الوقت ، قطع محور المستشعر تمامًا من خلال دعم الفلوروبلاستيك وزاد عتبة البدء بشكل حاد (بالمناسبة ، هذا لم يؤثر على حساسية ريشة الطقس). لذلك ، تم استبدال الدعم بمحمل دفع من الفولاذ المقاوم للصدأ ، حيث تم عمل تجويف صغير باستخدام مثقاب رقيق. أتوقع أنه بعد ذلك سوف أضطر إلى التوصل إلى شيء آخر بنقطة ، والتي ، مثل المحور بأكمله ، مصنوعة من دورالومين. لكنني أجلته حتى اللحظة التي لا يزال يتعين فيها إعادة عمل المستشعر: أصبح قرص الليزر ، الذي تم أخذه كأساس للتصميم ، غائمًا من الشمس لمدة موسمين وبدأ في التصدع.UPD من 06/05/19.حول تغيير المستشعر (نفس ريشة الطقس اليسرى). يجب إعادة تصميم مستشعر السرعة بسبب المحور البالي وبسبب قرص الليزر غير القابل للاستخدام. يتم ترك قاعدة التصميم كما هي ، ولكن قرص الليزر الجديد مطلي بطلاء ذهبي. تم العثور على الحل لرأس المحور في الشكل التالي. تم حفر تجويف بدقة في المحور الجوفي بالضبط في المركز ، وتم إدخال جزء علوي من الصنبور الصيني بمقدار 3 مم على الغراء الثاني هناك. الحافة عند الصنبور عبارة عن مخروط متمركز جيدًا بزاوية حوالي 70-80 درجة ، كما تم تلميعه بجلد خالي ثم معجون GOI. كقاعدة ، استخدمت رأس برغي M3 غير القابل للصدأ مع فتحة منشار ، حيث يتم وضع علامة على تجويف مركزي صغير مع مثقاب تقليدي D = 2 مم. تم ثني هذا البرغي مباشرة في التجويف في البلاستيك الفلوري ،المنشار بمحور في وقت أبكر من المحاذاة.تم تشحيم طرف المحور بشحم الجرافيت لحمايته من التآكل (لأن خصائص الصنبور غير القابل للصدأ غير معروفة بالنسبة لي). بعد بعض الطحن ، انخفض عتبة البدء كثيرًا لدرجة أنه أصبح من المستحيل قياسها باستخدام مقياس شدة الريح ذي العلامة التجارية ، حيث يكون العتبة حوالي 0.3-0.5 سم / ثانية. وفقًا للبيانات غير المباشرة (من خلال إنشاء خط مستقيم عند نقطتين) ، تم اعتماد عتبة 0.3 م / ث طوعًا ، على الرغم من أنه من المحتمل أن يكون أقل قليلاً.التغيير الرئيسي في خوارزميات الحساب يتعلق أيضًا بمستشعرات الرياح ، ووجدت أنه من المفيد وضع هذا في مقالة منفصلة .