Talaan ng mga Nilalaman:
- Hakbang 1: Pagkuha ng isang Plugin Stub Loaded
- Hakbang 2: Paghahanap ng Data sa Sensor
- Hakbang 3: Pagtatapos ng Mga Touch
- Hakbang 4: Gamit Ito sa Mas Malaking Konteksto
- Hakbang 5: Mga Salitang Nagsasara
Video: FlowerCare at Nymea upang iligtas ang Aking mga Halaman: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Ang pagkuha ng maruming kamay sa pag-hook ng mga sensor ng pangangalaga ng halaman sa aking mayroon nang bukas na mapagkukunang matalinong tahanan. Isang walkthrough sa pag-unlad ng plugin para sa nymea.
Ang kwento
Tulad ng maraming iba pang mga tinker at hacker, naghihirap din ako mula sa isyu na ang pag-hack sa mga bagay ay tumatagal ng labis sa aking oras na paminsan-minsan ay nakakalimutan kong tubig ang aking mga halaman. Matapos ang aking Monstera Deliciosa na muling nagdusa mula sa tuyong lupa, nagpasya akong tingnan kung may magagawa ako tungkol dito upang mapaalalahanan ako kapag nauuhaw ito.
Ang isang mabilis na pagsasaliksik sa web ay nagdala ng aking pansin sa Xiaomi FlowerCare, na kilala rin bilang MiCare o PlantCare. Ito ay isang aparatong Bluetooth Low Energy at isiniwalat ng ilang pangunahing pananaliksik na ang protocol nito ay tila napakadaling maintindihan. Habang ang Xiaomi ay tila hindi nagbibigay ng anumang mga pampublikong pananaw, nagkaroon ng kaunting reverse engineering sa internet para sa aparatong ito. Kaya't napagpasyahan kong mag-order ng isa sa mga iyon.
Makalipas ang ilang araw naihatid ito at syempre nagsimula na akong maglaro dito kaagad. Sandali kong sinuri ang app na kasama nito ngunit maaaring marahil hulaan mo, ang paggamit nito sa default na pag-setup ay hindi kailanman naging plano ko. Siyempre kailangan itong isama sa aking mayroon nang smart home setup. Tulad ng inilarawan dito ginagamit ko ang nymea bilang aking smart home solution (Oo, maaari mo ring makita ang Monstera sa isa sa mga larawan doon:)). Nakalulungkot, hindi pa sinusuportahan ng nymea ang sensor na iyon kaya't ang pagpapaputok ng ilang IDE ay maayos.
Hakbang 1: Pagkuha ng isang Plugin Stub Loaded
Kaya unang bagay na ginawa ko ay kopyahin ang mayroon nang plugin ng Texas Instruments Sensor Tag, tila sapat na katulad sa inaakala kong dapat gumana para sa aparato ng FlowerCare din. Matapos ang pangunahing pagpapalit ng pangalan ng mga bagay sa plugininfo.json at pagbibigay ng puna sa karamihan ng code ng sensortag plugin handa na akong mag-load ng bagong plugin plugin.
Tulad ng inaasahan, ipapakita na agad ng pagtuklas ang sensor at papayagan akong idagdag ito sa system. Siyempre hindi ito makakagawa ng anumang makabuluhang data sa puntong ito.
Hakbang 2: Paghahanap ng Data sa Sensor
Tulad ng anumang aparatong Bluetooth LE, ang unang bagay na nais mong gawin ay upang malaman ang tungkol sa mga serbisyong inaalok nito at kanilang mga katangian. Sa isang lugar doon ay nakatago ang aktwal na data. Sa isang mabilis na pag-print ng pag-print ng debug sa lahat ng mga natuklasan na serbisyo at pag-print ng kanilang mga katangian ako ay nasa puntong maaari kong ihambing ang impormasyong natagpuan ko sa internet sa kung ano ang talagang naiulat ng aparato.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice * btDev = static_cast (sender ()); qCDebug (dcFlowerCare ()) << "may service uuids"
Ang bersyon ng firmware at ang antas ng baterya ay madali. Nakita ko na ang mga naaayon na halagang nakalimbag sa kauna-unahang pagtatangka nitong ilista ang data. Ang aktwal na mga halaga ng sensor ay nakatago nang medyo malalim doon, ngunit ang pagsasama nito sa data mula sa internet ay agad na itinuro kung saan ito hahanapin at lalo na kung paano ito basahin.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & character, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Characteristic read" << QString:: number (characterist.handle (), 16) temp; laktawan ang qint8; stream >> laktawan; quint32 lux; stream >> lux; qint8 kahalumigmigan; stream >> kahalumigmigan; qint16 pagkamayabong; stream >> pagkamayabong; emit tapos (m_batteryLevel, 1.0 * temp / 10, lux, kahalumigmigan, pagkamayabong); }
Pinagsama ito, nagsimula na ang plugin upang makabuo ng makabuluhang data.
Hakbang 3: Pagtatapos ng Mga Touch
Kaya't karaniwang gumagana ito ngayon, subalit, isang isyu ang natira pa rin doon. Ang sensor ng FlowerCare ay, taliwas sa Texas Instruments SensorTag, ihuhulog ang koneksyon ng Bluetooth pagkatapos ng ilang segundo. Kung isasaalang-alang ang kaso ng paggamit bagaman, tila hindi ito isang isyu dahil ito ay lubos na maaasahan sa pagtugon sa mga pagtatangka sa koneksyon. Dahil sa normal na ang isang halaman ay hindi sumisipsip ng isang litro ng tubig sa loob ng ilang minuto, ngunit sa halip na mga araw, tila hindi kinakailangan na manatiling konektado sa lahat ng oras. Gayundin ito ay maubos ang baterya ng maraming. Kaya't nagpasya akong magdagdag ng isang PluginTimer na muling kumonekta sa sensor tuwing 20 minuto at kukuha ng data mula rito. Kung, sa ilang kadahilanan, ang sensor ay hindi tumugon sa pagtatangka ng koneksyon, magsisimula ang code ng isa pang timer na sumusubok na kumonekta muli bawat minuto mula sa puntong iyon hanggang sa namamahala ito upang makuha ang data. Pagkatapos ay babalik ito upang makuha ang data sa pagitan ng 20 minuto muli. Kung nabigo ang aparato na kumonekta nang dalawang beses sa isang hilera (ibig sabihin, pagkatapos ng 20 + 1 minuto), mamarkahan ito nang offline sa system at maaaring maalerto ang gumagamit tungkol dito.
void DevicePluginFlowercare:: onPluginTimer () {precach (FlowerCare * flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "Refreshing" address (); bulaklakCare-> refreshData (); } iba pa {qCDebug (dcFlowerCare ()) << "Hindi nagre-refresh" address () << "Susunod na pag-refresh sa" << m_refreshMinutes [flowerCare] << "minuto"; } // Kung mayroon kaming 2 o higit pang nabigong mga pagtatangka sa koneksyon, markahan ito bilang naka-disconnect kung (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "Nabigong i-refresh para sa" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
Sa diskarteng ito nymea ngayon ay tila naghahatid ng perpektong maaasahang data mula sa sensor na ito.
Hakbang 4: Gamit Ito sa Mas Malaking Konteksto
Ang pagkuha lamang ng mga halaga mula sa sensor ay hindi gaanong kapaki-pakinabang, maaari ko ring magamit ang orihinal na app para doon. Ngayon gawin natin ang ilang mga matalinong bagay dito.
Sinusuportahan ng Nymea ang pagpapadala ng mga notification ng push, alinman sa mga teleponong may naka-install na nymea: app, o sa pamamagitan ng PushBullet. Kaya't ang malinaw na bagay na dapat gawin ay magpadala sa aking sarili ng ilang mga abiso sa pagtulak tuwing ang kahalumigmigan ng lupa ay bumaba sa ibaba 15%. Mas madaling i-set up iyon sa app. Bilang paunang kinakailangan kailangan mo ng isang account sa nymea: cloud o sa PushBullet. Para sa nymea: mga alerto sa push based cloud ay sapat na upang paganahin nymea: cloud sa nymea: core at sa nymea: app. Sa sandaling konektado ang pareho, isang bagay na abiso ang awtomatikong lilitaw. Para sa PushBullet magdagdag ng isang bagong bagay sa system, mahahanap mo ang PushBullet sa listahan doon. Hihilingin sa iyo ang API key na makukuha mo kapag nag-sign up sa PushBullet. Kapag mayroon kang isang bagay na push notification sa nymea, maaari kang lumikha ng isang panuntunan.
Siyempre maaari mong gawin ang anumang nais mo … Maaari ring i-on ang ilang ilaw upang maipakita ang mga halaga ng sensor, o gamitin ang plugin ng HTTP kumander upang ma-post ang mga halaga ng sensor sa isang server sa internet halimbawa. Wala akong balbula sa tubig na maaaring kontrolin nang digital (pa) ngunit syempre, kung mayroon kang ganoong bagay at hindi pa ito sinusuportahan ng nymea, pagdaragdag ng isang plugin para sa katulad na sa halip.
Hakbang 5: Mga Salitang Nagsasara
Ang plugin ng pag-aalaga ng bulaklak ay tinanggap sa ngayon sa agos at kung mayroon kang isa sa mga iyon handa na itong magamit sa nymea ngayon. Gayunpaman, inaasahan kong ang artikulong ito ay maaaring maging interesado kung ang isang tao ay nais na magdagdag ng suporta para sa iba pang mga aparato. Dapat itong maging isang walkthrough sa kung paano bumuo ng iyong sariling plugin para sa nymea.
Kung nais mong itayo lamang ang pag-set up na ito sa iyong bahay, ang kailangan mo lang ay ang sensor ng FlowerCare, isang Raspberry Pi, ang imahe ng komunidad ng nymea (kasama rito ang plugin ng pangangalaga ng bulaklak sa ngayon), at nymea: app na magagamit sa mga app store. Gayundin, sa ngayon ang aking Monstera Deliciosa ay masaya muli at tulad ng nakita mo sa mga screenshot, nakuha ko ang aking sarili na isang pangalawa sa mga sensor na iyon upang subaybayan ang kalusugan ng aking puno ng lemon din. Para sa isang iyon ay pinapadalhan ko ang aking sarili ng abiso sa tuwing ito ay nagyeyelo sa labas upang mailabas ko ito nang ligtas sa taglamig.
Inirerekumendang:
I-save ang Aking Anak: ang Matalinong Upuan na Nagpapadala ng Mga Mensahe sa Teksto Kung Nakalimutan Mo ang Bata sa Kotse: 8 Hakbang
I-save ang Aking Anak: ang Matalinong Upuan na Nagpapadala ng Mga Mensahe sa Teksto Kung Nakalimutan Mo ang Bata sa Kotse: Naka-install ito sa mga kotse, at salamat sa isang detektor na inilagay sa upuan ng bata, binabalaan tayo nito - sa pamamagitan ng SMS o tawag sa telepono - kung nakakuha kami palayo nang hindi dinadala ang bata
WiFi Awtomatikong Tagapakain ng Halaman Na May Reservoir - Panloob / Panlabas na Pag-aayos ng Paglilinang - Awtomatikong Mga Halaman ng Tubig na May Remote na Pagsubaybay: 21 Hakbang
Ang WiFi Awtomatikong Tagapakain ng halaman na may reservoir - Pag-set up ng Panloob / Panlabas na Paglilinang - Awtomatikong Mga Halaman ng Tubig Na May Malayuang Pagsubaybay: Sa tutorial na ito ipapakita namin kung paano mag-set up ng isang pasadyang panloob / panlabas na sistema ng feeder ng halaman na awtomatikong nagdidilig ng mga halaman at maaaring subaybayan nang malayuan gamit ang Adosia platform
Lumikha ng Aking Sariling Mga Larawan para sa Aking Data ng IOT sa isang Raspberry PI: 3 Mga Hakbang
Lumikha ng Aking Sariling Mga Grupo para sa Aking Data ng IOT sa isang Raspberry PI: Mangyaring basahin kung nais mong lumikha ng iyong sariling mga IOT graph gamit ang 7 mga linya ng code. Nais kong lumikha ng mga tsart upang maipakita ang data sa isang grapikong format mula sa aking mga IOT sensor sa isang web page. Dati, para dito, gumamit ako ng mga serbisyo sa 3rd party (ilang pa
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at
Soundproof Ang Iyong Mga Garage Walls (Gamit ang Aking Paraan ng Cleat): 9 Mga Hakbang (na may Mga Larawan)
Soundproof Your Garage Walls (Gamit ang Aking Paraan ng Cleat): Sa Ituturo na ito, ipapakita ko kung paano mag-soundproof ang isang pader gamit ang isang pamamaraan na binuo ko para sa aking studio sa recording ng bahay. Ito ay katulad ng nababanat na pamamaraan ng channel, ngunit mayroon itong pakinabang na 1. mas mura, 2. mas matibay, 3. nagpapahintulot sa