Բովանդակություն:
- Քայլ 1: Լրացուցիչ հավելվածի բեռնումը
- Քայլ 2: Տվյալների հայտնաբերում տվիչի վրա
- Քայլ 3: Ավարտելով հպումները
- Քայլ 4: Օգտագործելով այն ավելի մեծ համատեքստում
- Քայլ 5: Բառերի փակումը
Video: FlowerCare և Nymea ՝ իմ բույսերը փրկելու համար. 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ձեռքերս կեղտոտել `բույսերի խնամքի տվիչները միացնելով իմ առկա բաց կոդով խելացի տանը: Քայլ առ քայլ nymea- ի պլագինների մշակման վերաբերյալ:
Պատմություն
Ինչպես շատ այլ հնարքագործներ և հակերներ, ես նույնպես տառապում եմ այն հարցով, որ իրերի վրա կոտրելը այնքան ժամանակ է խլում, որ երբեմն մոռանում եմ ջրել իմ բույսերը: Այն բանից հետո, երբ իմ Monstera Deliciosa- ն կրկին տառապեց չոր հողից, ես որոշեցի տեսնել, թե արդյոք կարո՞ղ եմ ինչ -որ բան անել դրա մասին `հիշեցնելու ինձ, երբ ծարավ է:
Համացանցում կատարված արագ հետազոտությունը իմ ուշադրությունը հրավիրեց Xiaomi FlowerCare- ի վրա, որը նաև հայտնի է որպես MiCare կամ PlantCare: Դա Bluetooth Energyածր էներգիայի սարք է, և որոշ հիմնական հետազոտություններ պարզել են, որ դրա արձանագրությունը, թվում է, բավականին հեշտ է հասկանալ: Թեև Xiaomi- ն չի տալիս որևէ հանրային բնութագիր, սակայն ինտերնետում այս սարքի համար դեռ բավականին հակադարձ տեխնիկա է եղել: Այսպիսով, ես որոշեցի պատվիրել դրանցից մեկը:
Մի քանի օր անց այն առաքվեց, և, իհարկե, ես անմիջապես սկսեցի խաղալ դրա հետ: Ես հակիրճ ստուգեցի այն հավելվածը, որը գալիս է դրա հետ, բայց, ինչպես երևի կարող եք կռահել, այն կանխադրված կարգաբերմամբ օգտագործելն իմ ծրագիրը երբեք չէր: Իհարկե, սա պետք է ինտեգրվի իմ առկա խելացի տան կարգավորմանը: Ինչպես նաև նկարագրված է այստեղ, ես օգտագործում եմ nymea- ն որպես իմ խելացի տան լուծում (Այո, նույնիսկ Monstera- ն կարող եք նկատել այնտեղի նկարներից մեկում:)): Lyավոք, nymea- ն չէր աջակցում այդ սենսորին, այնպես որ որոշ IDE- ի կրակելը կարգին էր:
Քայլ 1: Լրացուցիչ հավելվածի բեռնումը
Այսպիսով, առաջին բանը, որ ես արեցի, պատճենել գոյություն ունեցող Texas Instruments Sensor Tag plugin- ն էր, այն բավականին նման էր նրան, ինչ ենթադրեցի, որ այն պետք է աշխատի նաև FlowerCare սարքի համար: Plugininfo.json- ում իրերի հիմնական անվանափոխումից և սենսորթագի plugin- ի ծածկագրի մեծ մասի մեկնաբանությունից հետո ես պատրաստ էի բեռնել նոր plugin- ի գլխիկը:
Ինչպես և սպասվում էր, հայտնագործությունն արդեն իսկ անմիջապես ցույց կտար սենսորը և թույլ կտար այն ավելացնել համակարգին: Իհարկե, այս պահին դա ոչ մի իմաստալից տվյալ չի արտադրի:
Քայլ 2: Տվյալների հայտնաբերում տվիչի վրա
Ինչպես ցանկացած Bluetooth LE սարքի դեպքում, առաջին բանը, որ ցանկանում եք անել, տեղեկանալ այն առաջարկվող ծառայությունների և դրանց բնութագրերի մասին: Ինչ -որ տեղ այնտեղ իրական տվյալները թաքնված են: Բոլոր հայտնաբերված ծառայությունների վրա արագ վրիպազերծման տպագրություն կատարելով և տպագրելով դրանց բնութագրերը, ես այն կետում էի, որ կարողացա համեմատել ինտերնետում գտած տեղեկատվությունը այն բանի հետ, ինչ սարքը իրականում հայտնում է:
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (ուղարկող ()); qCDebug (dcFlowerCare ()) << "սպասարկման ծառայություններ ունենա"
Firmրագրաշարի տարբերակը և մարտկոցի մակարդակը հեշտ էին: Ես արդեն կարող էի տեսնել տվյալների արժեքագրման այս առաջին փորձի մեջ տպված արժեքները: Սենսորների իրական արժեքները թաքնված են այնտեղ մի փոքր ավելի խորը, բայց համադրելով այն ինտերնետից ստացված տվյալների հետ ՝ անմիջապես մատնանշեց, թե որտեղ կարելի է գտնել այն և հատկապես ինչպես կարդալ այն:
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & բնութագրիչ, const QByteArray & value) {qCDebug (dcFlowerCare ()) << «Բնութագրական ընթերցում» << QString:: համարը (բնորոշ. բռնակ (), 16) ջերմաստիճան; qint8 բաց թողնել; հոսք >> բաց թողնել; quint32 lux; հոսք >> լյուքս; qint8 խոնավություն; հոսք >> խոնավություն; qint16 պտղաբերություն; հոսք >> պտղաբերություն; ավարտված արտանետում (m_batteryLevel, 1.0 * temp / 10, lux, խոնավություն, պտղաբերություն); }
Սա միասին դնելով ՝ plugin- ն արդեն սկսել է իմաստալից տվյալներ արտադրել:
Քայլ 3: Ավարտելով հպումները
Այսպիսով, այն այժմ հիմնականում աշխատում էր, այնուամենայնիվ, մեկ հարց դեռ այնտեղ էր մնացել: FlowerCare սենսորը, ի տարբերություն Texas Instruments SensorTag- ի, մի քանի վայրկյանից կջնջի Bluetooth կապը: Չնայած հաշվի առնելով օգտագործման դեպքը, սա կարծես խնդիր չէ, քանի որ այն բավականին հուսալի է միացման փորձերին արձագանքելու համար: Հաշվի առնելով, որ սովորաբար բույսը ոչ թե լիտր ջուր է ներծծում րոպեների ընթացքում, այլ ավելի շուտ ՝ օրերի ընթացքում, թվում է, թե անհրաժեշտ չէ մշտապես կապի մեջ մնալ: Բացի այդ, մարտկոցը շատ կթափվի: Այսպիսով, ես որոշեցի ավելացնել PluginTimer- ը, որը յուրաքանչյուր 20 րոպեն մեկ կմիացներ սենսորը և տվյալներ կբերեր դրանից: Եթե ինչ -ինչ պատճառներով սենսորը չի արձագանքում կապի փորձին, ապա ծածկագիրը կսկսի մեկ այլ ժամաչափ, որը փորձում է ամեն րոպե նորից միացնել այդ պահից մինչև տվյալների ստացումը: Այնուհետև այն կվերադառնա ՝ 20 րոպե ընդմիջումով նորից տվյալներ բերելու համար: Եթե սարքը երկու անգամ անընդմեջ չկարողանա միանալ (այսինքն ՝ 20 + 1 րոպեից հետո), այն համակարգում կնշվի անցանց ռեժիմում, և օգտագործողը կարող է դրա մասին ահազանգել:
անվավեր 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- ն աջակցում է push ծանուցումների ուղարկմանը ՝ կամ nymea ունեցող հեռախոսներին. Տեղադրված ծրագիր, կամ PushBullet- ի միջոցով: Այսպիսով, ակնհայտ է, որ ինքս ինձ ուղարկեմ որոշ ծանուցումներ, երբ հողի խոնավությունը 15%-ից ցածր է: Դա բավականին հեշտ է տեղադրել ծրագիրը: Որպես նախապայման, կամ հաշիվ է պետք nymea: cloud- ում կամ PushBullet- ում: Nymea: ամպի վրա հիմնված push ծանուցումների համար բավական է միացնել nymea: cloud on nymea: core և nymea: app- ին: Հենց որ երկուսն էլ միացված լինեն, ծանուցման բան ինքնաբերաբար կհայտնվի: PushBullet- ի համար համակարգում նոր բան ավելացնելու համար, այնտեղ գտնված ցուցակում կգտնեք PushBullet- ը: Այն ձեզանից կպահանջի API բանալին, որը ստանում եք PushBullet- ի հետ գրանցվելիս: Nymea- ում push ծանուցման բան ունենալուց հետո կարող եք կանոն ստեղծել:
Իհարկե, կարող ես անել այն, ինչ ուզում ես… Կարող եք նաև միացնել լույսը ՝ սենսորային արժեքներն արտացոլելու համար, կամ օգտագործել HTTP հրամանատարի հավելումը ՝ օրինակ ինտերնետում սերվերի վրա սենսորային արժեքներ տեղադրելու համար: Ես ջրի փական չունեմ որը կարելի է վերահսկել թվայնորեն (դեռ), բայց իհարկե, եթե դուք ունեք նման բան, և այն դեռ չի ապահովվում nymea- ով, դրա համար հավելում ավելացնելը ավելի նման կլինի, քան սա:
Քայլ 5: Բառերի փակումը
Flowercare plugin- ն արդեն ընդունվել է հոսքի հակառակ ուղղությամբ, և եթե ունեք դրանցից մեկը, այն այժմ պատրաստ է օգտագործել nymea- ի հետ: Այնուամենայնիվ, ես հույս ունեմ, որ այս հոդվածը կարող է հետաքրքրել, եթե ինչ -որ մեկը ցանկանում է աջակցություն ավելացնել այլ սարքերի համար: Այն պետք է լինի քայլ առ քայլ այն մասին, թե ինչպես կարելի է ստեղծել ձեր սեփական plugin- ը nymea- ի համար:
Եթե ցանկանում եք պարզապես կառուցել այս կարգավորումը ձեր տանը, ապա ձեզ հարկավոր է միայն FlowerCare սենսորը, Raspberry Pi- ն, nymea համայնքի պատկերը (այն մինչ այժմ ներառում է ծաղկի խնամքի հավելվածը) և nymea. Հավելվածը, որը հասանելի է հավելվածների խանութներում: Բացի այդ, մինչ այժմ իմ Monstera Deliciosa- ն կրկին երջանիկ է, և ինչպես երևի տեսել էիք սքրինշոթերում, ես ինքս ինձ ձեռք եմ բերել այդ սենսորներից երկրորդը, որը հետևում է նաև իմ կիտրոնի ծառի առողջությանը: Այդ մեկի համար ես ինքս ինձ ծանուցում եմ ուղարկում, երբ դրսում սառչում է, որպեսզի կարողանամ ապահով ապահովել ձմռանը:
Խորհուրդ ենք տալիս:
Waterրի նախազգուշացում. Ձեր նավակը փրկելու սարք. 5 քայլ (նկարներով)
Waterուր - Yourգուշացում. Ձեր նավը փրկելու սարք Այն չի կարող խորտակվել այնտեղ: Ամենուր այն մշտական պայքարի առջև է կանգնած ՝ հաղթահարելու ալիքների տակ սայթաքելու և անհետանալու միտումը: Ձմռանը այստեղ, Ավաղ
ԱՎՏՈՄԱՏԱԿԱՆ ԱARԲՅՈՐ ԿԱՐՈ Է ԿԱՄ ԲԻՆ. Մոլորակը փրկելու համար. 19 քայլ (նկարներով)
ԱՎՏՈՄԱՏԱԿԱՆ ԱARԲՅՈՐ ԿԱՐՈ Է ԿԱՄ ԲԻՆ. Մոլորակը փրկելու համար. Նախքան սկսելը, խորհուրդ կտամ դիտել առաջին տեսանյութը սա կարդալուց առաջ, քանի որ այն շատ օգտակար է: Ողջույն, իմ անունը obեյքոբ է, և ես ապրում եմ Մեծ Բրիտանիայում: Վերամշակումը մեծ խնդիր է, որտեղ ես ապրում եմ, դաշտերում շատ աղբ եմ տեսնում, և դա կարող է վնասակար լինել: Թ
Arduino Soil Moisture Monitoring Stick - Երբեք մի մոռացեք ձեր բույսերը ջրել. 4 քայլ (նկարներով)
Arduino Soil Moisture Monitoring Stick - Երբեք մի մոռացեք ջրել ձեր բույսերը. Կամ գուցե դուք նրանց չափազանց մեծ ուշադրություն դարձնու՞մ եք և ջրել դրանք: Եթե դա անում եք, ապա դուք ինքներդ պետք է մարտկոցով աշխատող հողի խոնավության մոնիտորինգի ձող պատրաստեք: Այս մոնիտորը օգտագործում է հողի հզորունակ խոնավություն
Գիտե՞ք, թե ինչ են զգում ձեր բույսերը: [Մասնիկ+Ubidots]: 6 քայլ
Գիտե՞ք, թե ինչ են զգում ձեր բույսերը: [Մասնիկ+Ubidots]. Ոչինչ չի փոխարինի ինքդ քեզ համար հող դուրս գալուն և մշակելուն, բայց այսօրվա տեխնոլոգիան թույլ է տվել հեռակա վերահսկել հողը և հետևել իմ մարդկային զգայարանների անչափելի պարամետրերին: SHT10- ի նման հողի զոնդերը այժմ չափազանց ճշգրիտ են և առաջարկում են
DVD/CD նվագարկիչից փրկելու մասեր. 10 քայլ
DVD/CD նվագարկիչից փրկվելու մասեր. Մենք բոլորս հին հնացած սարքեր ունենք: Եթե ժամանակ ունեք, ապա դրանք բացելը և մասերը փրկելը շատ բաներ սովորելու արդյունավետ միջոց է, և այո, հավաքեք նաև որոշ հազվագյուտ մասեր: Wasամանակն էր հրաժեշտ տալ հին DVD նվագարկիչին: Ես արեցի