Daftar Isi:
- Langkah 1: Mendapatkan Plugin Stub Dimuat
- Langkah 2: Menemukan Data pada Sensor
- Langkah 3: Sentuhan Akhir
- Langkah 4: Menggunakannya dalam Konteks yang Lebih Besar
- Langkah 5: Kata Penutup
Video: FlowerCare dan Nymea untuk Menyelamatkan Tanaman Saya: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Menjadi kotor saat memasang sensor perawatan tanaman ke rumah pintar open source saya yang ada. Panduan tentang pengembangan plugin untuk nymea.
Cerita
Seperti banyak pengotak dan peretas lainnya, saya juga menderita karena masalah meretas berbagai hal menghabiskan begitu banyak waktu saya sehingga saya kadang-kadang lupa menyirami tanaman saya. Setelah Monstera Deliciosa saya sekali lagi menderita tanah kering, saya memutuskan untuk melihat apakah saya dapat melakukan sesuatu untuk mengingatkan saya ketika haus.
Sebuah penelitian cepat di web membawa perhatian saya ke Xiaomi FlowerCare, juga dikenal sebagai MiCare atau PlantCare. Ini adalah perangkat Bluetooth Low Energy dan beberapa penelitian dasar mengungkapkan bahwa protokolnya tampaknya cukup mudah dipahami. Meskipun Xiaomi tampaknya tidak memberikan spesifikasi publik apa pun, ada sedikit rekayasa balik di internet untuk perangkat ini. Jadi saya memutuskan untuk memesan salah satunya.
Beberapa hari kemudian itu dikirim dan tentu saja saya mulai bermain-main dengannya segera. Saya secara singkat memeriksa aplikasi yang menyertainya tetapi seperti yang mungkin dapat Anda tebak, menggunakannya dalam pengaturan default tidak pernah menjadi rencana saya. Tentu saja ini perlu diintegrasikan dengan pengaturan rumah pintar saya yang sudah ada. Seperti yang juga dijelaskan di sini, saya menggunakan nymea sebagai solusi rumah pintar saya (Ya, Anda bahkan dapat melihat Monstera di salah satu gambar di sana:)). Sayangnya, nymea belum mendukung sensor itu, jadi jalankan beberapa IDE secara berurutan.
Langkah 1: Mendapatkan Plugin Stub Dimuat
Jadi hal pertama yang saya lakukan adalah menyalin plugin Texas Instruments Sensor Tag yang ada, sepertinya cukup mirip dengan apa yang saya asumsikan juga berfungsi untuk perangkat FlowerCare. Setelah penggantian nama dasar dari hal-hal di plugininfo.json dan mengomentari sebagian besar kode plugin sensortag, saya siap untuk memuat rintisan plugin baru.
Seperti yang diharapkan, penemuan itu akan segera menunjukkan sensor dan memungkinkan saya untuk menambahkannya ke sistem. Tentu saja itu tidak akan menghasilkan data yang berarti pada saat ini.
Langkah 2: Menemukan Data pada Sensor
Seperti halnya perangkat Bluetooth LE, hal pertama yang ingin Anda lakukan adalah mencari tahu tentang layanan yang ditawarkan dan karakteristiknya. Di suatu tempat di sana, data sebenarnya disembunyikan. Dengan pencetakan debug cepat yang mengulang semua layanan yang ditemukan dan mencetak karakteristiknya, saya berada pada titik di mana saya dapat membandingkan informasi yang saya temukan di internet dengan apa yang sebenarnya dilaporkan perangkat.
void FlowerCare::onServiceDiscoveryFinished(){ BluetoothLowEnergyDevice *btDev = static_cast(sender()); qCDebug(dcFlowerCare()) << "memiliki layanan uuids"
Versi firmware dan tingkat baterai mudah. Saya sudah bisa melihat nilai yang sesuai dicetak dalam upaya pertama untuk mendaftar data. Nilai sensor yang sebenarnya tersembunyi sedikit lebih dalam di sana, tetapi menggabungkannya dengan data dari internet segera menunjukkan di mana menemukannya dan terutama cara membacanya.
void FlowerCare::onSensorServiceCharacteristicRead(const QLowEnergyCharacteristic &characteristic, const QByteArray &value){ qCDebug(dcFlowerCare()) << "Karakteristik dibaca" << QString::number(characteristic.handle(), 16) temp; qint8 lewati; aliran >> lewati; quint32 lux; aliran >> luks; qint8 kelembaban; aliran >> kelembaban; qint16 kesuburan; aliran >> kesuburan; memancarkan selesai (m_batteryLevel, 1.0 * temp / 10, lux, kelembaban, kesuburan); }
Menyatukan ini, plugin sudah mulai menghasilkan data yang berarti.
Langkah 3: Sentuhan Akhir
Jadi pada dasarnya berhasil sekarang, namun, satu masalah masih tersisa di sana. Sensor FlowerCare akan, berbeda dengan Texas Instruments SensorTag, memutuskan koneksi Bluetooth setelah beberapa detik. Mempertimbangkan kasus penggunaan, ini tampaknya tidak menjadi masalah karena cukup andal dalam menanggapi upaya koneksi. Mengingat bahwa biasanya sebuah pabrik tidak menyedot satu liter air dalam beberapa menit, melainkan berhari-hari, tampaknya tidak perlu untuk tetap terhubung sepanjang waktu. Juga ini akan menguras baterai cukup banyak. Jadi saya memutuskan untuk menambahkan PluginTimer yang akan menghubungkan kembali sensor setiap 20 menit dan mengambil data darinya. Jika, karena alasan tertentu, sensor tidak merespons upaya koneksi, kode akan memulai pengatur waktu lain yang mencoba menyambung kembali setiap menit sejak saat itu hingga berhasil mendapatkan data. Kemudian akan kembali untuk mengambil data pada interval 20 menit lagi. Jika perangkat gagal terhubung dua kali berturut-turut (artinya, setelah 20 + 1 menit), itu akan ditandai offline di sistem dan pengguna dapat diperingatkan tentang hal itu.
void DevicePluginFlowercare::onPluginTimer(){ foreach (FlowerCare *flowerCare, m_list) { if (--m_refreshMinutes[flowerCare] <= 0) { qCDebug(dcFlowerCare()) << "Refreshing" address(); flowerCare->refreshData(); } else { qCDebug(dcFlowerCare()) << "Tidak menyegarkan" alamat() << " Penyegaran berikutnya dalam" << m_refreshMinutes[flowerCare] << "menit"; } // Jika kita memiliki 2 atau lebih upaya koneksi yang gagal, tandai sebagai terputus if (m_refreshMinutes[flowerCare] < -2) { qCDebug(dcFlowerCare()) << "Gagal menyegarkan untuk"<< (m_refreshMinutes[flowerCare] * -1) <setStateValue(flowerCareConnectedStateTypeId, false); } } }
Dengan strategi ini, nymea sekarang tampaknya memberikan data yang sangat andal dari sensor ini.
Langkah 4: Menggunakannya dalam Konteks yang Lebih Besar
Hanya mendapatkan nilai dari sensor tidak terlalu berguna, saya juga bisa menggunakan aplikasi asli untuk itu. Sekarang mari kita lakukan beberapa hal cerdas dengannya.
Nymea mendukung pengiriman pemberitahuan push, baik ke ponsel dengan nymea:app terinstal, atau melalui PushBullet. Jadi hal yang jelas untuk dilakukan adalah mengirimi diri saya sendiri beberapa pemberitahuan push setiap kali kelembaban tanah turun di bawah 15%. Agak mudah untuk mengaturnya di aplikasi. Sebagai prasyarat, Anda memerlukan akun di nymea:cloud atau di PushBullet. Untuk pemberitahuan push berbasis nymea:cloud cukup dengan mengaktifkan nymea:cloud di nymea:core dan di nymea:app. Segera setelah keduanya terhubung, sebuah notifikasi akan muncul secara otomatis. Untuk PushBullet menambahkan hal baru di sistem, Anda akan menemukan PushBullet dalam daftar di sana. Ini akan menanyakan kunci API yang Anda dapatkan saat mendaftar dengan PushBullet. Setelah Anda memiliki pemberitahuan push di nymea, Anda dapat membuat aturan.
Tentu saja Anda dapat melakukan apa pun yang Anda inginkan… Juga dapat menyalakan lampu untuk memantulkan nilai sensor, atau menggunakan plugin komandan HTTP untuk mengirim nilai sensor ke server di internet misalnya. Saya tidak memiliki katup air yang dapat dikontrol secara digital (belum) tetapi tentu saja, jika Anda memiliki hal seperti itu dan belum didukung oleh nymea, menambahkan plugin untuk itu akan lebih mirip daripada ini.
Langkah 5: Kata Penutup
Plugin flowercare telah diterima di upstream sekarang dan jika Anda memiliki salah satunya, plugin tersebut siap digunakan dengan nymea sekarang. Namun, saya harap artikel ini mungkin menarik jika seseorang ingin menambahkan dukungan untuk perangkat lain. Ini harus menjadi panduan tentang cara membuat plugin Anda sendiri untuk nymea.
Jika Anda hanya ingin membuat pengaturan ini di rumah Anda, yang Anda perlukan hanyalah sensor FlowerCare, Raspberry Pi, gambar komunitas nymea (sekarang sudah termasuk plugin perawatan bunga), dan nymea:app yang tersedia di toko aplikasi. Juga, sejauh ini Monstera Deliciosa saya bahagia lagi dan seperti yang mungkin Anda lihat di tangkapan layar, saya mendapatkan sensor kedua untuk melacak kesehatan pohon lemon saya juga. Untuk itu saya mengirim sendiri pemberitahuan push setiap kali di luar sangat dingin sehingga saya dapat membawanya melewati musim dingin dengan aman.
Direkomendasikan:
Peringatan Air -- Alat untuk Menyelamatkan Perahu Anda: 5 Langkah (dengan Gambar)
Peringatan Air - Alat untuk Menyelamatkan Perahu Anda: Jika Anda adalah pemilik perahu, ada kenyamanan yang kuat untuk akhirnya mendapatkan perahu di tanah kering. Itu tidak bisa tenggelam di sana. Di tempat lain ia menghadapi pertempuran terus-menerus untuk mengatasi kecenderungan untuk tergelincir di bawah gelombang dan menghilang. Selama musim dingin di sini di Alas
Pengumpan Tanaman Otomatis WiFi Dengan Reservoir - Pengaturan Budidaya Indoor/Outdoor - Air Tanaman Secara Otomatis Dengan Pemantauan Jarak Jauh: 21 Langkah
Pengumpan Tanaman Otomatis WiFi Dengan Reservoir - Pengaturan Budidaya Indoor/Outdoor - Menanam Tanaman Secara Otomatis Dengan Pemantauan Jarak Jauh: Dalam tutorial ini kami akan mendemonstrasikan cara mengatur sistem pengumpan tanaman indoor/outdoor khusus yang secara otomatis menyirami tanaman dan dapat dipantau dari jarak jauh menggunakan platform Adosia
Buat Grafik Saya Sendiri untuk Data IOT Saya di Raspberry PI: 3 Langkah
Buat Grafik Saya Sendiri untuk Data IOT Saya pada Raspberry PI: Silakan baca terus jika Anda ingin dapat membuat grafik IOT Anda sendiri menggunakan 7 baris kode. Saya ingin membuat grafik untuk menampilkan data dalam format grafik dari sensor IOT saya pada halaman web. Sebelumnya untuk ini saya pernah menggunakan jasa pihak ke-3 (beberapa
Pemegang Sel D Sederhana Saya (dan Apa yang Saya Lakukan Dengannya): 4 Langkah
My Simple D Cell Holder (dan Apa yang Saya Lakukan Dengannya): ini adalah holder sederhana untuk baterai ukuran d, saya menggunakan dua untuk mengeluarkan 3v, tetapi Anda dapat dengan mudah meregangkan atau mengecilkan desain sesuai kebutuhan, juga dapat Anda gunakan prinsip yang sama untuk sel ukuran c. Saya memiliki banyak sel ukuran d di lemari tidak melakukan apa-apa
Tabung saya! Stereo Sub Woofer Speakers untuk I-pod dan Mp3 Versi Kedua (dengan Baterai dan Pengisi Daya USB): 12 Langkah
Tabung saya! Stereo Sub Woofer Speakers untuk I-pod dan Mp3 Versi Kedua (dengan Baterai dan Pengisi Daya USB): Realisasi kuartal saya adalah preseden yang lebih rumit tetapi tidak sulit untuk diwujudkan. Draf dua kotak bertenaga mandiri stereo ke baterai yang dapat diisi ulang dengan kemungkinan untuk mengisi ulang i-pod melalui USB yang diambil dari baterai yang sama