Სარჩევი:
- ნაბიჯი 1: მიიღეთ მოდულის სტატუსის დატვირთვა
- ნაბიჯი 2: მონაცემების მოძიება სენსორზე
- ნაბიჯი 3: შეხების დასრულება
- ნაბიჯი 4: მისი გამოყენება უფრო დიდ კონტექსტში
- ნაბიჯი 5: სიტყვების დახურვა
ვიდეო: FlowerCare და Nymea ჩემი მცენარეების გადასარჩენად: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ხელების დაბინძურება მცენარეთა მოვლის სენსორების ჩემს არსებულ ღია წყაროზე ჭკვიან სახლში. ნაბიჯ -ნაბიჯ nymea– ს მოდულის განვითარების შესახებ.
Ამბავი
როგორც ბევრი სხვა დამჭერი და ჰაკერი, მეც მაწუხებს ის საკითხი, რომ ნივთების გატეხვა იმდენად დიდ დროს მაკავებს, რომ ხანდახან მავიწყდება მცენარეების მორწყვა. მას შემდეგ, რაც ჩემს Monstera Deliciosa– ს კიდევ ერთხელ აწუხებდა მშრალი ნიადაგი, მე გადავწყვიტე ვნახო, შემიძლია თუ არა ამის გაკეთება, რომ შემახსენოს, როცა მწყურია.
ინტერნეტში სწრაფმა კვლევამ ჩემი ყურადღება მიიპყრო Xiaomi FlowerCare– ზე, ასევე ცნობილი როგორც MiCare ან PlantCare. ეს არის Bluetooth დაბალი ენერგიის მოწყობილობა და ზოგიერთმა ძირითადმა კვლევამ აჩვენა, რომ მისი პროტოკოლი, როგორც ჩანს, საკმაოდ ადვილი გასაგებია. მიუხედავად იმისა, რომ Xiaomi არ იძლევა რაიმე საჯარო სპეციფიკაციას, ინტერნეტში ამ მოწყობილობისთვის ჯერ კიდევ არსებობს საკმაოდ საპირისპირო ინჟინერია. ამიტომაც გადავწყვიტე ერთი ასეთი შემეკვეთა.
რამდენიმე დღის შემდეგ ის გადმოვიდა და, რა თქმა უნდა, მაშინვე დავიწყე თამაში. მე მოკლედ შევამოწმე აპლიკაცია, რომელიც მოყვება, მაგრამ როგორც თქვენ ალბათ მიხვდით, მისი ნაგულისხმევი პარამეტრების გამოყენება არასოდეს ყოფილა ჩემი გეგმა. რასაკვირველია, ეს უნდა იყოს ინტეგრირებული ჩემს არსებულ ჭკვიან სახლის კონფიგურაციასთან. როგორც აქ აღწერილი ვარ, მე ვიყენებ nymea- ს, როგორც ჩემს ჭკვიან სახლის გადაწყვეტას (დიახ, თქვენ შეგიძლიათ შენიშნოთ Monstera ერთ -ერთ სურათზე იქ:)). სამწუხაროდ, nymea– მ არ დაუჭირა მხარი ამ სენსორს, ასე რომ, ზოგიერთი IDE სროლა წესრიგში იყო.
ნაბიჯი 1: მიიღეთ მოდულის სტატუსის დატვირთვა
ასე რომ, პირველი რაც გავაკეთე იყო არსებული Texas Instruments Sensor Tag მოდულის კოპირება, როგორც ჩანს, საკმარისად ჰგავდა იმას, რასაც ვფიქრობდი, რომ ის ასევე უნდა მუშაობდეს FlowerCare მოწყობილობაზე. Plugininfo.json– ში საგნების ძირითადი სახელის გადარქმევისა და სენსორტაგის მოდულის კოდის უმეტესობის კომენტირების შემდეგ, მე მზად ვიყავი ჩავტვირთო ახალი მოდულის სტატუსი.
როგორც მოსალოდნელი იყო, აღმოჩენა უკვე აჩვენებდა სენსორს მაშინვე და საშუალებას მომცემდა სისტემაში ჩამემატებინა. რასაკვირველია, ის ამ ეტაპზე რაიმე მნიშვნელოვან მონაცემს არ გამოიმუშავებს.
ნაბიჯი 2: მონაცემების მოძიება სენსორზე
როგორც ნებისმიერი Bluetooth LE მოწყობილობა, პირველი რაც გსურთ გააკეთოთ არის გაეცნოთ მის მიერ შემოთავაზებულ სერვისებს და მათ მახასიათებლებს. სადღაც იქ რეალური მონაცემები იმალება. ყველა აღმოჩენილ სერვისზე სწრაფი ბეჭდვის მარკირებით და მათი მახასიათებლების დაბეჭდვით მე ვიყავი იმ წერტილში, სადაც შემეძლო შემედარებინა ინტერნეტში მოძიებული ინფორმაცია იმასთან, რასაც რეალურად აცხადებს მოწყობილობა.
void FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice *btDev = static_cast (გამგზავნი ()); qCDebug (dcFlowerCare ()) << "აქვს სერვისი uuids"
Firmware ვერსია და ბატარეის დონე ადვილი იყო. მე უკვე ვხედავდი მონაცემების ჩამოთვლის ამ პირველ მცდელობაში დაბეჭდილ მნიშვნელობებს. სენსორის რეალური მნიშვნელობები იმალება იქ ოდნავ უფრო ღრმად, მაგრამ ინტერნეტის მონაცემებთან შერწყმამ მაშინვე მიანიშნა სად ვიპოვო და განსაკუთრებით როგორ წავიკითხო.
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 კავშირს. გამოყენების შემთხვევის გათვალისწინებით, ეს არ ჩანს, რადგან ის საკმაოდ საიმედოა კავშირის მცდელობებზე რეაგირებისას. იმის გათვალისწინებით, რომ მცენარე ჩვეულებრივ არ იწოვს ლიტრ წყალს წუთებში, არამედ რამდენიმე დღის განმავლობაში, არ არის აუცილებელი, რომ მუდმივად იყოს დაკავშირებული. ასევე, ამით ბატარეა საკმაოდ დაიღვრება. ამიტომ გადავწყვიტე დავამატო PluginTimer, რომელიც ყოველ 20 წუთში ხელახლა დააკავშირებდა სენსორს და მისგან მოიტანდა მონაცემებს. თუ რაიმე მიზეზით, სენსორი არ პასუხობს კავშირის მცდელობას, კოდი დაიწყებს სხვა ტაიმერს, რომელიც ცდილობს ყოველ წუთს ხელახლა დაუკავშიროს იმ მომენტიდან სანამ არ მოახერხებს მონაცემების მიღებას. შემდეგ ის კვლავ დაბრუნდებოდა მონაცემების მოსაპოვებლად 20 წუთის ინტერვალით. თუ მოწყობილობა ვერ შეძლებს ზედიზედ ორჯერ დაკავშირებას (იგულისხმება 20 + 1 წუთის შემდეგ), ის სისტემაში ხაზგარეშე იქნება მონიშნული და მომხმარებელს შეუძლია გააფრთხილოს ამის შესახებ.
void DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare *flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << "გამაგრილებელი" მისამართი (); flowerCare-> refreshData (); } else {qCDebug (dcFlowerCare ()) << "არ არის გამაგრილებელი" მისამართი () << "შემდეგი განახლება" << m_refreshMinutes [flowerCare] << "წუთში"; } // თუ ჩვენ გვქონდა კავშირის 2 ან მეტი წარუმატებელი მცდელობა, მონიშნეთ როგორც გათიშული, თუ (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "განახლება ვერ მოხერხდა" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
ამ სტრატეგიით, nymea– მ ამ სენსორისგან შესანიშნავად მიაწოდა მონაცემები.
ნაბიჯი 4: მისი გამოყენება უფრო დიდ კონტექსტში
სენსორისგან მხოლოდ მნიშვნელობების მიღება არც თუ ისე სასარგებლოა, მე ასევე შემეძლო გამოვიყენო ორიგინალური აპლიკაცია ამისათვის. ახლა მოდით გავაკეთოთ რამდენიმე ჭკვიანი რამ მასთან ერთად.
Nymea მხარს უჭერს push შეტყობინებების გაგზავნას, ან nymea– ს ტელეფონებზე: დაინსტალირებული აპლიკაცია, ან PushBullet– ის საშუალებით. ასე რომ, აშკარაა, რომ გამომიგზავნოთ შეტყობინებები, როდესაც ნიადაგის ტენიანობა 15%-ზე დაბლა მოდის. საკმაოდ ადვილია ამის დაყენება აპლიკაციაში. როგორც წინაპირობა, ან გჭირდებათ ანგარიში nymea: cloud ან PushBullet– ზე. Nymea: ღრუბელზე დაფუძნებული push შეტყობინებებისათვის საკმარისია ჩართოთ nymea: cloud on nymea: core და nymea: app. როგორც კი ორივე დაკავშირებულია, შეტყობინების ობიექტი ავტომატურად გამოჩნდება. PushBullet– ისთვის დაამატეთ ახალი რამ სისტემაში, თქვენ ნახავთ PushBullet– ს სიაში. ის მოგთხოვთ API გასაღებს, რომელსაც მიიღებთ PushBullet– ით დარეგისტრირებისას. მას შემდეგ რაც თქვენ გაქვთ შეტყობინების ბიუჯეტი ნიმეაში, შეგიძლიათ შექმნათ წესი.
რა თქმა უნდა, თქვენ შეგიძლიათ გააკეთოთ რაც გინდათ … ასევე შეგიძლიათ ჩართოთ შუქი სენსორის მნიშვნელობების ასახვის მიზნით, ან გამოიყენოთ HTTP მეთაურის მოდული, რომ განათავსოთ სენსორის მნიშვნელობები სერვერზე ინტერნეტში, მაგალითად. მე არ მაქვს წყლის სარქველი რომლის კონტროლი შესაძლებელია ციფრულად (ჯერჯერობით) მაგრამ რა თქმა უნდა, თუ თქვენ გაქვთ ასეთი რამ და ის ჯერ არ არის მხარდაჭერილი nymea– ით, ამისთვის მოდულის დამატება უფრო მსგავსი იქნება ვიდრე ეს.
ნაბიჯი 5: სიტყვების დახურვა
Flowercare მოდული უკვე მიღებულია დინების ზემოთ და თუ თქვენ გაქვთ ერთი მათგანი, ის მზადაა გამოვიყენოთ nymea– ით. თუმცა, ვიმედოვნებ, რომ ეს სტატია შეიძლება იყოს საინტერესო, თუ ვინმეს სურს დაამატოს მხარდაჭერა სხვა მოწყობილობებისთვის. ეს უნდა იყოს ნაბიჯი იმის შესახებ, თუ როგორ უნდა შექმნათ თქვენი საკუთარი მოდული nymea– სთვის.
თუ გსურთ უბრალოდ შექმნათ ეს კონფიგურაცია თქვენს სახლში, ყველაფერი რაც გჭირდებათ არის FlowerCare სენსორი, Raspberry Pi, nymea საზოგადოების სურათი (ის მოიცავს ყვავილების მოვლის მოდულს) და nymea: აპლიკაცია, რომელიც ხელმისაწვდომია აპლიკაციის მაღაზიებში. ასევე, ჯერჯერობით ჩემი Monstera Deliciosa კვლავ ბედნიერია და როგორც თქვენ ალბათ გინახავთ ეკრანის სურათებში, მე მივიღე მეორე სენსორი, რომელიც თვალყურს ადევნებდა ჩემი ლიმონის ხის ჯანმრთელობასაც. ამისთვის მე თვითონ ვაგზავნი push შეტყობინებას, როდესაც გარეთ იყინება, ასე რომ შემიძლია ზამთარი უსაფრთხოდ გავატარო.
გირჩევთ:
ჭკვიანი შიდა მცენარეების მონიტორი - იცოდეთ როდის სჭირდება თქვენს მცენარეს მორწყვა: 8 ნაბიჯი (სურათებით)
ჭკვიანი შიდა მცენარეთა მონიტორი - იცოდეთ როდის სჭირდება თქვენს მცენარეს მორწყვა: რამდენიმე თვის წინ მე გავაკეთე ნიადაგის ტენიანობის მონიტორინგის ჯოხი, რომელიც იკვებება ბატარეით და შეიძლება ჩარჩენილი იყოს თქვენი შიდა მცენარის ქოთანში, რათა მოგაწოდოთ სასარგებლო ინფორმაცია ნიადაგის შესახებ ტენიანობის დონე და მოციმციმე LED- ები გეტყვით როდის უნდა დაელოდოთ
წყლის გაფრთხილება - მოწყობილობა თქვენი ნავის გადასარჩენად: 5 ნაბიჯი (სურათებით)
წყლის გაფრთხილება - მოწყობილობა თქვენი ნავის გადასარჩენად: თუ თქვენ ხართ ნავის მფლობელი, მაშინ მყუდრო კომფორტს მიიღებთ ნავის მშრალად მიწაში. იქ ჩაძირვა არ შეიძლება. ყველგან ის მუდმივი ბრძოლის წინაშე დგას ტალღების ქვეშ მოქცევისა და გაქრობის ტენდენციის დასაძლევად. ზამთრის პერიოდში აქ, სამწუხაროდ
ავტომატური ნაგავი შეიძლება იყოს ან ბინ. პლანეტის გადასარჩენად .: 19 ნაბიჯი (სურათებით)
ავტომატური ნაგავი შეიძლება იყოს ან ბინ. პლანეტის შესანახად: სანამ დავიწყებდით, გირჩევთ უყუროთ პირველ ვიდეოს ამის წაკითხვამდე, რადგან ის ძალიან სასარგებლოა. ჰაი, მე მქვია იაკობი და ვცხოვრობ დიდ ბრიტანეთში. გადამუშავება არის დიდი პრობლემა, სადაც მე ვცხოვრობ, ვხედავ უამრავ ნაგავს მინდვრებზე და ეს შეიძლება იყოს მავნე. თ
შექმენით ჩემი საკუთარი გრაფიკები ჩემი IOT მონაცემებისთვის ჟოლოს PI– ზე: 3 ნაბიჯი
შექმენით ჩემი საკუთარი გრაფიკები ჩემი IOT მონაცემებისთვის ჟოლოს PI- ზე: გთხოვთ წაიკითხოთ, თუ გინდათ რომ შეგეძლოთ შექმნათ თქვენი საკუთარი IOT გრაფიკები კოდის 7 ხაზის გამოყენებით. მე მინდოდა შემექმნა სქემები, რომ აჩვენო მონაცემები გრაფიკული ფორმატით ჩემი IOT სენსორებიდან ვებ გვერდზე. ადრე, ამისათვის მე ვიყენებდი მესამე მხარის მომსახურებებს (ზოგი
ჩემი კლავიატურა ჩემი ხელები: 8 ნაბიჯი (სურათებით)
ჩემი კლავიატურა ჩემი ხელები: მე გამოვიყენე ახალი Epilog ლაზერული საჭრელი, რომელიც Instructables– მა ახლახან მიიღო ლაზერულად და ჩემი ხელების გამოსახულება ლეპტოპის კლავიატურაზე … მუდმივად. ახლა ეს გააუქმებს თქვენს გარანტიას წვრილმანების სტილში! მე ლაზერულად დავწერე უფრო მეტი ლაპტოპი ვიდრე უმეტესობა მას შემდეგ რაც მე დამეხმარა