Мазмұны:
- 1 -қадам: плагинге арналған түпнұсқа жүктеледі
- 2 -қадам: сенсордан деректерді іздеу
- 3 -қадам: Түртуді аяқтау
- 4 -қадам: Оны үлкен контекстте қолдану
- 5 -қадам: Қорытынды сөздер
Бейне: FlowerCare және Nymea менің өсімдіктерді құтқарады: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Менің қолданыстағы ашық көзі ақылды үйге өсімдіктерді күту датчиктерін қосу қолды ластау. Nymea үшін плагиндерді әзірлеу бойынша нұсқаулық.
Тарих
Басқа да көптеген хакерлер мен хакерлер сияқты, мен де проблемадан зардап шегемін, өйткені заттарды бұзу менің көп уақытымды алады, мен кейде өсімдіктерді суаруды ұмытып кетемін. Менің Monstera Deliciosa құрғақ топырақтан тағы бір рет зардап шеккеннен кейін, мен шөлдеген кезде еске салу үшін бұл туралы бірдеңе жасай аламын ба деп шештім.
Интернеттегі жылдам зерттеу менің назарымды Xiaomi FlowerCare -ге аударды, оны MiCare немесе PlantCare деп те атайды. Бұл Bluetooth төмен энергиялы құрылғы және кейбір негізгі зерттеулер көрсеткендей, оның протоколы түсіну оңай сияқты. Xiaomi жалпыға ортақ сипаттамаларды бермейтін сияқты, бірақ бұл құрылғы үшін интернетте әлі де кері инженерия бар. Сондықтан мен солардың біріне тапсырыс беруді шештім.
Бірнеше күннен кейін ол жеткізілді, мен, әрине, онымен бірден ойнай бастадым. Мен онымен бірге келетін қосымшаны қысқаша тексердім, бірақ сіз болжап отырғандай, оны әдепкі баптауда пайдалану ешқашан менің жоспарым болған емес. Әрине, бұл менің ақылды үй қондырғысымен біріктірілуі керек, мұнда сипатталғандай, мен nymea -ды ақылды үйдің шешімі ретінде қолданамын (Иә, сіз тіпті сол жердегі суреттердің бірінде Monstera -ны байқай аласыз:)). Өкінішке орай, nymea бұл сенсорды қолдамады, сондықтан IDE -ді өшіру дұрыс болды.
1 -қадам: плагинге арналған түпнұсқа жүктеледі
Мен жасаған бірінші нәрсе - бұл қолданыстағы Texas Instruments Sensor Tag плагинін көшіру болды, бұл менің ойымша, FlowerCare құрылғысында да жұмыс істеуі керек. Plugininfo.json ішіндегі заттардың негізгі атауын өзгерткеннен кейін және сенсорлық плагин кодының көпшілігін түсіндіргеннен кейін мен жаңа плагиннің қойындысын жүктеуге дайын болдым.
Күтілгендей, жаңалық сенсорды бірден көрсетеді және оны жүйеге қосуға мүмкіндік береді. Әрине, бұл сәтте ол ешқандай маңызды ақпарат бермейді.
2 -қадам: сенсордан деректерді іздеу
Кез келген Bluetooth LE құрылғысы сияқты, бірінші кезекте сіз ұсынатын қызметтер мен олардың сипаттамалары туралы білгіңіз келеді. Бір жерде нақты деректер жасырылады. Барлық табылған қызметтерді жылдам басып шығарып, олардың сипаттамаларын басып шығарып, мен Интернеттен тапқан ақпаратты құрылғы шынымен хабарлағанмен салыстыра алатын кез болдым.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (sender ()); qCDebug (dcFlowerCare ()) << «қызмет көрсету құралдары бар»
Микробағдарлама нұсқасы мен батарея деңгейі оңай болды. Мен деректерді тізімдеудің бірінші әрекетінде басылған мәндерді көре алдым. Сенсордың нақты мәндері біршама тереңірек жасырылған, бірақ оны интернеттен алынған мәліметтермен біріктіру оны қайдан табуға болатынын және әсіресе оны қалай оқу керектігін көрсетеді.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & сипаттамасы, const QByteArray & value) {qCDebug (dcFlowerCare ()) << «Мінезді оқу» << QString:: сан (сипаттамасы.қол (), 16) темп; qint8 өткізіп жіберу; ағын >> өткізіп жіберу; квинт 32 люкс; ағын >> lux; qint8 ылғалдылығы; ағын >> ылғал; qint16 құнарлылығы; ағын >> құнарлылық; шығару аяқталды (m_batteryLevel, 1.0 * temp / 10, lux, ылғал, құнарлылық); }
Мұны қосқанда, плагин маңызды деректерді шығара бастады.
3 -қадам: Түртуді аяқтау
Ол қазір жұмыс істеді, алайда бір мәселе әлі сол жерде қалды. FlowerCare сенсоры, Texas Instruments SensorTag -тан айырмашылығы, Bluetooth байланысын бірнеше секундтан кейін үзеді. Қолдану жағдайын ескере отырып, бұл мәселе емес сияқты, себебі ол қосылуға тырысуға сенімді. Әдетте өсімдік бірнеше минут ішінде бір литр суды сорып алмайтынын ескерсек, үнемі байланыста болу қажет емес сияқты. Сонымен қатар, бұл батареяны айтарлықтай азайтуға мүмкіндік береді. Мен сенсорды әр 20 минут сайын қайта қосатын және одан деректерді алатын PluginTimer қосуды шештім. Егер қандай да бір себептермен сенсор қосылу әрекетіне жауап бермесе, код басқа уақытты қосады, ол сол сәттен бастап деректерді алғанға дейін қайта қосылуға тырысады. Содан кейін ол қайтадан 20 минуттық интервал бойынша деректерді алуға оралады. Егер құрылғы қатарынан екі рет қосылмаса (20 + 1 минуттан кейін), ол жүйеде офлайн деп белгіленеді және бұл туралы пайдаланушыға ескертуге болады.
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, жалған); }}}
Бұл стратегиямен nymea енді осы сенсордан сенімді деректерді жеткізетін сияқты болды.
4 -қадам: Оны үлкен контекстте қолдану
Сенсордан мәндерді алу соншалықты пайдалы емес, бірақ мен бұл үшін түпнұсқалық қосымшаны қолдана алар едім. Енді онымен ақылды нәрселер жасайық.
Nymea push хабарландыруларын nymea: қолданбасы орнатылған телефондарға немесе PushBullet арқылы жіберуді қолдайды. Топырақтың ылғалдылығы 15%-дан төмен болған кезде мен өзіме бірнеше хабарландыру жіберуім керек. Оны қолданбада орнату өте оңай. Міндетті шарт ретінде сізге nymea: cloud немесе PushBullet -те тіркелгі қажет. Nymea: бұлтқа негізделген push хабарландырулары үшін nymea: core және nymea: app бағдарламаларында бұлтты қосу жеткілікті. Екеуі де қосылғаннан кейін автоматты түрде хабарландыру пайда болады. PushBullet жүйеге жаңа нәрсе қосуы үшін сіз сол жерден тізімнен PushBullet таба аласыз. Ол сізден PushBullet -ке тіркелу кезінде алатын API кілтін сұрайды. Сізде nymea -да push хабарландыруы бар болса, сіз ереже жасай аласыз.
Әрине, сіз қалаған нәрсені жасай аласыз … Сондай -ақ сенсордың мәнін көрсету үшін шамды қосуға болады немесе сенсордың мәндерін интернетте серверге жіберу үшін HTTP командирі плагинін қолдана аласыз. Менде су клапаны жоқ. ол цифрлық (әлі) басқарылуы мүмкін, бірақ, әрине, егер сізде мұндай нәрсе болса және оны әлі nymea қолдамаса, оған плагин қосу бұған ұқсас болады.
5 -қадам: Қорытынды сөздер
Flowercare плагині қазірдің өзінде жоғарыда қабылданды, және егер сізде олардың бірі болса, оны nymea -мен қолдануға дайын. Алайда, егер біреу басқа құрылғыларға қолдау қосқысы келсе, бұл мақала қызықты болады деп үміттенемін. Бұл nymea үшін плагинді қалай құруға болатындығы туралы нұсқаулық болуы керек.
Егер сіз бұл қондырғыны үйде жасағыңыз келсе, сізге FlowerCare сенсоры, Raspberry Pi, nymea қауымдастығының бейнесі (оған гүл күтімі плагині кіреді) және nymea: қолданба дүкендерінде қол жетімді. Сондай -ақ, әзірге менің Monstera Deliciosa тағы да бақытты және сіз скриншоттарда көрген боларсыз, мен өзімнің лимон ағашымның денсаулығын қадағалайтын сенсорлардың екіншісін алдым. Бұл үшін мен сыртта аяз болған кезде өзіме хабарландыру жіберемін, сондықтан мен оны қыста қауіпсіз жеткізе аламын.
Ұсынылған:
Менің гарнитураны бекіту және жақсарту: 5 қадам
Құлаққапты бекіту және жақсарту: Мен зарядтау кезінде Bluetooth гарнитурасын байқаусызда тастап, микро USB портын сындырдым. Мен енді оны зарядтай алмадым және оны Bluetooth гарнитурасы ретінде қолдандым, бірақ тек сымды. Сондықтан мен оны жөндеуге шешім қабылдадым. Менің модельім - бұл AKG N60 NC Wireless, оның ерекшелігі
NodeMCU, Lokal Blynk Server және Blynk Apk көмегімен жабық өсімдіктерді суару, реттеу нүктесі: 3 қадам
Жабық өсімдіктерді NodeMCU, Blynk Server және Blynk Apk, реттелетін нүктемен суару: Мен бұл жобаны құрдым, себебі мен ұзақ уақыт демалыста болсам да, менің жабық өсімдіктерім сау болуы керек және маған бұл идея ұнайды. Интернетте менің үйімде болатын барлық мүмкін нәрселерді бақылау немесе бақылау
Omnik түрлендіргіші бұлтты емес және менің MQTT -те: 3 қадам (суреттермен)
Omnik түрлендіргіші бұлтты және менің MQTT -те: Менде Omnik тізбекті инверторы бар күн энергиясын қондыратын қондырғы бар. Omnik - бұл Қытайдағы PV инверторларының өндірушісі және олар өте тиімді құрылғылар жасайды. Қажет болса, оны қосу үшін WiFi модулін орнатуға болады. Мен өте біргемін
Менің қарапайым D ұяшық ұстаушысы (және мен онымен не істедім): 4 қадам
Менің қарапайым ұяшық ұстағышым (және мен онымен не істедім): бұл d өлшемді батареяларға арналған қарапайым ұстағыш, мен 3В сөндіру үшін екеуін қолдандым, бірақ сіз дизайнды қажет болған жағдайда оңай созуға немесе кішірейтуге болады, сонымен қатар сіз оны қолдана аласыз. c өлшемді жасушалар үшін бірдей принцип. Менде шкафта ештеңе жасамайтын көптеген d ұяшықтары болды
Менің түтік! I-pod және Mp3 екінші нұсқасы үшін стерео қосалқы дауыс зорайтқыштар (батареялар мен USB зарядтағышымен): 12 қадам
Менің түтік! I-pod мен Mp3 екінші нұсқасына арналған стерео қосалқы дыбыс зорайтқыштары (батареялар мен USB зарядтағышымен): Менің тоқсандық тәжірибем-бұл күрделі тәжірибе, бірақ оны іске асыру қиын емес. Бір батареядан алынған USB арқылы i-pod-ды қайта зарядтауға болатын қайта зарядталатын аккумуляторларға арналған стерео екі корпустың жобасы