Taula de continguts:
- Pas 1: Com es carrega un taló de complement
- Pas 2: cercar dades al sensor
- Pas 3: Acabat de tocs
- Pas 4: utilitzar-lo en el context més gran
- Pas 5: clausura de paraules
Vídeo: FlowerCare i Nymea per rescatar les meves plantes: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Embrutar-se les mans en connectar els sensors de cura de les plantes a la meva llar intel·ligent de codi obert existent. Un tutorial sobre el desenvolupament de connectors per a nymea.
La història
Com molts altres pirates informàtics i pirates informàtics, també pateixo el problema que piratejar coses m’ocupa tant del temps que de tant en tant m’oblido de regar les meves plantes. Després que el meu Monstera Deliciosa tornés a patir terra seca, vaig decidir veure si puc fer alguna cosa per recordar-me quan té set.
Una ràpida investigació al web em va cridar l’atenció sobre el Xiaomi FlowerCare, també conegut com MiCare o PlantCare. Es tracta d’un dispositiu Bluetooth de baix consum i algunes investigacions bàsiques van revelar que el seu protocol sembla ser molt fàcil d’entendre. Tot i que sembla que Xiaomi no proporciona cap especificació pública, encara hi ha hagut força enginyeria inversa a Internet per a aquest dispositiu. Així que vaig decidir demanar-ne un.
Pocs dies després es va lliurar i, per descomptat, vaig començar a jugar-hi de seguida. Vaig comprovar breument l'aplicació que s'inclou, però, com és probable que pugueu endevinar, utilitzar-lo en la configuració predeterminada mai no era el meu pla. Per descomptat, cal integrar-ho amb la configuració de casa intel·ligent existent. Com també es descriu aquí, estic fent servir nymea com a solució per a casa intel·ligent (sí, fins i tot podeu veure el Monstera en una de les imatges allà:)). Malauradament, nymea no admetia aquest sensor, de manera que calia activar una mica d'IDE.
Pas 1: Com es carrega un taló de complement
Per tant, el primer que vaig fer va ser copiar el connector existent de Texas Instruments Sensor Tag, semblava prou similar al que suposava que també funcionaria per al dispositiu FlowerCare. Després de canviar el nom bàsic de les coses al plugininfo.json i comentar la majoria del codi del connector sensortag, estava preparat per carregar el nou complement del complement.
Com era d’esperar, el descobriment ja mostraria el sensor de seguida i em permetria afegir-lo al sistema. Per descomptat, no produiria cap dada significativa en aquest moment.
Pas 2: cercar dades al sensor
Com passa amb qualsevol dispositiu Bluetooth LE, el primer que voleu fer és conèixer els serveis que ofereix i les seves característiques. En algun lloc d’aquí s’amaguen les dades reals. Amb una impressió de depuració ràpida en bucle sobre tots els serveis descoberts i la impressió de les seves característiques, vaig estar en el punt en què vaig poder comparar la informació que vaig trobar a Internet amb la que realment informa el dispositiu.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice * btDev = static_cast (remitent ()); qCDebug (dcFlowerCare ()) << "tenen uuids de servei"
La versió del firmware i el nivell de bateria eren fàcils. Ja vaig poder veure els valors d’acord impresos en aquest primer intent d’enumerar les dades. Els valors reals del sensor s’amaguen una mica més a dins, però combinant-los amb les dades d’Internet de seguida es va assenyalar on trobar-lo i sobretot com llegir-lo.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & caractéristique, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Lectura característica" << QString:: number (caractéristique.handle (), 16) temp; qint8 saltar; corrent >> saltar; quint32 lux; corrent >> lux; qint8 humitat; corrent >> humitat; qint16 fertilitat; corrent >> fertilitat; emetre acabat (m_batteryLevel, 1,0 * temp / 10, lux, humitat, fertilitat); }
Unint això, el connector ja va començar a produir dades significatives.
Pas 3: Acabat de tocs
Per tant, bàsicament funcionava ara, però, encara quedava un tema. Al contrari del Texas Instruments SensorTag, el sensor FlowerCare deixaria caure la connexió Bluetooth al cap d’uns segons. Tanmateix, tenint en compte el cas d’ús, no sembla que sigui un problema, ja que és bastant fiable per respondre als intents de connexió. Tenint en compte que normalment una planta no aspira un litre d’aigua en qüestió de minuts, sinó dies, no sembla necessari mantenir-se connectada tot el temps. A més, això esgotaria força la bateria. Així que vaig decidir afegir un PluginTimer que tornaria a connectar el sensor cada 20 minuts i en recolliria dades. Si, per alguna raó, el sensor no responia a l’intent de connexió, el codi iniciarà un altre temporitzador que intentarà tornar a connectar-se cada minut a partir d’aquest moment fins que aconsegueixi obtenir les dades. Després tornaria a recuperar les dades de l'interval de 20 minuts. Si el dispositiu no es connecta dues vegades seguides (és a dir, al cap de 20 + 1 minuts), es marcarà fora de línia al sistema i es podrà alertar a l'usuari sobre això.
void DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare * flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << Adreça "refrescant" (); flowerCare-> refreshData (); } else {qCDebug (dcFlowerCare ()) << Adreça "No refrescant" () << "Següent refresc a" << m_refreshMinutes [flowerCare] << "minuts"; } // Si hem tingut dos o més intents de connexió fallits, marqueu-lo com a desconnectat si (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "No s'ha pogut actualitzar" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
Amb aquesta estratègia, ara nymea semblava proporcionar dades perfectament fiables d’aquest sensor.
Pas 4: utilitzar-lo en el context més gran
Només obtenir valors del sensor no és tan útil, però, també podria haver utilitzat l'aplicació original per a això. Ara fem algunes coses intel·ligents amb ell.
Nymea admet l'enviament de notificacions push, ja sigui a telèfons amb nymea: aplicació instal·lada o mitjançant PushBullet. Per tant, el que cal fer és enviar-me algunes notificacions push quan la humitat del sòl caigui per sota del 15%. És bastant fàcil configurar-ho a l'aplicació. Com a requisit previ, cal un compte a nymea: cloud o a PushBullet. Per a les notificacions push nymea: cloud, n'hi ha prou amb habilitar nymea: cloud al nymea: core i a nymea: app. Tan aviat com tots dos estiguin connectats, apareixerà automàticament una notificació. Per a PushBullet, afegiu una cosa nova al sistema, hi trobareu PushBullet a la llista. Us demanarà la clau API que obtingueu quan us registreu a PushBullet. Un cop tingueu una notificació push a nymea, podeu crear una regla.
Per descomptat, podeu fer el que vulgueu … També podeu encendre una mica de llum per reflectir els valors del sensor o, per exemple, utilitzar el connector HTTP commander per publicar els valors del sensor a un servidor d'Internet. No tinc cap vàlvula d'aigua que es pot controlar digitalment (encara) però, per descomptat, si teniu tal cosa i encara no és compatible amb nymea, afegir un connector per a això seria més aviat similar a aquest.
Pas 5: clausura de paraules
El connector flowercare ja s'ha acceptat aigües amunt i, si en teniu un, ja està llest per utilitzar-lo amb nymea. Tot i això, espero que aquest article pugui ser d’interès si algú vol afegir assistència a altres dispositius. Hauria de ser un pas a continuació sobre com crear el vostre propi connector per a nymea.
Si només voleu construir aquesta configuració a casa vostra, només necessiteu el sensor FlowerCare, un Raspberry Pi, la imatge de la comunitat nymea (ja inclou el complement per a la cura de les flors) i l’aplicació nymea: disponible a les botigues d’aplicacions. A més, fins ara la meva Monstera Deliciosa torna a estar contenta i, tal com podríeu haver vist a les captures de pantalla, he obtingut un segon d'aquests sensors per controlar també la salut del meu llimoner. Per a això, m'envio una notificació push cada vegada que es congela a l'exterior per poder portar-la durant l'hivern amb seguretat.
Recomanat:
Les meves instruccions de muntatge de pistola de rajos tallades amb làser: 10 passos
Les meves instruccions de muntatge de Ray-Gun tallades amb làser: amb disculpes per la demora, aquí teniu les meves instruccions que feia molt de temps que heu esperat sobre com muntar el Ray-Gun de punter làser. Podeu comprar els plans de dibuix vectorial per fer-los … En un CNC Laser-Cutter! Https: //cults3d.com/en/3d-model/gadget/ray-gun Així és com
Alimentador automàtic de plantes WiFi amb dipòsit - Instal·lació de cultiu interior / exterior - Plantes d'aigua automàticament amb control remot: 21 passos
Alimentador automàtic de plantes WiFi amb dipòsit - Instal·lació de cultiu interior / exterior - Plantes d'aigua automàticament amb control remot: en aquest tutorial demostrarem com configurar un sistema d'alimentació de plantes personalitzat interior / exterior que regui les plantes automàticament i es pugui controlar de forma remota mitjançant la plataforma Adosia
Creeu els meus propis gràfics per a les meves dades IOT en un Raspberry PI: 3 passos
Crea els meus propis gràfics per a les meves dades IOT en un Raspberry PI: llegiu si voleu poder crear els vostres propis gràfics IOT mitjançant 7 línies de codi. Volia crear gràfics per mostrar dades en format gràfic des dels meus sensors IOT en una pàgina web. Anteriorment, per a això, havia utilitzat serveis de tercers (alguns pa
Alexa, on són les meves claus ?: 4 passos
Alexa, on hi ha les meves claus?: Alexa s’adapta especialment a tasques de recuperació d’informació i supervisió d’actius mitjançant xarxes domèstiques sense fils. És natural plantejar-se posar objectes de valor a la graella per recuperar-los ràpidament. Pirategem balises de baix consum per Bluetooth a la xarxa
El meu teclat Les meves mans: 8 passos (amb imatges)
My Keyboard My Hands: he utilitzat el nou tallador làser Epilog que Instructables ha aconseguit recentment gravar amb làser una imatge de les meves mans al teclat del meu portàtil … permanentment. Ara això anul·la la vostra garantia a l'estil de bricolatge. He gravat amb làser més portàtils que la majoria, ja que us ajudo