فهرست مطالب:
- مرحله 1: بارگیری مقاله افزونه
- مرحله 2: پیدا کردن داده ها در سنسور
- مرحله 3: تکمیل لمس ها
- مرحله 4: استفاده از آن در زمینه بزرگتر
- مرحله 5: بستن کلمات
تصویری: FlowerCare و Nymea برای نجات گیاهان من: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
دست زدن به سنسورهای مراقبت از گیاه به خانه هوشمند منبع باز موجود من. راهنمای توسعه پلاگین برای nymea.
داستان
من نیز مانند بسیاری دیگر از کارگران حلال فروشی و هکرها از این موضوع رنج می برم که هک کردن چیزها آنقدر وقت من را می گیرد که گهگاه آبیاری گیاهان خود را فراموش می کنم. بعد از اینکه Monstera Deliciosa من بار دیگر از خشکی رنج می برد ، تصمیم گرفتم ببینم آیا می توانم کاری در مورد آن انجام دهم تا هنگام تشنه بودن به من یادآوری شود.
یک تحقیق سریع در وب توجه من را به Xiaomi FlowerCare ، که به MiCare یا PlantCare نیز معروف است ، جلب کرد. این یک دستگاه بلوتوث کم انرژی است و برخی تحقیقات اساسی نشان داد که به نظر می رسد درک پروتکل آن بسیار آسان است. در حالی که به نظر نمی رسد شیائومی هیچ گونه مشخصات عمومی را ارائه دهد ، هنوز مهندسی معکوس زیادی در اینترنت برای این دستگاه انجام شده است. بنابراین تصمیم گرفتم یکی از آنها را سفارش دهم.
چند روز بعد تحویل داده شد و البته من بلافاصله شروع به بازی با آن کردم. من به طور خلاصه برنامه همراه خود را بررسی کردم اما همانطور که احتمالاً می توانید حدس بزنید ، استفاده از آن در تنظیمات پیش فرض آن هرگز برنامه من نبود. البته این باید با تنظیمات خانه هوشمند فعلی من ادغام شود. همانطور که در اینجا توضیح داده شد ، من از nymea به عنوان راه حل خانه هوشمند خود استفاده می کنم (بله ، شما حتی می توانید Monstera را در یکی از تصاویر آنجا مشاهده کنید:)). متأسفانه ، nymea از آن سنسور پشتیبانی نمی کرد ، بنابراین روشن کردن برخی از IDE ها به ترتیب بود.
مرحله 1: بارگیری مقاله افزونه
بنابراین اولین کاری که انجام دادم این بود که افزونه Texas Instruments Sensor Tag را کپی کنم ، به نظر می رسید به اندازه کافی شبیه دستگاه FlowerCare باشد. پس از تغییر نام اصلی موارد در plugininfo.json و اظهار نظر در مورد بیشتر کد افزونه sensortag ، من آماده بارگیری مقاله خرد افزونه جدید بودم.
همانطور که انتظار می رفت ، این کشف در حال حاضر فوراً سنسور را نشان می دهد و به من امکان می دهد آن را به سیستم اضافه کنم. البته در این مرحله هیچ داده معنی داری تولید نمی کند.
مرحله 2: پیدا کردن داده ها در سنسور
مانند هر دستگاه بلوتوث LE ، اولین کاری که می خواهید انجام دهید این است که از خدمات ارائه شده و ویژگی های آنها مطلع شوید. جایی در آنجا اطلاعات واقعی پنهان شده است. با یک حلقه چاپ سریع اشکال زدایی بر روی همه سرویس های کشف شده و چاپ ویژگی های آنها ، من در نقطه ای بودم که می توانستم اطلاعاتی را که در اینترنت پیدا کردم با آنچه که دستگاه واقعاً گزارش می دهد مقایسه کنم.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (فرستنده ()) ؛ qCDebug (dcFlowerCare ()) << "uuids سرویس داشته باشید"
نسخه سیستم عامل و سطح باتری آسان بود. من می توانم مقادیر مطابق با چاپ شده در اولین تلاش برای فهرست کردن داده ها را ببینم. مقادیر واقعی سنسور کمی عمیق تر در آنجا پنهان شده است ، اما ترکیب آن با داده های اینترنت بلافاصله نشان داد که کجا باید آن را پیدا کرد و به ویژه نحوه خواندن آن.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & feature، const QByteArray & value) {qCDebug (dcFlowerCare ()) << "خواندن مشخصه" << QString:: number (feature.handle ()، 16) temp؛ qint8 جست و خیز؛ جریان >> پرش؛ quint32 lux؛ جریان >> lux؛ رطوبت qint8 ؛ جریان >> رطوبت؛ باروری qint16 ؛ جریان >> باروری؛ انتشار به پایان رسید (m_batteryLevel ، 1.0 * temp / 10 ، lux ، رطوبت ، باروری) ؛ }
با کنار هم قرار دادن این افزونه ، در حال حاضر شروع به تولید داده های معنی دار کرده است.
مرحله 3: تکمیل لمس ها
بنابراین اساساً اکنون کار می کرد ، با این حال ، هنوز یک مسئله در آنجا باقی مانده بود. سنسور FlowerCare بر خلاف Texas Instruments SensorTag ، اتصال بلوتوث را پس از چند ثانیه قطع می کند. با توجه به موارد استفاده ، به نظر نمی رسد که این یک مسئله باشد زیرا در پاسخ به تلاش های اتصال کاملاً قابل اعتماد است. با توجه به اینکه بطور معمول یک گیاه لیتر آب را در عرض چند دقیقه نمی مکد ، بلکه در روزها ، به نظر نمی رسد که دائماً در ارتباط باشید. همچنین این امر باعث خالی شدن زیاد باتری می شود. بنابراین تصمیم گرفتم PluginTimer را اضافه کنم که هر 20 دقیقه سنسور را دوباره وصل کرده و داده ها را از آن دریافت کند. اگر به دلایلی ، سنسور به تلاش اتصال پاسخ ندهد ، کد تایمر دیگری را شروع می کند که سعی می کند هر دقیقه از آن نقطه به بعد وصل شود تا بتواند داده ها را بدست آورد. سپس دوباره به داده ها در بازه 20 دقیقه ای وصل می شود. اگر دستگاه دوبار پشت سر هم متصل نشود (یعنی بعد از 1 + 20 دقیقه) ، در سیستم بصورت آفلاین در سیستم علامت گذاری می شود و می توان در مورد آن به کاربر هشدار داد.
void DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare *flowerCare، m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "تازه کردن" آدرس ()؛ flowerCare-> refreshData ()؛ } else {qCDebug (dcFlowerCare ()) << آدرس تازه نمی شود”() <<” بازخوانی بعدی در << << m_refreshMinutes [flowerCare] <<”دقیقه” ؛ } // اگر ما 2 یا چند تلاش اتصال ناموفق داشتیم ، اگر (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "برای" (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId ، false) ؛ }}}
با این استراتژی اکنون به نظر می رسد که nymea داده های کاملاً قابل اطمینان از این سنسور را ارائه می دهد.
مرحله 4: استفاده از آن در زمینه بزرگتر
فقط دریافت مقادیر از سنسور چندان مفید نیست ، من همچنین می توانستم از برنامه اصلی برای آن استفاده کنم. حالا بیایید کارهای هوشمندانه ای با آن انجام دهیم.
Nymea از ارسال اعلان های فشار ، به تلفن های دارای nymea: برنامه نصب شده ، یا از طریق PushBullet پشتیبانی می کند. بنابراین بدیهی است که هر زمان که رطوبت خاک به کمتر از 15 درصد برسد ، برای خودم چند نوتیفیکیشن ارسال کنم. تنظیم آن در برنامه بسیار آسان است. به عنوان پیش نیاز شما یا نیاز به یک حساب در nymea: cloud یا در PushBullet دارید. برای اعلان های فشار مبتنی بر ابر nymea: کافی است که برنامه nymea: cloud را در برنامه nymea: core و در nymea: فعال کنید. به محض اتصال هر دو ، یک اعلان به طور خودکار ظاهر می شود. برای PushBullet یک چیز جدید در سیستم اضافه کنید ، PushBullet را در لیست موجود در آنجا پیدا خواهید کرد. این کلید API را که هنگام ثبت نام در PushBullet دریافت می کنید از شما می خواهد. هنگامی که یک مورد اعلان فشار در nymea دارید ، می توانید یک قانون ایجاد کنید.
البته شما می توانید هر کار دیگری که می خواهید انجام دهید … همچنین می توانید برای بازتاب مقادیر سنسور کمی نور را روشن کنید یا از افزونه HTTP command برای ارسال مقادیر حسگر به سروری در اینترنت به عنوان مثال استفاده کنید. من شیر آب ندارم که می تواند به صورت دیجیتالی (هنوز) کنترل شود ، اما البته ، اگر چنین چیزی دارید و هنوز توسط nymea پشتیبانی نمی شود ، افزودن افزونه ای برای آن بسیار شبیه به این خواهد بود.
مرحله 5: بستن کلمات
افزونه Flowercare قبلاً در بالادست پذیرفته شده است و اگر یکی از آنها را دارید ، اکنون می توانید با nymea استفاده کنید. با این حال ، امیدوارم اگر کسی بخواهد پشتیبانی از دستگاه های دیگر را اضافه کند ، این مقاله مورد توجه قرار گیرد. این باید راهی برای ساختن افزونه خود برای nymea باشد.
اگر می خواهید این تنظیمات را فقط در خانه خود ایجاد کنید ، تنها چیزی که نیاز دارید سنسور FlowerCare ، Raspberry Pi ، تصویر جامعه nymea (در حال حاضر شامل افزونه مراقبت از گل است) و برنامه nymea است که در فروشگاه های برنامه موجود است. همچنین ، تا کنون Monstera Deliciosa من دوباره خوشحال است و همانطور که ممکن است در تصاویر مشاهده کرده باشید ، من دومین سنسور را برای ردیابی سلامت درخت لیمو نیز به دست آورده ام. برای آن ، من هر زمان که بیرون هوا یخ زده باشد ، برای خودم اعلان فشار ارسال می کنم تا بتوانم با خیال راحت آن را از زمستان بگذرانم.
توصیه شده:
مانیتور هوشمند گیاهان داخلی - بدانید چه زمانی گیاه شما نیاز به آبیاری دارد: 8 مرحله (همراه با تصاویر)
مانیتور هوشمند گیاهان داخلی - بدانید چه زمانی گیاه شما نیاز به آبیاری دارد: چند ماه پیش ، من یک چوب نظارت بر رطوبت خاک را تهیه کردم که از باتری تغذیه می کند و می تواند در گلدان گیاهان داخلی شما در خاک گیر کند تا اطلاعات مفیدی در مورد خاک به شما ارائه دهد. سطح رطوبت و LED های فلاش به شما می گویند چه زمانی باید منتظر
GARBAGE اتوماتیک می تواند یا BIN. برای نجات سیاره: 19 مرحله (همراه با تصاویر)
GARBAGE اتوماتیک می تواند یا BIN. برای نجات سیاره: قبل از شروع به کار ، توصیه می کنم قبل از خواندن این فیلم ، اولین ویدیو را تماشا کنید زیرا بسیار مفید است. سلام ، نام من جیکوب است و در انگلستان زندگی می کنم. بازیافت یک مشکل بزرگ است جایی که من زندگی می کنم ، زباله های زیادی در مزارع می بینم و می تواند مضر باشد. ث
چوب مانیتورینگ رطوبت خاک آردوینو - هرگز آبیاری گیاهان خود را فراموش نکنید: 4 مرحله (همراه با تصاویر)
چوب مانیتورینگ رطوبت خاک آردوینو - هرگز آبیاری گیاهان خود را فراموش نکنید: آیا اغلب آبیاری گیاهان داخلی خود را فراموش می کنید؟ یا شاید بیش از حد به آنها توجه کنید و بیش از حد آنها را آبیاری کنید؟ اگر این کار را می کنید ، باید خودتان یک چوب نظارت بر رطوبت خاک با باتری بسازید. این مانیتور از رطوبت خازنی خاک استفاده می کند
باغ گیاهان سرپوشیده داخلی: 6 مرحله (همراه با تصاویر)
Smart Indoor Herb Garden: در این برنامه آموزشی ، من به شما نشان خواهم داد که چگونه باغ علفی داخلی هوشمند خود را ساخته ام! من چندین الهام برای این پروژه داشتم ، اولین مورد این بود که به مدلهای Aerogarden در خانه علاقه مند بودم. علاوه بر این ، من یک Arduino Mega بدون استفاده داشتم
قسمت هایی برای نجات از دستگاه پخش DVD/CD: 10 مرحله
قسمت هایی برای نجات از دستگاه پخش DVD/CD: همه ما دستگاه های قدیمی منسوخ داریم. اگر وقت دارید ، باز کردن آنها و نجات بخشها راهی م effectiveثر برای یادگیری بسیاری از چیزها است و بله برخی از قسمتهای کمیاب را نیز جمع آوری کنید. زمان خداحافظی با دستگاه پخش دی وی دی قدیمی فرا رسیده بود. من ساختم