Obsah:
- Krok 1: Načítanie zástrčky doplnku
- Krok 2: Vyhľadanie údajov na senzore
- Krok 3: Dokončenie dotykov
- Krok 4: Použitie v širšom kontexte
- Krok 5: Záverečné slová
Video: FlowerCare a Nymea na záchranu mojich rastlín: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Zašpinenie rúk pri pripájaní senzorov starostlivosti o rastliny k môjmu existujúcemu inteligentnému domu s otvoreným zdrojom. Návod na vývoj doplnkov pre nymea.
Príbeh
Rovnako ako mnoho ďalších drotárov a hackerov, aj ja mám problém s tým, že hackovanie vecí mi zaberá toľko času, že občas zabúdam polievať svoje rastliny. Potom, čo moja Monstera Deliciosa opäť trpela suchou pôdou, rozhodol som sa zistiť, či s tým môžem niečo urobiť, aby mi to pripomenulo, keď je smädná.
Rýchly prieskum na webe ma upozornil na Xiaomi FlowerCare, známy tiež ako MiCare alebo PlantCare. Jedná sa o zariadenie s nízkou spotrebou energie Bluetooth a niektoré základné výskumy odhalili, že jeho protokol sa zdá byť celkom zrozumiteľný. Aj keď sa zdá, že Xiaomi neposkytuje žiadne verejné špecifikácie, na internete bolo pre toto zariadenie zatiaľ veľa reverzného inžinierstva. Preto som sa rozhodol jeden z nich objednať.
O niekoľko dní neskôr mi bolo doručené a samozrejme som sa s ním hneď začal hrať. Stručne som skontroloval aplikáciu, ktorá je súčasťou balenia, ale ako pravdepodobne asi tušíte, použitie v predvolenom nastavení nebolo nikdy mojím plánom. Toto samozrejme musí byť integrované s mojím existujúcim nastavením inteligentnej domácnosti. Ako je tu tiež popísané, ako riešenie inteligentnej domácnosti používam nymea (Áno, Monsteru môžete dokonca vidieť na jednom z obrázkov tam:)). Nymea bohužiaľ tento senzor ešte nepodporovala, takže spustenie nejakého IDE bolo v poriadku.
Krok 1: Načítanie zástrčky doplnku
Prvá vec, ktorú som urobil, bolo skopírovať existujúci doplnok Texas Instruments Sensor Tag, ktorý sa mi zdal dostatočne podobný tomu, čo som predpokladal, že by malo fungovať aj pre zariadenie FlowerCare. Po základnom premenovaní vecí v plugininfo.json a odkomentovaní väčšiny kódu pluginu sensortag som bol pripravený načítať nový inzerát doplnku.
Ako sa dalo očakávať, objav by už okamžite ukázal senzor a umožnil mi ho pridať do systému. V tomto mieste by to samozrejme neprinieslo žiadne zmysluplné údaje.
Krok 2: Vyhľadanie údajov na senzore
Ako každé zariadenie Bluetooth LE, prvá vec, ktorú musíte urobiť, je dozvedieť sa o službách, ktoré ponúka, a ich charakteristikách. Niekde tam sú skryté skutočné údaje. Vďaka rýchlemu ladeniu, ktoré prešlo všetkými objavenými službami a vytlačilo ich charakteristiky, som bol v bode, kde som mohol porovnať informácie, ktoré som našiel na internete, s tým, čo zariadenie v skutočnosti hlási.
neplatné FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (sender ()); qCDebug (dcFlowerCare ()) << "mať servisné prostriedky"
Verzia firmvéru a úroveň batérie boli jednoduché. Už v tomto prvom pokuse o výpis údajov som už mohol vidieť vytlačené zodpovedajúce hodnoty. Skutočné hodnoty senzorov sú tam ukryté o niečo hlbšie, ale ich kombinovanie s údajmi z internetu okamžite ukázalo, kde ich nájsť a najmä ako ich čítať.
neplatné FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & Characteristic, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Readistic Characteristic" << QString:: number (Character.handle (), 16) temp; preskočiť qint8; stream >> preskočiť; quint32 lux; prúd >> lux; qint8 vlhkosť; prúd >> vlhkosť; qint16 plodnosť; potok >> plodnosť; emitovať hotové (m_batteryLevel, 1,0 * teplota / 10, lux, vlhkosť, plodnosť); }
Keď to zhrnieme, doplnok už začal vytvárať zmysluplné údaje.
Krok 3: Dokončenie dotykov
Takže to v podstate fungovalo teraz, jeden problém tam však stále zostal. Senzor FlowerCare by na rozdiel od senzora Texas Instruments SensorTag po niekoľkých sekundách prerušil pripojenie Bluetooth. Vzhľadom na prípad použitia sa však nezdá, že by to bol problém, pretože je celkom spoľahlivý pri reakcii na pokusy o pripojenie. Vzhľadom na to, že rastlina bežne nevysaje liter vody v priebehu niekoľkých minút, ale skôr dní, nezdá sa nevyhnutné zostať stále v spojení. Tiež by to dosť vybilo batériu. Rozhodol som sa preto pridať PluginTimer, ktorý každých 20 minút senzor znova pripojí a bude z neho načítavať údaje. Ak senzor z nejakého dôvodu nereaguje na pokus o pripojenie, kód spustí ďalší časovač, ktorý sa od tohto bodu pokúša znova pripojiť každú minútu, kým sa mu nepodarí získať údaje. Potom sa znova vráti k načítaniu údajov v 20 -minútovom intervale. Ak sa zariadeniu nepodarí pripojiť dvakrát za sebou (to znamená po 20 + 1 minútach), bude v systéme označené ako offline a používateľ môže byť na to upozornený.
zrušiť DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare *flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "Obnovovacia" adresa (); flowerCare-> refreshData (); } else {qCDebug (dcFlowerCare ()) << "Adresa sa neobnovuje" () << "Nasledujuce obnovenie za" << m_refreshMinutes [flowerCare] << "minut"; } // Ak sme zaznamenali 2 alebo viac neúspešných pokusov o pripojenie, označte to ako odpojené, ak (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "Obnovenie zlyhalo pre" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
S touto stratégiou sa zdá, že nymea teraz dodáva dokonale spoľahlivé údaje z tohto senzora.
Krok 4: Použitie v širšom kontexte
Získanie hodnôt zo senzora však nie je také užitočné, na to som mohol použiť aj pôvodnú aplikáciu. Teraz s tým urobme niekoľko múdrych vecí.
Nymea podporuje odosielanie upozornení push, a to buď na telefóny s nainštalovanou aplikáciou nymea: alebo prostredníctvom PushBullet. Zjavnou vecou je poslať si upozornenia push vždy, keď vlhkosť pôdy klesne pod 15%. Je veľmi jednoduché to nastaviť v aplikácii. Ako predpoklad musíte mať účet v nymea: cloud alebo na PushBullet. Pre upozornenia nymea: cloud založené na upozorneniach stačí povoliť nymea: cloud na nymea: core a v nymea: app. Hneď ako sú obe prepojené, automaticky sa zobrazí upozornenie. Pre PushBullet pridajte do systému novú vec, v zozname nájdete PushBullet. Požiada vás o kľúč API, ktorý získate pri registrácii pomocou služby PushBullet. Akonáhle máte v nymea vec s upozornením push, môžete vytvoriť pravidlo.
Samozrejme môžete robiť čokoľvek iné, čo chcete … Môžete tiež zapnúť určité svetlo, aby odrážalo hodnoty senzorov, alebo napríklad použiť doplnok HTTP Commander na odosielanie hodnôt senzorov na server na internete. Nemám napríklad vodný ventil ktoré je možné ovládať ešte (zatiaľ) digitálne, ale samozrejme, ak niečo také máte a nymea to ešte nepodporuje, pridanie doplnku by bolo dosť podobné ako toto.
Krok 5: Záverečné slová
Doplnok starostlivosti o kvety bol už prijatý proti prúdu, a ak jeden z nich máte, je pripravený na použitie s nymea. Dúfam však, že tento článok by mohol byť zaujímavý, ak niekto chce pridať podporu pre ďalšie zariadenia. Mal by to byť návod, ako si vytvoriť vlastný doplnok pre nymea.
Ak si chcete toto nastavenie jednoducho vytvoriť doma, potrebujete iba senzor FlowerCare, Raspberry Pi, obrázok komunity nymea (v súčasnosti obsahuje doplnok starostlivosti o kvety) a aplikáciu nymea: ktorá je k dispozícii v obchodoch s aplikáciami. Tiež môj Monstera Deliciosa je zatiaľ opäť šťastný a ako ste mohli vidieť na snímkach obrazovky, zaobstaral som si druhý z týchto senzorov na sledovanie zdravia mojej citrónovej stromy. Na ten si posielam upozornenie vždy, keď vonku mrzne, aby som ho mohol bezpečne preniesť cez zimu.
Odporúča:
Výstraha pred vodou - zariadenie na záchranu vašej lode: 5 krokov (s obrázkami)
Výstraha pred vodou - zariadenie na záchranu vašej lode: Ak ste majiteľom lode, je tu konečne pohodlie dostať loď na suchú zem. Nemôže sa tam potopiť. Všade inde stojí pred neustálou bitkou o prekonanie tendencie vkĺznuť pod vlny a zmiznúť. Cez zimu tu na Aljaške
Záchranu nabíjačky do auta?: 6 krokov
Zachrániť nabíjačku do auta ?: Toto je nabíjačka do auta pre môj iPhone. Žlté víry sa rozsvietia, keď funguje. To sa deje len občas. Rozhodol som sa zistiť, čo sa dá urobiť
Fax: Vysvetlenie dielov a čo stojí za záchranu: 9 krokov
Fax: Vysvetlenie častí a čo stojí za záchranu: Nedávno som našiel tento fax. Vyčistil som ho a pripojil ho napájacím káblom a telefónnou linkou a fungoval správne, ale nepotrebujem fax a myslel som si, že by bolo pekné ho rozobrať a urobiť o ňom ďalší návod. Ja
Kto je pri mojich dverách? Projekt pohybu/snímača PIR PIR: 5 krokov
Kto je pri mojich dverách? Projekt snímača pohybu PIR/snímača dosahu: Náš projekt je zameraný na snímanie pohybu pomocou PIR a senzorov vzdialenosti. Kód Arduino vydá vizuálny a zvukový signál, aby oznámil používateľovi, že je niekto blízko. Kód MATLAB pošle e -mailový signál na upozornenie používateľa, že sa niekto nachádza v blízkosti. Toto zariadenie
Mojich desať najužitočnejších tipov a trikov na Breadboard: 9 krokov (s obrázkami)
Mojich desať najlepších najužitočnejších tipov a trikov na Breadboard: Na zemi je 6 palcov snehu a vy ste zavalení v dome. Na chvíľu ste stratili motiváciu pracovať na svojom lasere na rezanie kovov vedenom GPS. Na vašom obľúbenom webe neboli žiadne nové projekty, ktoré by podnietili váš int