جدول المحتويات:
- الخطوة 1: تحميل كعب البرنامج المساعد
- الخطوة الثانية: البحث عن البيانات على المجس
- الخطوة الثالثة: اللمسات الأخيرة
- الخطوة 4: استخدامه في سياق أكبر
- الخطوة 5: ختام الكلمات
فيديو: FlowerCare و Nymea لإنقاذ نباتاتي: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
الحصول على أيدي متسخة عند تركيب مستشعرات العناية بالنباتات في منزلي الذكي الحالي مفتوح المصدر. تجول حول تطوير البرنامج المساعد لـ nymea.
القصة
مثل العديد من المخترقين والمصلحين الآخرين ، فأنا أعاني أيضًا من مشكلة أن القرصنة على الأشياء تستغرق الكثير من وقتي لدرجة أنني أنسى أحيانًا سقي نباتاتي. بعد أن عانت Monstera Deliciosa مرة أخرى من التربة الجافة ، قررت أن أرى ما إذا كان بإمكاني فعل شيء حيال ذلك لتذكيرني عندما يكون عطشانًا.
لفت بحث سريع على الويب انتباهي إلى Xiaomi FlowerCare ، المعروف أيضًا باسم MiCare أو PlantCare. إنه جهاز Bluetooth منخفض الطاقة وقد كشفت بعض الأبحاث الأساسية أن بروتوكوله يبدو سهل الفهم. بينما لا يبدو أن Xiaomi تقدم أي مواصفات عامة ، كان هناك قدر كبير من الهندسة العكسية على الإنترنت لهذا الجهاز حتى الآن. لذلك قررت أن أطلب واحدة من هؤلاء.
بعد بضعة أيام تم تسليمها وبالطبع بدأت ألعب بها على الفور. لقد تحققت لفترة وجيزة من التطبيق الذي يأتي معه ، ولكن كما يمكنك أن تخمن ، فإن استخدامه في الإعداد الافتراضي لم يكن خطتي أبدًا. بالطبع يجب أن يتكامل هذا مع إعداد المنزل الذكي الحالي الخاص بي. كما هو موضح هنا أيضًا ، أستخدم nymea كحل منزلي ذكي (نعم ، يمكنك حتى اكتشاف Monstera في إحدى الصور هناك:)). للأسف ، لم يدعم nymea هذا المستشعر حتى الآن ، لذا كان إطلاق بعض IDE أمرًا جيدًا.
الخطوة 1: تحميل كعب البرنامج المساعد
لذلك كان أول شيء فعلته هو نسخ المكون الإضافي الحالي لعلامة Texas Instruments Sensor Tag ، بدا مشابهاً بما يكفي لما افترضت أنه يجب أن يعمل مع جهاز FlowerCare أيضًا. بعد إعادة التسمية الأساسية للأشياء في plugininfo.json والتعليق على معظم كود المكوّن الإضافي sensortag ، كنت جاهزًا لتحميل كعب البرنامج الإضافي الجديد.
كما هو متوقع ، سيُظهر الاكتشاف المستشعر على الفور ويسمح لي بإضافته إلى النظام. بالطبع لن ينتج أي بيانات ذات معنى في هذه المرحلة.
الخطوة الثانية: البحث عن البيانات على المجس
كما هو الحال مع أي جهاز Bluetooth LE ، فإن أول شيء تريد القيام به هو التعرف على الخدمات التي يقدمها وخصائصها. في مكان ما هناك يتم إخفاء البيانات الفعلية. من خلال حلقة طباعة سريعة لتصحيح الأخطاء على جميع الخدمات المكتشفة وطباعة خصائصها ، كنت في النقطة التي يمكنني من خلالها مقارنة المعلومات التي وجدتها على الإنترنت مع ما يقدمه الجهاز بالفعل.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice * btDev = static_cast (sender ()) ؛ qCDebug (dcFlowerCare ()) << "have uuids الخدمة"
كان إصدار البرنامج الثابت ومستوى البطارية سهلين. يمكنني بالفعل رؤية القيم وفقًا للطباعة في هذه المحاولة الأولى لسرد البيانات. يتم إخفاء قيم المستشعر الفعلية بشكل أعمق قليلاً هناك ، ولكن دمجها مع البيانات من الإنترنت يشير على الفور إلى مكان العثور عليها وخاصة كيفية قراءتها.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & features ، const QByteArray & value) {qCDebug (dcFlowerCare ()) << "قراءة مميزة" << QString:: number (characteristic.handle ()، 16) temp؛ qint8 تخطي ؛ تيار >> تخطي ؛ كوينت 32 لوكس تيار >> لوكس ؛ رطوبة qint8 تيار >> الرطوبة. qint16 الخصوبة ؛ تيار >> الخصوبة ؛ ينبعث منه منتهي (مستوى البطارية ، 1.0 * درجة الحرارة / 10 ، لوكس ، الرطوبة ، الخصوبة) ؛ }
بتجميع هذا معًا ، بدأ المكون الإضافي بالفعل في إنتاج بيانات مفيدة.
الخطوة الثالثة: اللمسات الأخيرة
لذلك نجح الأمر بشكل أساسي الآن ، ومع ذلك ، لا تزال هناك مشكلة واحدة. سوف يقوم مستشعر FlowerCare ، على عكس Texas Instruments SensorTag ، بإسقاط اتصال Bluetooth بعد بضع ثوانٍ. بالنظر إلى حالة الاستخدام ، لا يبدو أن هذه مشكلة لأنها موثوقة تمامًا في الاستجابة لمحاولات الاتصال. بالنظر إلى أن النبات في العادة لا يمتص لترًا من الماء في غضون دقائق ، ولكن بالأحرى أيام ، لا يبدو أنه من الضروري البقاء على اتصال طوال الوقت. كما أن هذا من شأنه أن يستنزف البطارية كثيرًا. لذلك قررت إضافة برنامج PluginTimer الذي سيعيد توصيل المستشعر كل 20 دقيقة وجلب البيانات منه. إذا لم يستجب المستشعر ، لسبب ما ، لمحاولة الاتصال ، فسيبدأ الرمز بمؤقت آخر يحاول إعادة الاتصال كل دقيقة من تلك النقطة فصاعدًا حتى يتمكن من الحصول على البيانات. ثم يعود مرة أخرى لجلب البيانات في فترة 20 دقيقة مرة أخرى. إذا فشل الجهاز في الاتصال مرتين على التوالي (بمعنى ، بعد 20 + 1 دقيقة) ، فسيتم وضع علامة "غير متصل" في النظام ويمكن تنبيه المستخدم بشأنه.
باطل DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare * flowerCare، m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "Refreshing" address ()؛ flowerCare-> RefreshData () ؛ } else {qCDebug (dcFlowerCare ()) << "Not Refring" address () << "التحديث التالي في" << m_refreshMinutes [flowerCare] << "minutes"؛ } // إذا كانت لدينا محاولتان أو أكثر من محاولات الاتصال الفاشلة ، فضع علامة عليها على أنها غير متصلة إذا (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "فشل التحديث لـ" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId ، خطأ) ؛ }}}
مع هذه الإستراتيجية ، يبدو الآن أن nymea يقدم بيانات موثوقة تمامًا من هذا المستشعر.
الخطوة 4: استخدامه في سياق أكبر
إن مجرد الحصول على القيم من المستشعر ليس مفيدًا كثيرًا ، ولكن كان بإمكاني أيضًا استخدام التطبيق الأصلي لذلك. الآن دعونا نفعل بعض الأشياء الذكية معها.
يدعم Nymea إرسال إشعارات الدفع ، إما إلى الهواتف المزودة بـ nymea: التطبيق مثبت ، أو عبر PushBullet. لذا فإن الشيء الواضح الذي يجب فعله هو إرسال بعض الإشعارات الفورية عندما تنخفض رطوبة التربة إلى أقل من 15٪. من السهل إعداد ذلك في التطبيق. كشرط أساسي ، تحتاج إما إلى حساب في nymea: cloud أو على PushBullet. بالنسبة إلى nymea: إشعارات الدفع المستندة إلى السحابة ، يكفي تمكين nymea: السحابة على nymea: core وفي nymea: التطبيق. بمجرد توصيل كلاهما ، سيظهر شيء إشعار تلقائيًا. بالنسبة إلى PushBullet ، أضف شيئًا جديدًا في النظام ، ستجد PushBullet في القائمة هناك. سيطلب منك مفتاح API الذي تحصل عليه عند التسجيل في PushBullet. بمجرد حصولك على إشعار دفع في nymea ، يمكنك إنشاء قاعدة.
بالطبع يمكنك أن تفعل أي شيء آخر تريده … يمكنك أيضًا تشغيل بعض الضوء من أجل عكس قيم المستشعر ، أو استخدام المكون الإضافي لقائد HTTP لنشر قيم المستشعر إلى خادم على الإنترنت على سبيل المثال. ليس لدي صمام مياه والتي يمكن التحكم فيها رقميًا (حتى الآن) ولكن بالطبع ، إذا كان لديك مثل هذا الشيء ولم يتم دعمه من قبل nymea حتى الآن ، فإن إضافة مكون إضافي لذلك سيكون مشابهًا إلى حد ما.
الخطوة 5: ختام الكلمات
تم قبول المكون الإضافي flowercare في المنبع الآن ، وإذا كان لديك أحد هؤلاء ، فسيكون جاهزًا للاستخدام مع nymea الآن. ومع ذلك ، آمل أن تكون هذه المقالة ذات أهمية إذا أراد شخص ما إضافة دعم للأجهزة الأخرى. يجب أن يكون شرحًا تفصيليًا حول كيفية إنشاء المكون الإضافي الخاص بك لـ nymea.
إذا كنت ترغب فقط في إنشاء هذا الإعداد في منزلك ، فكل ما تحتاجه هو مستشعر FlowerCare و Raspberry Pi وصورة مجتمع nymea (يتضمن البرنامج الإضافي للعناية بالزهور الآن) و nymea: التطبيق المتوفر في متاجر التطبيقات. أيضًا ، حتى الآن ، أصبحت Monstera Deliciosa سعيدة مرة أخرى ، وكما قد تكون قد رأيت في لقطات الشاشة ، فقد حصلت على نفسي واحدًا ثانيًا من تلك المستشعرات لتتبع صحة شجرة الليمون الخاصة بي أيضًا. لذلك ، أرسل لنفسي إشعارًا دفعًا عندما يكون الجو باردًا بالخارج حتى أتمكن من إحضاره خلال الشتاء بأمان.
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
علبة نفايات أوتوماتيكية أو صندوق. لإنقاذ الكوكب: 19 خطوة (بالصور)
علبة نفايات أوتوماتيكية أو صندوق. لإنقاذ الكوكب: قبل أن نبدأ ، أوصيك بمشاهدة الفيديو الأول قبل قراءة هذا لأنه مفيد جدًا. مرحباً ، اسمي جاكوب وأعيش في المملكة المتحدة. إعادة التدوير مشكلة كبيرة حيث أعيش أرى الكثير من القمامة في الحقول ويمكن أن تكون ضارة. ذ