Isi kandungan:
- Langkah 1: Mendapatkan Stug Plugin Dimuat
- Langkah 2: Mencari Data pada Sensor
- Langkah 3: Menyentuh Sentuhan
- Langkah 4: Menggunakannya dalam Konteks Lebih Besar
- Langkah 5: Kata Penutup
Video: FlowerCare dan Nymea untuk Menyelamatkan Tumbuhan Saya: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Menjadikan tangan kotor semasa memasang sensor penjagaan kilang ke rumah pintar sumber terbuka saya yang ada. Panduan pembangunan plugin untuk nymea.
Cerita itu
Seperti banyak peretas dan penggodam lain, saya juga menderita dari masalah bahawa penggodaman pada banyak perkara memakan masa saya sehingga kadang-kadang saya lupa untuk menyiram tanaman saya. Setelah Monstera Deliciosa saya sekali lagi menderita tanah kering, saya memutuskan untuk melihat sama ada saya dapat melakukan sesuatu untuk mengingatkan saya ketika dahaga.
Penyelidikan cepat di web menarik perhatian saya kepada Xiaomi FlowerCare, juga dikenal sebagai MiCare atau PlantCare. Ini adalah peranti Bluetooth Tenaga Rendah dan beberapa penyelidikan asas menunjukkan bahawa protokolnya nampaknya cukup mudah difahami. Walaupun Xiaomi nampaknya tidak memberikan spesifikasi umum, terdapat banyak teknik terbalik di internet untuk peranti ini. Oleh itu, saya memutuskan untuk memesan salah satu dari mereka.
Beberapa hari kemudian ia dihantar dan sudah tentu saya mula bermain-main dengannya dengan segera. Secara ringkas saya melihat aplikasi yang disertakan dengannya tetapi seperti yang anda mungkin dapat meneka, menggunakannya dalam persediaan lalai tidak pernah menjadi rancangan saya. Sudah tentu ini perlu disatukan dengan persediaan rumah pintar saya yang ada. Seperti yang dijelaskan di sini, saya menggunakan nymea sebagai penyelesaian rumah pintar saya (Ya, anda juga boleh melihat Monstera di salah satu gambar di sana:)). Malangnya, nymea belum menyokong sensor itu, jadi beberapa IDE dijalankan.
Langkah 1: Mendapatkan Stug Plugin Dimuat
Jadi perkara pertama yang saya lakukan ialah menyalin plugin Texas Instruments Sensor Tag yang ada, nampaknya cukup serupa dengan yang saya anggap harus berfungsi untuk peranti FlowerCare juga. Setelah penamaan semula perkara asas dalam plugininfo.json dan mengulas sebahagian besar kod pemalam sensortag, saya telah siap memuat stub pemalam baru.
Seperti yang dijangkakan, penemuan itu akan segera menunjukkan sensor dan membolehkan saya menambahkannya ke sistem. Sudah tentu ia tidak akan menghasilkan data yang bermakna pada ketika ini.
Langkah 2: Mencari Data pada Sensor
Seperti mana-mana peranti Bluetooth LE, perkara pertama yang ingin anda lakukan ialah mengetahui perkhidmatan yang ditawarkan dan ciri-cirinya. Di suatu tempat di sana data sebenar disembunyikan. Dengan perulangan cetak debug cepat ke atas semua perkhidmatan yang ditemui dan mencetak ciri-ciri mereka, saya berada di titik di mana saya dapat membandingkan maklumat yang saya dapati di internet dengan apa yang sebenarnya dilaporkan oleh peranti.
batal FlowerCare:: onServiceDiscoveryFinished () {BluetoothLowEnergyDevice * btDev = static_cast (pengirim ()); qCDebug (dcFlowerCare ()) << "mempunyai layanan perkhidmatan"
Versi firmware dan tahap baterinya mudah. Saya sudah dapat melihat nilai-nilai yang sesuai dicetak dalam percubaan pertama menyenaraikan data. Nilai sensor sebenarnya tersembunyi sedikit lebih mendalam di dalamnya, tetapi menggabungkannya dengan data dari internet segera menunjukkan di mana mencarinya dan terutama bagaimana membacanya.
batal FlowerCare:: onSensorServiceCharacteristicRead (const QLowEnergyCharacteristic & characteristic, const QByteArray & value) {qCDebug (dcFlowerCare ()) << "Characteristic read" << QString:: number (karakteristik.handle (), 16) temp; langkau qint8; aliran >> langkau; quint32 lux; aliran >> lux; kelembapan qint8; aliran >> kelembapan; kesuburan qint16; aliran >> kesuburan; emit selesai (m_batteryLevel, 1.0 * temp / 10, lux, kelembapan, kesuburan); }
Menggabungkan ini, plugin sudah mula menghasilkan data yang bermakna.
Langkah 3: Menyentuh Sentuhan
Jadi pada dasarnya ia berfungsi sekarang, namun satu masalah masih ada. Sensor FlowerCare akan, bertentangan dengan Texas Instruments SensorTag, memutuskan sambungan Bluetooth setelah beberapa saat. Mengingat kes penggunaannya, ini sepertinya tidak menjadi masalah kerana cukup dipercayai dalam menanggapi percubaan sambungan. Memandangkan biasanya tanaman tidak menyedut satu liter air dalam beberapa minit, tetapi beberapa hari, nampaknya tidak diperlukan untuk terus berhubung sepanjang masa. Ini juga akan menghabiskan bateri dengan banyak. Oleh itu, saya memutuskan untuk menambahkan PluginTimer yang akan menyambungkan semula sensor setiap 20 minit dan mengambil data daripadanya. Sekiranya, untuk sebab tertentu, sensor tidak bertindak balas terhadap percubaan sambungan, kod akan memulakan pemasa lain yang cuba menyambung semula setiap minit dari saat itu sehingga berjaya mendapatkan data. Kemudian akan kembali untuk mengambil data selang 20 minit lagi. Sekiranya peranti gagal menyambung dua kali berturut-turut (artinya, setelah 20 + 1 minit), ia akan ditandakan di luar talian dalam sistem dan pengguna dapat diberi amaran mengenainya.
batal DevicePluginFlowercare:: onPluginTimer () {foreach (FlowerCare * flowerCare, m_list) {if (--m_refreshMinutes [flowerCare] <= 0) {qCDebug (dcFlowerCare ()) << Alamat "Refreshing" (); flowerCare-> refreshData (); } lain {qCDebug (dcFlowerCare ()) << "Tidak menyegarkan" alamat () << "Muat semula seterusnya dalam" << m_refreshMinutes [flowerCare] << "minit"; } // Sekiranya kami mempunyai 2 atau lebih percubaan sambungan yang gagal, tandakan sebagai terputus jika (m_refreshMinutes [flowerCare] <-2) {qCDebug (dcFlowerCare ()) << "Gagal memuat semula untuk" << (m_refreshMinutes [flowerCare] * -1) <setStateValue (flowerCareConnectedStateTypeId, false); }}}
Dengan strategi ini nymea kini nampaknya dapat menyampaikan data yang boleh dipercayai dari sensor ini.
Langkah 4: Menggunakannya dalam Konteks Lebih Besar
Hanya mendapatkan nilai dari sensor tidak begitu berguna, saya juga boleh menggunakan aplikasi asli untuk itu. Sekarang mari kita buat beberapa perkara pintar dengannya.
Nymea menyokong penghantaran pemberitahuan push, baik ke telefon dengan nymea: aplikasi dipasang, atau melalui PushBullet. Oleh itu, perkara yang jelas perlu dilakukan ialah menghantar notifikasi tolak kepada saya setiap kali kelembapan tanah turun di bawah 15%. Agak mudah untuk menetapkannya di aplikasi. Sebagai prasyarat anda memerlukan akaun di nymea: cloud atau di PushBullet. Untuk pemberitahuan push nymea: cloud, cukup untuk mengaktifkan nymea: cloud pada nymea: core dan dalam aplikasi nymea: Sebaik sahaja kedua-duanya disambungkan, perkara pemberitahuan akan muncul secara automatik. Untuk PushBullet menambah perkara baru dalam sistem, anda akan menemui PushBullet dalam senarai di sana. Ia akan meminta kunci API yang anda dapat semasa mendaftar dengan PushBullet. Setelah anda mempunyai maklumat pemberitahuan push di nymea, anda boleh membuat peraturan.
Sudah tentu anda boleh melakukan apa sahaja yang anda mahukan … Juga dapat menyalakan cahaya untuk mencerminkan nilai sensor, atau menggunakan plugin komandan HTTP untuk memasukkan nilai sensor ke pelayan di internet misalnya. Saya tidak mempunyai injap air yang boleh dikendalikan secara digital (belum) tetapi tentu saja, jika anda mempunyai perkara seperti itu dan belum disokong oleh nymea, menambahkan pemalam untuk itu akan lebih serupa daripada ini.
Langkah 5: Kata Penutup
Plugin penjagaan bunga telah diterima di hulu sekarang dan jika anda mempunyai salah satu daripadanya, sudah siap digunakan dengan nymea sekarang. Namun, saya harap artikel ini mungkin menarik sekiranya seseorang ingin menambahkan sokongan untuk peranti lain. Ini harus menjadi panduan bagaimana membina plugin anda sendiri untuk nymea.
Sekiranya anda hanya ingin membuat persediaan ini di rumah anda, semua yang anda perlukan adalah sensor FlowerCare, Raspberry Pi, gambar komuniti nymea (ia termasuk plugin penjagaan bunga sekarang), dan aplikasi nymea: yang tersedia di kedai aplikasi. Juga, setakat ini Monstera Deliciosa saya kembali gembira dan seperti yang anda lihat di tangkapan skrin, saya juga menjadi sensor kedua untuk mengesan kesihatan pokok limau saya. Untuk itu, saya menghantar pemberitahuan tolak kepada saya setiap kali ia beku di luar supaya saya dapat membawanya ke musim sejuk dengan selamat.
Disyorkan:
Amaran Air - Peranti untuk Menyelamatkan Perahu Anda: 5 Langkah (dengan Gambar)
Amaran Air - Peranti untuk Menyelamatkan Perahu Anda: Sekiranya anda pemilik kapal, ada keselesaan yang kuat dalam akhirnya membawa kapal di tanah kering. Ia tidak boleh tenggelam di sana. Di mana sahaja ia menghadapi pertempuran berterusan untuk mengatasi kecenderungan tergelincir di bawah gelombang dan hilang. Semasa musim sejuk di sini di Alas
Pengumpan Tumbuhan Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: 21 Langkah
Pengumpan Tanaman Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: Dalam tutorial ini kita akan menunjukkan cara mengatur sistem pengumpan tanaman dalaman / luaran khusus yang menyiram tanaman secara automatik dan dapat dipantau dari jarak jauh menggunakan platform Adosia
Buat Grafik Saya Sendiri untuk Data IOT Saya pada Raspberry PI: 3 Langkah
Buat Grafik Saya Sendiri untuk Data IOT Saya pada Raspberry PI: Sila baca jika anda mahu dapat membuat grafik IOT anda sendiri menggunakan 7 baris kod. Saya mahu membuat carta untuk memaparkan data dalam format grafik dari sensor IOT saya di laman web. Sebelum ini, untuk ini, saya telah menggunakan perkhidmatan pihak ketiga (beberapa
Pemegang Sel D Saya yang Sederhana (dan Apa yang Saya Lakukan): 4 Langkah
Pemegang Sel D Saya yang Sederhana (dan Apa yang Saya Lakukan Dengannya): ini adalah pemegang sederhana untuk bateri ukuran d, saya menggunakan dua untuk mengeluarkan 3v, tetapi anda boleh meregangkan atau mengecilkan reka bentuk dengan mudah seperti yang anda perlukan, anda juga boleh menggunakannya prinsip yang sama untuk sel ukuran c. Saya mempunyai banyak sel ukuran d di dalam almari tidak melakukan apa-apa
Tiub Saya! Pembesar suara Stereo Sub Woofer untuk I-pod dan Mp3 Versi Kedua (dengan Bateri dan Pengecas USB): 12 Langkah
Tiub Saya! Pembesar suara Stereo Sub Woofer untuk I-pod dan Mp3 Versi Kedua (dengan Bateri dan Pengecas USB): Realiti suku saya adalah lebih awal daripada rumit tetapi sukar untuk direalisasikan. Draf dua casing kendiri stereo ke bateri yang boleh dimuat semula dengan kemungkinan untuk mengisi semula i-pod melalui USB yang diambil yang diberi makan dari batte yang sama