Агуулгын хүснэгт:
- Алхам 1: Plugin Stub -ийг ачаалж байна
- Алхам 2: Мэдрэгч дээрх өгөгдлийг хайж олох
- Алхам 3: Хүрч дуусгах
- Алхам 4: Үүнийг том контекстэд ашиглах
- Алхам 5: Хаалтын үгс
Видео: FlowerCare ба Nymea нар миний ургамлыг аврах: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Миний одоо байгаа нээлттэй эхийн ухаалаг гэрт ургамлын арчилгааны мэдрэгчийг залгахад гараа бохирдуулж байна. Nymea -д зориулсан залгаас хөгжүүлэх талаархи танилцуулга.
Түүх
Бусад олон тооны хакерууд болон хакеруудын нэгэн адил би аливаа зүйлийг хакердах нь маш их цаг зарцуулдаг тул би ургамлаа услахаа мартдаг. Миний Monstera Deliciosa хуурай хөрсөнд дахин нэг удаа шаналж байсны дараа би цангасан үед надад сануулахын тулд энэ талаар ямар нэгэн зүйл хийж чадах эсэхийг харахаар шийдлээ.
Вэб дээр хийсэн хурдан судалгаа нь MiCare эсвэл PlantCare гэгддэг Xiaomi FlowerCare -т анхаарлаа хандуулав. Энэ бол Bluetooth -ийн бага энерги бүхий төхөөрөмж бөгөөд зарим үндсэн судалгаанаас харахад түүний протоколыг ойлгоход хялбар байдаг. Xiaomi олон нийтэд тодорхой мэдээлэл өгөөгүй байгаа ч интернэтэд энэ төхөөрөмжийн хувьд урвуу инженерчлэл хийгдээгүй байна. Тиймээс би тэдний нэгийг захиалахаар шийдсэн.
Хэдэн өдрийн дараа үүнийг хүргэсэн бөгөөд мэдээж би тэр дор нь тоглож эхлэв. Би түүнтэй хамт ирдэг програмыг товчхон шалгаж үзсэн боловч үүнийг та анхдагч тохиргоондоо ашиглах нь миний төлөвлөгөө байгаагүй юм. Мэдээжийн хэрэг үүнийг одоо байгаа ухаалаг гэрийн тохиргоотой нэгтгэх шаардлагатай байна. Энд тайлбарласны дагуу би nymea -г ухаалаг гэрийн шийдэл болгон ашиглаж байна (Тийм ээ, та Monstera -г тэнд байгаа зургуудын аль нэгээс нь харж болно:)). Харамсалтай нь nymea энэ мэдрэгчийг дэмждэггүй байсан тул IDE -ийг ажиллуулах нь дэс дараалалтай байв.
Алхам 1: Plugin Stub -ийг ачаалж байна
Миний хийсэн хамгийн эхний зүйл бол одоо байгаа Texas Instruments Sensor Tag залгаасыг хуулбарлах явдал байсан бөгөөд энэ нь FlowerCare төхөөрөмж дээр бас ажиллах ёстой гэж бодсонтой төстэй юм шиг санагдсан. Plugininfo.json дээрх зүйлсийн нэрийг өөрчилж, ихэнх sensortag залгаасын кодыг тайлбарласны дараа би шинэ залгаасын ишийг ачаалахад бэлэн боллоо.
Хүлээгдэж байсны дагуу нээлт нь мэдрэгчийг шууд харуулаад системд нэмэх боломжийг надад олгоно. Мэдээжийн хэрэг, энэ нь ямар ч утга учиртай мэдээлэл өгөхгүй.
Алхам 2: Мэдрэгч дээрх өгөгдлийг хайж олох
Бусад Bluetooth LE төхөөрөмжийн нэгэн адил хамгийн түрүүнд санал болгож буй үйлчилгээ, шинж чанаруудын талаар олж мэдэх хэрэгтэй. Бодит өгөгдөл хаа нэгтээ нуугдсан байдаг. Илэрсэн бүх үйлчилгээнүүдийг хурдан дибаг хийж, шинж чанаруудыг нь хэвлэсний дараа би интернетээс олж авсан мэдээллээ тухайн төхөөрөмж үнэндээ юу мэдээлж байгааг харьцуулах боломжтой болсон юм.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (sender ()); qCDebug (dcFlowerCare ()) << "үйлчилгээний uuids байна"
Програм хангамжийн хувилбар болон батерейны түвшин хялбар байсан. Өгөгдлийг жагсаах анхны оролдлого дээр хэвлэгдсэн утгыг би аль хэдийн харж байсан. Бодит мэдрэгчийн утгыг арай гүнзгий нуусан боловч үүнийг интернетээс авсан өгөгдөлтэй хослуулан хаанаас олох, ялангуяа хэрхэн уншихыг зааж өгсөн болно.
void FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & шинж чанар, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Онцлог унших" << QString:: тоо (шинж чанар.ханд (), 16) темп; qint8 алгасах; урсгал >> алгасах; quint32 люкс; урсгал >> 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 (); } өөр {qCDebug (dcFlowerCare ()) << "Сэргээгүй" хаяг () << "Дараагийн шинэчлэлт" << m_refreshMinutes [flowerCare] << "минут" дотор; } // Хэрэв бид 2 ба түүнээс дээш холболтын оролдлого хийсэн бол (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "Шинэчилж чадсангүй" << (m_refreshMinutes [flowerCare] *) -1) <setStateValue (flowerCareConnectedStateTypeId, худал); }}}
Энэхүү стратегийн тусламжтайгаар nymea одоо энэ мэдрэгчээс найдвартай найдвартай өгөгдлийг хүргэж байгаа юм шиг санагдаж байна.
Алхам 4: Үүнийг том контекстэд ашиглах
Мэдрэгчээс утга авах нь тийм ч их ач тустай биш ч гэсэн би анхны програмыг ашиглаж болох байсан. Одоо түүнтэй хамт ухаалаг зүйл хийцгээе.
Nymea нь nymea: апп суулгасан утас руу эсвэл PushBullet -ээр дамжуулан мэдэгдэл илгээхийг дэмждэг. Тиймээс хийх ёстой хамгийн чухал зүйл бол хөрсний чийг 15%-иас доош буух үед өөртөө түлхэх мэдэгдэл илгээх явдал юм. Үүнийг апп дээр тохируулах нь илүү хялбар байдаг. Үүний урьдчилсан нөхцөл бол танд nymea: cloud эсвэл PushBullet дээр данс хэрэгтэй болно. Nymea: үүлд суурилсан түлхэх мэдэгдлүүдийн хувьд nymea: core болон nymea: app дээрх nymea: cloud -ийг идэвхжүүлэхэд хангалттай. Аль аль нь холбогдсон даруй мэдэгдлийн зүйл автоматаар гарч ирнэ. PushBullet -ийн системд шинэ зүйл нэмж оруулахын тулд та жагсаалтаас PushBullet -ийг олох болно. Энэ нь PushBullet -т бүртгүүлэхдээ API түлхүүрийг авахыг танаас хүсэх болно. Хэрэв танд nymea -д түлхэх мэдэгдэл байгаа бол та дүрмийг үүсгэж болно.
Мэдээжийн хэрэг та хүссэн зүйлээ хийж болно … Мэдрэгчийн утгыг тусгахын тулд гэрэл асаах эсвэл HTTP командлагч залгаас ашиглан интернет дэх сервер дээр мэдрэгчийн утгыг оруулах боломжтой. Надад усны хавхлага байхгүй. Үүнийг дижитал (хараахан) хянах боломжтой боловч мэдээж хэрэв танд ийм зүйл байгаа бөгөөд үүнийг nymea хараахан дэмждэггүй бол түүнд залгаас нэмэх нь үүнтэй төстэй байх болно.
Алхам 5: Хаалтын үгс
Flowercare залгаасыг одоогийн байдлаар хүлээн авсан бөгөөд хэрэв танд эдгээрийн аль нэг нь байгаа бол одоо nymea -тай хамт ашиглахад бэлэн байна. Гэсэн хэдий ч, хэрэв хэн нэгэн бусад төхөөрөмжид нэмэлт дэмжлэг үзүүлэхийг хүсч байвал энэ нийтлэл сонирхолтой байх болно гэж найдаж байна. Энэ нь nymea -д зориулсан өөрийн залгаасыг хэрхэн бүтээх талаар хийх ёстой алхам юм.
Хэрэв та энэ тохиргоог гэртээ хийхийг хүсч байвал FlowerCare мэдрэгч, Raspberry Pi, nymea олон нийтийн зураг (одоогоор цэцэг арчилгааны залгаасыг оруулсан болно), апп дэлгүүрт байдаг nymea: апп л хэрэгтэй болно. Түүнчлэн, одоог хүртэл миний Monstera Deliciosa дахин баяртай байгаа бөгөөд та дэлгэцийн агшинд харсан шиг би нимбэгнийхээ модны эрүүл мэндийг хянах хоёр мэдрэгчийн нэгийг олж авлаа. Үүний тулд би гадаа хүйтэн жавартай байх үед өөртөө мэдэгдэл илгээж байгаа болохоор өвлийн улиралд аюулгүй авчирч чадна.
Зөвлөмж болгож буй:
NodeMCU, Local Blynk Server болон Blynk Apk ашиглан доторх ургамлыг услах, тохируулах цэг: 3 алхам
NodeMCU, Local Blynk Server болон Blynk Apk ашиглан доторх ургамлыг услах тохируулгын цэг: Би амралтаараа удаан хугацаагаар байсан ч гэсэн доторх ургамлууд маань эрүүл байх ёстой тул энэ төслийг би бүтээсэн. интернэтээр дамжуулан миний гэрт болж байгаа бүх зүйлийг хянаж эсвэл хянаж байгаарай
Ургамлыг услах автомат систем: 5 алхам (зурагтай)
Автомат ургамал услах систем: Энэ бол таны хийж чадах хамгийн хялбар бөгөөд хямд ургамал услах систем юм, би ямар ч микроконтроллер ашигладаггүй, үндсэндээ транзисторын унтраалга юм.Транзисторыг гэмтэхээс урьдчилан сэргийлэхийн тулд коллектор болон суурийн хооронд эсэргүүцэл нэмэх шаардлагатай . (w бүү ашигла
UCL-lloT-Гадна гэрэл нь нар мандах/нар жаргах үед асдаг: 6 алхам
UCL-lloT-Гадна гэрэл Нар мандах/нар жаргахаас үүдэлтэй. Бүгдээрээ сайн байцгаана уу! Жаахан ажил хийсний дараа би зарим нэг хэсэг, кодыг энэ зааварчилгааг цуглуулсан бөгөөд энэ нь гадаа гэрлийг хэрхэн яаж үйлдвэрлэхийг эхнээс нь дуустал харуулах болно. Энэхүү санаа нь зуны улиралд гараар гадагш гарах ёстой ааваас минь төрсөн юм
Ургамлыг услах автомат систем: 10 алхам
Ургамал услах автомат систем: Энэхүү зааварчилгаанд би танд Arduino ашиглан ургамал услах автомат системийг хэрхэн хийхийг зааж өгөх болно. Хэрэв та мартамхай хүн, амралтаараа явж байгаа эсвэл зүгээр л залхуу хүн байвал энэ нь маш их хэрэгтэй болно
Миний гар миний гар: 8 алхам (зурагтай)
Миний гар миний гар: Би цоо шинэ Epilog лазер таслагчийг ашигласан бөгөөд Instructables саяхан гарныхаа зургийг зөөврийн компьютерын гар дээрээ лазераар сийлэх боломжтой болсон. Одоо энэ нь таны баталгааг DIY хэв маягаар хүчингүй болгож байна! Би тусалж эхэлснээсээ хойш ихэнх зөөврийн компьютерээ лазераар сийлсэн