Përmbajtje:
- Hapi 1: Ngarkimi i një cungu shtojce
- Hapi 2: Gjetja e të dhënave mbi sensorin
- Hapi 3: Përfundimi i Prekjeve
- Hapi 4: Përdorimi i tij në kontekstin më të madh
- Hapi 5: Mbyllja e Fjalëve
Video: FlowerCare dhe Nymea për të shpëtuar bimët e mia: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:23
Po i ndot duart në lidhjen e sensorëve të kujdesit të bimëve në shtëpinë time ekzistuese të zgjuar me burim të hapur. Një përparim mbi zhvillimin e shtojcave për nymea.
Historia
Si shumë kallajxhinj dhe hakerë të tjerë, edhe unë vuaj nga çështja se hakimi i gjërave më merr aq shumë kohë sa herë pas here harroj të ujis bimët e mia. Pasi Monstera Deliciosa ime vuajti edhe një herë nga toka e thatë, vendosa të shoh nëse mund të bëj diçka për të më kujtuar kur kam etje.
Një kërkim i shpejtë në internet solli vëmendjen time tek Xiaomi FlowerCare, i njohur gjithashtu si MiCare ose PlantCare. Shtë një pajisje Bluetooth me Energji të Ulët dhe disa hulumtime themelore zbuluan se protokolli i tij duket të jetë mjaft i lehtë për t’u kuptuar. Ndërsa Xiaomi nuk duket të japë ndonjë specifikim publik, ka pasur një inxhinieri të kundërt në internet për këtë pajisje akoma. Kështu që vendosa të porosis një prej tyre.
Disa ditë më vonë ajo u dorëzua dhe natyrisht fillova të luaj me të menjëherë. Unë e shikova shkurtimisht aplikacionin që vjen me të, por siç mund ta merrni me mend, përdorimi i tij në konfigurimin e tij të paracaktuar nuk ishte kurrë plani im. Sigurisht kjo duhet të integrohet me konfigurimin tim ekzistues të shtëpisë së zgjuar. Siç përshkruhet edhe këtu unë jam duke përdorur nymea si zgjidhjen time të zgjuar të shtëpisë (Po, madje mund ta dalloni Monstera -n në njërën nga fotografitë atje:)). Mjerisht, nymea nuk e mbështeti atë sensor akoma, kështu që ndezja e disa IDE ishte në rregull.
Hapi 1: Ngarkimi i një cungu shtojce
Pra, gjëja e parë që bëra ishte të kopjoja shtojcën ekzistuese Texas Instruments Sensor Tag, dukej mjaft e ngjashme me atë që mendova se duhet të funksionojë edhe për pajisjen FlowerCare. Pas riemërtimit bazë të gjërave në plugininfo.json dhe komentimit të pjesës më të madhe të kodit të shtojcës sensortag isha gati të ngarkoja cungun e ri të shtojcës.
Siç pritej, zbulimi tashmë do të tregonte sensorin menjëherë dhe do të më lejonte ta shtoja atë në sistem. Sigurisht që nuk do të prodhonte ndonjë të dhënë kuptimplotë në këtë pikë.
Hapi 2: Gjetja e të dhënave mbi sensorin
Ashtu si me çdo pajisje Bluetooth LE, gjëja e parë që dëshironi të bëni është të mësoni për shërbimet që ofron dhe karakteristikat e tyre. Diku atje të dhënat aktuale janë të fshehura. Me një korrigjim të shpejtë të lakimit mbi të gjitha shërbimet e zbuluara dhe printimin e karakteristikave të tyre unë isha në pikën ku mund të krahasoja informacionin që gjeta në internet me atë që pajisja raporton në të vërtetë.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = transmetim statik (dërguesi ()); qCDebug (dcFlowerCare ()) << "kanë shërbime uuids"
Versioni i firmuerit dhe niveli i baterisë ishin të lehta. Unë tashmë mund të shihja vlerat sipas të shtypura në këtë përpjekje të parë të listimit të të dhënave. Vlerat aktuale të sensorit janë të fshehura pak më thellë atje, por kombinimi i tij me të dhënat nga interneti tregoi menjëherë se ku mund ta gjeni dhe veçanërisht si t'i lexoni.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & karakteristike, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Lexo karakteristike" << QString:: numri (karakteristike. trajtoj (), 16) temp; qint8 kalo; lumë >> kalo; quint32 lux; lum >> luks; lagështi qint8; lum >> lagështi; pjelloria qint16; lumi >> pjelloria; lëshojnë përfunduar (m_batteryLevel, 1.0 * temp / 10, lux, lagështi, pjellori); }
Duke e bashkuar këtë, shtojca tashmë filloi të prodhojë të dhëna domethënëse.
Hapi 3: Përfundimi i Prekjeve
Kështu që në thelb funksionoi tani, megjithatë, një çështje ishte lënë akoma atje. Sensori FlowerCare, në kundërshtim me Texas Instruments SensorTag, do të heqë lidhjen Bluetooth pas disa sekondash. Duke marrë parasysh rastin e përdorimit, megjithatë, kjo nuk duket të jetë një çështje pasi është mjaft e besueshme për t'iu përgjigjur përpjekjeve të lidhjes. Duke pasur parasysh që normalisht një bimë nuk thith një litër ujë brenda pak minutash, por më tepër ditë, nuk duket e nevojshme të qëndrosh e lidhur gjatë gjithë kohës. Gjithashtu kjo do të mbaronte baterinë shumë. Kështu që vendosa të shtoj një PluginTimer i cili do të lidhte senzorin çdo 20 minuta dhe do të merrte të dhëna prej tij. Nëse, për ndonjë arsye, sensori nuk i përgjigjet përpjekjes së lidhjes, kodi do të fillojë një kohëmatës tjetër i cili përpiqet të rilidhet çdo minutë nga ajo pikë e tutje derisa të arrijë të marrë të dhënat. Pastaj do të kthehej për të marrë përsëri të dhëna në intervalin 20 minuta. Nëse pajisja nuk lidhet dy herë me radhë (do të thotë, pas 20 + 1 minutash), do të shënohej jashtë linje në sistem dhe përdoruesi mund të paralajmërohet për këtë.
pavlefshme DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare *flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "Freskuese" adresa (); flowerCare-> refreshData (); } else {qCDebug (dcFlowerCare ()) << Adresa nuk është freskuese () <<”Freskimi tjetër në” << m_refreshMinutes [flowerCare] << "minuta"; } // Nëse do të kishim 2 ose më shumë përpjekje të dështuara të lidhjes, shënojeni si të shkëputur nëse (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "Nuk u rifreskua për" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
Me këtë strategji nymea tani dukej se jepte të dhëna krejtësisht të besueshme nga ky sensor.
Hapi 4: Përdorimi i tij në kontekstin më të madh
Thjesht marrja e vlerave nga sensori nuk është aq e dobishme, megjithatë, unë gjithashtu mund të kisha përdorur aplikacionin origjinal për këtë. Tani le të bëjmë disa gjëra të zgjuara me të.
Nymea mbështet dërgimin e njoftimeve push, ose në telefonat me nymea: aplikacioni i instaluar, ose përmes PushBullet. Pra, gjëja e dukshme për të bërë është t'i dërgoj vetes disa njoftime shtytëse sa herë që lagështia e tokës bie nën 15%. Rathershtë mjaft e lehtë për ta vendosur atë në aplikacion. Si parakusht, ose keni nevojë për një llogari në nymea: cloud ose në PushBullet. Për nymea: cloud njoftimet shtytëse është e mjaftueshme për të aktivizuar nymea: cloud në nymea: core dhe në nymea: app. Sapo të lidhen të dy, një gjë njoftimi do të shfaqet automatikisht. Për PushBullet shtoni një gjë të re në sistem, do të gjeni PushBullet në listën atje. Do t'ju kërkojë çelësin API që merrni kur regjistroheni me PushBullet. Pasi të keni një gjë njoftimi push në nymea, mund të krijoni një rregull.
Sigurisht që mund të bësh çfarë të duash… Mund të ndezësh pak dritë në mënyrë që të pasqyrojë vlerat e sensorit, ose të përdorësh shtojcën e komandantit HTTP për të postuar vlerat e sensorit në një server në internet për shembull. Unë nuk kam valvulë uji i cili mund të kontrollohet në mënyrë dixhitale (akoma) por natyrisht, nëse keni një gjë të tillë dhe nuk mbështetet ende nga nymea, shtimi i një shtojce për këtë do të ishte më tepër i ngjashëm se ky.
Hapi 5: Mbyllja e Fjalëve
Shtojca Flowercare është pranuar deri tani dhe nëse keni një prej tyre është gati të përdoret me nymea tani. Sidoqoftë, shpresoj se ky artikull mund të jetë me interes nëse dikush dëshiron të shtojë mbështetje për pajisjet e tjera. Duhet të jetë një hap përpara se si të krijoni shtojcën tuaj për nymea.
Nëse doni ta ndërtoni këtë konfigurim në shtëpinë tuaj, gjithçka që ju nevojitet është sensori FlowerCare, një Raspberry Pi, imazhi i komunitetit nymea (përfshin deri më tani shtojcën për kujdesin e luleve) dhe nymea: aplikacioni i cili është i disponueshëm në dyqanet e aplikacioneve. Gjithashtu, deri më tani Monstera Deliciosa ime është përsëri e lumtur dhe siç mund ta keni parë në pamjet e ekranit, unë kam marrë veten një të dytin nga ata sensorë për të ndjekur shëndetin e pemës sime të limonit gjithashtu. Për atë që po i dërgoj vetes një njoftim push sa herë që është ngrirë jashtë, kështu që unë mund ta sjell atë gjatë dimrit në mënyrë të sigurt.
Recommended:
Përgatitor PA1 DIY Tube: E ndërtuar në mënyrë efikase me përbërës të shpëtuar: 13 hapa
Preampuesi PA1 DIY Tube: E ndërtuar në mënyrë efikase me përbërës të shpëtuar: Ka shumë burime në lidhje me ndërtimin e preampave të tubave në internet dhe në shtyp, kështu që mendova se do të ndaj diçka pak më ndryshe. Ky udhëzues mbulon ndërtimin e një preampi të tubave me burim të hapur të modelit tim dhe jo vetëm që kjo është një
Mikro loja e ekranit LED të shpëtuar: 13 hapa
Ekrani i Salvaged LED Microgame: Lajm i mirë! Sapo gjeta një VCR të hedhur me një ekran LED. Kjo do të thotë se është koha për të shpëtuar ekranin dhe për të bërë një projekt prej tij. Ka shumë informacion atje për ekranet standarde me 7 segmente, por ekranet e pajisjeve dhe pajisjeve elektronike janë me porosi,
Ndërtoni një tenxhere DIY të ujitjes me WiFi - Uji bimët automatikisht dhe dërgon sinjalizime kur uji është i ulët: 19 hapa
Ndërtoni një tenxhere me ujë vetë për ujitje me WiFi - Ujitni bimët automatikisht dhe dërgon sinjalizime kur uji është i ulët: Ky udhëzues ju tregon se si të ndërtoni një mbjellëse të ujitur me ujë të personalizuar të lidhur me WiFi duke përdorur një mbjellëse të vjetër kopshti, një kosh plehrash, disa ngjitës dhe një vetë Kompleti i nën -montimit të tenxhereve për ujitje nga Adosia
Radio Philips e viteve 50 të shpëtuar nga varri: 7 hapa (me fotografi)
Radio Philips e viteve 50 të shpëtuar nga varri: Pas valixheve të valixheve, doja të vazhdoja të përdorja mbyllje interesante të altoparlantëve. Këtë herë kam përdorur një rrethim që në të vërtetë ka për qëllim të vendosë altoparlantët dhe të gjithë përbërësit shtesë. Gjeta një Philips të viteve 50 të dëmtuar dhe jo funksionues
Pjesë për të shpëtuar nga një DVD/CD Player: 10 hapa
Pjesë për të shpëtuar nga një DVD/CD Player: Ne të gjithë kemi pajisje të vjetra të vjetruara të shtrira përreth. Nëse keni kohë, atëherë hapja e tyre dhe ruajtja e pjesëve është një mënyrë efektive për të mësuar shumë gjëra dhe po ashtu mblidhni edhe disa pjesë të rralla. Ishte koha për t'i dhënë lamtumirën një DVD player të vjetër. Kam bërë t