Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Komponen dan Perlengkapan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Berikan Suara pada Tanaman Anda dengan Sensor Kelembaban Tanah Nirkabel

Mari kita hadapi realitas. Tanaman mati terus-menerus karena kurang disirami. Anda sibuk dan pakis-pakisan itu tidak akan mengangkat tangan saat merasa kehausan. Jadi, untuk pecinta tanaman yang sedang bepergian, prototipe sonda kelembaban tanah ini adalah tiket Anda untuk pakis dan ficus yang bahagia dan sehat.

Apa yang Akan Kita Bahas

Secara menyeluruh panduan ini seharusnya memakan waktu sekitar 60 menit. Berikut adalah apa yang akan kita bahas:

Baiklah. Mari kita mulai. Kami memiliki pakis yang harus selamatkan.

Membangun Sonda Kelembaban Tanah Anda

Pertama kita perlu membangun unit pengendalian. Ini cepat dan mudah. Setelah selesai, sonda lengkap Anda akan terlihat seperti ini:

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Untuk membangun ini:

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Menebarkan Helium Element Anda

Sekarang saatnya membangun Jaringan Helium Anda sendiri. Ini memakan waktu sekitar 30 detik. (Jika Anda ingin mengetahui lebih lanjut tentang bagaimana aplikasi akhir ke akhir dibangun di Helium dan bagaimana kita menangani komponen jaringan nirkabel, mulai dengan ringkasan arsitektur ini.)

Untuk melebarkan Element dan membuat cakupan jaringan untuk sensor berbasis Atom Anda, cukup colokkan ke daya dan port Ethernet langsung menggunakan kabel yang disediakan. (Catatan: Jika Anda memiliki Element backed Seluler, menggunakan konektivitas Ethernet opsional tetapi direkomendasikan sebagai cadangan.) Setelah dihubungkan, Anda akan melihat aktivitas LED. Element Anda akan terhubung ketika LED di depan berwarna hijau (menyinyalikan konektivitas Ethernet) atau teal (untuk konektivitas Seluler). Anda dapat menonton video pendek tentang Element dan cara menghubungkannya di sini.

Mendaftarkan Helium Element dan Atom di Helium Dashboard

Sekarang setelah unit pengendalian kami dibangun dan jaringan Helium Anda dibuka, saatnya untuk mendaftarkan perangkat keras Anda di Helium Dashboard. Dashboard adalah antarmuka pengguna hosted Helium untuk memantau dan mengelola penerapan perangkat keras yang terhubung. Semua perangkat keras yang dikirim Helium sudah terdaftar dalam sistem kami tetapi kita perlu mengetahui siapa yang melebarnya.

Anda dapat memverifikasi apakah Element Anda online dengan melihat Status & Signal di Dashboard:

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Melebarkan Helium HTTP Channel

Fitur utama dari Platform Helium adalah Channels. Ini adalah konektor bawaan ke layanan web (seperti AWS IoT, Google Cloud IoT, dan Azure IoT) dan protokol (seperti MQTT dan HTTP). Dengan Channels, Helium telah melakukan semua pekerjaan berat bagi Anda ketika berkaitan dengan integrasi dengan salah satu layanan web atau protokol ini. Untuk Fern Saver, Sonda Kelembaban Tanah kita, mari kita nyalakan HTTP Channel. Ini akan memungkinkan kami mengalirkan data ke setiap layanan web yang menerima data melalui HTTP. Misalnya, Anda dapat menggunakan HTTP Channel untuk mengirim data ini ke IFTTT dan, pada gilirannya, menerima teks setiap kali Fern Saver melaporkan kelembaban di bawah tingkat tertentu.

Dalam contoh ini, kami akan menyiapkan HTTP Channel yang mengirim data ke requestb.in, layanan web yang berguna dan gratis untuk menguji layanan HTTP. Perhatikan bahwa di bawah ini, ketika kami mengunggah Sketch ke Arduino, kami akan merujuk pada nama Channel ini, HTTP, dalam kode sehingga kami tahu ke mana mengirim data.

Ini adalah seberapa cepat dan mudah untuk menyiapkan Channel ini:

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Mengonfigurasi Arduino IDE Anda dan Mengunggah Sketch

Kami sekarang dapat beralih ke mengonfigurasi Arduino IDE Anda dan mengimpor pustaka yang diperlukan. Untuk memulai:

Setelah selesai, saatnya untuk melakukan pemrograman Arduino yang sebenarnya. Sumber lengkap untuk Sketch yang akan kami unggah dapat ditemukan di sini di GitHub. Berikut adalah sketsa Soil_Humidity.ino lengkap.

/* * Copyright 2017, Helium Systems, Inc. * All Rights Reserved. See LICENCE.txt for license information * * Taking humidity readings using the SEN0192 capacitive humidity * sensor. Wiring instructions: * https://www.dfrobot.com/wiki/index.php/Capacitive_Soil_Moisture_Sensor_SKU:SEN0193 * * Install the following libraries through Sketch->Manage Libraries: * - ArduinoJson * - Helium */ #include "Board.h" #include <Arduino.h> #include <ArduinoJson.h> #include <Helium.h> #include <Wire.h> // This Channel Name should correspond the Channel you've deployed in Helium // Dashboard to ingest this data. #define CHANNEL_NAME "HTTP" // Delay for one second #define CHANNEL_DELAY 5000 // Send very 60 cycles (seconds) #define CHANNEL_SEND_CYCLE 12 Helium helium(&atom_serial); Channel channel(&helium); int channel_counter; void report_status(int status, int result = 0) { if (helium_status_OK == status) { if (result == 0) { Serial.println(F("Succeeded")); } else { Serial.print(F("Failed - ")); Serial.println(result); } } else { Serial.println(F("Failed")); } } void connect() { while (!helium.connected()) { Serial.print(F("Connecting - ")); int status = helium.connect(); report_status(status); if (helium_status_OK != status) { delay(1000); } } } void channel_create(const char * channel_name) { int8_t result; int status; do { // Ensure we're connected connect(); Serial.print(F("Creating Channel - ")); status = channel.begin(channel_name, &result); // Print status and result report_status(status, result); if (helium_status_OK != status) { delay(1000); } } while (helium_status_OK != status || result != 0); } void channel_send(const char * channel_name, void const * data, size_t len) { int status; int8_t result; do { // Try to send Serial.print(F("Sending - ")); status = channel.send(data, len, &result); report_status(status, result); // Create the channel if any service errors are returned if (status == helium_status_OK && result != 0) { channel_create(channel_name); } else if (status != helium_status_OK) { delay(1000); } } while (helium_status_OK != status || result != 0); } void setup() { Serial.begin(9600); Serial.println(F("Starting")); helium.begin(HELIUM_BAUD_RATE); channel_create(CHANNEL_NAME); channel_counter = 0; } #define DRY_VALUE 536 // Taken in air #define WET_VALUE 303 // Taken in water #define HUM_RANGE (DRY_VALUE - WET_VALUE) void loop() { Serial.print(F("Reading - ")); float reading = analogRead(A0); float percent = 100 * (1 - (reading - WET_VALUE) / HUM_RANGE); Serial.print(reading); Serial.print(" - "); Serial.println(percent); if (--channel_counter <= 0) { StaticJsonBuffer<JSON_OBJECT_SIZE(2) + 100> jsonBuffer; JsonObject & root = jsonBuffer.createObject(); root[F("value")] = reading; root[F("percent")] = percent; char buffer[HELIUM_MAX_DATA_SIZE]; size_t used = root.printTo(buffer, HELIUM_MAX_DATA_SIZE); channel_send(CHANNEL_NAME, buffer, used); channel_counter = CHANNEL_SEND_CYCLE; } delay(CHANNEL_DELAY); } 

Dengan pustaka Helium dan ArduinoJson terinstal, buat sketsa baru (File -> New dari dalam Arduino IDE), dan tempelkan kode di atas. Kemudian, dengan paket perangkat keras sonda kelembaban tanah lengkap Anda terhubung ke workstation Anda melalui kabel USB, klik tombol Upload.

LED pada Modul Prototyping Atom Anda seharusnya mulai berkedip setelah beberapa saat. Ini adalah Atom terhubung ke jaringan Helium (melalui Element yang kami lebar sebelumnya). Jika Arduino IDE tidak melempar kesalahan saat mengunggah kode, ini berhasil dan sonda kelembaban tanah kini menghasilkan pembacaan.

Catatan tentang Data Kelembaban Tanah

Seperti yang disebutkan di atas, Sketch ini akan menangkap data kelembaban tanah dan mengencode-nya sebagai JSON sebelum mengirim ke platform Helium. Menggunakan Sketch di atas, satu titik data akan terlihat seperti ini (sebagai JSON):

{ "value": 433, "percent": 55.5 } 

Vale mentioning bahwa DFRobot Gravity Capacitive Soil Moisture Sensor sebenarnya menangkap pembacaan ini sebagai pembacaan analog antara pembacaan kering dan basah yang dikalibrasi. Anda dapat mendapatkan detail lengkap tentang bagaimana ini diimplementasikan dan dikalibrasi di sini. Anda mungkin ingin menyesuaikan kalibrasi sedikit.

Memverifikasi Konektivitas Sensor dan Data di Helium Dashboard

Sekarang setelah sensor Anda diterapkan, kita dapat memverifikasi bahwa itu online dan mengirim data. Di Dashboard kita dapat melakukan ini dengan beberapa cara, baik melalui tampilan Atom UI untuk sensor yang baru saja Anda terapkan.

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time
Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time
Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Langkah Berikutnya dan Bantuan

Selamat! Itu adalah akhir dari panduan ini. Anda kini telah melindungi pakis Anda di masa depan dengan sonda kelembaban tanah nirkabel. Ini adalah hal yang besar. Pakis Anda berterima kasih kepada Anda.

Sistem Sensor Kelembaban Tanah Nirkabel dengan Helium & DFRobot – Perawatan Tanaman Real-Time

Jika Anda ingin mengetahui lebih lanjut tentang Helium dan bagaimana Anda dapat membuat prototipe sensor Anda sendiri menggunakan perangkat keras dan perangkat lunak ini, mulai di sini:

Kode

Soil_Humidity.ino

Sketch Arduino lengkap untuk mulai mengirim data kelembaban tanah dari sensor Anda ke Helium Channel.

/* * Copyright 2017, Helium Systems, Inc. * All Rights Reserved. See LICENCE.txt for license information * * Taking humidity readings using the SEN0192 capacitive humidity * sensor. Wiring instructions: * https://www.dfrobot.com/wiki/index.php/Capacitive_Soil_Moisture_Sensor_SKU:SEN0193 * * Install the following libraries through Sketch->Manage Libraries: * - ArduinoJson * - Helium */ #include "Board.h" #include <Arduino.h> #include <ArduinoJson.h> #include <Helium.h> #include <Wire.h> #define CHANNEL_NAME "Helium MQTT" // Delay for one second #define CHANNEL_DELAY 5000 // Send very 60 cycles (seconds) #define CHANNEL_SEND_CYCLE 12 Helium helium(&atom_serial); Channel channel(&helium); int channel_counter; void report_status(int status, int result = 0) { if (helium_status_OK == status) { if (result == 0) { Serial.println(F("Succeeded")); } else { Serial.print(F("Failed - ")); Serial.println(result); } } else { Serial.println(F("Failed")); } } void connect() { while (!helium.connected()) { Serial.print(F("Connecting - ")); int status = helium.connect(); report_status(status); if (helium_status_OK != status) { delay(1000); } } } void channel_create(const char * channel_name) { int8_t result; int status; do { // Ensure we're connected connect(); Serial.print(F("Creating Channel - ")); status = channel.begin(channel_name, &result); // Print status and result report_status(status, result); if (helium_status_OK != status) { delay(1000); } } while (helium_status_OK != status || result != 0); } void channel_send(const char * channel_name, void const * data, size_t len) { int status; int8_t result; do { // Try to send Serial.print(F("Sending - ")); status = channel.send(data, len, &result); report_status(status, result); // Create the channel if any service errors are returned if (status == helium_status_OK && result != 0) { channel_create(channel_name); } else if (status != helium_status_OK) { delay(1000); } } while (helium_status_OK != status || result != 0); } void setup() { Serial.begin(9600); Serial.println(F("Starting")); helium.begin(HELIUM_BAUD_RATE); channel_create(CHANNEL_NAME); channel_counter = 0; } #define DRY_VALUE 536 // Taken in air #define WET_VALUE 303 // Taken in water #define HUM_RANGE (DRY_VALUE - WET_VALUE) void loop() { Serial.print(F("Reading - ")); float reading = analogRead(A0); float percent = 100 * (1 - (reading - WET_VALUE) / HUM_RANGE); Serial.print(reading); Serial.print(" - "); Serial.println(percent); if (--channel_counter <= 0) { StaticJsonBuffer<JSON_OBJECT_SIZE(2) + 100> jsonBuffer; JsonObject & root = jsonBuffer.createObject(); root[F("value")] = reading; root[F("percent")] = percent; char buffer[HELIUM_MAX_DATA_SIZE]; size_t used = root.printTo(buffer, HELIUM_MAX_DATA_SIZE); channel_send(CHANNEL_NAME, buffer, used); channel_counter = CHANNEL_SEND_CYCLE; } delay(CHANNEL_DELAY); } 

Proses manufaktur

  1. Cara Kerja Sensor Kelembaban Tanah dan Aplikasi Praktisnya
  2. Sistem Kontrol Akses Terintegrasi QR, RFID, dan Verifikasi Suhu
  3. Bangun Sensor Kelembaban Tanah Berbasis Raspberry Pi Biaya Rendah untuk Irigasi Cerdas
  4. Membangun Sistem Aeroponik Otomatis dengan Raspberry Pi dan Sensor Kelembaban
  5. Membuat Robot dengan Raspberry Pi dan Python: Panduan Lengkap
  6. Keberhasilan Abadi: Pelajaran tentang Ketekunan dari Abraham Lincoln dan Kepemimpinan Pemeliharaan
  7. Integrasi Sensor Termokopel dengan Arduino Portenta H7 Menggunakan IC MAX6675
  8. Arduino & MPU6050: Kontrol Servo Motor Presisi dengan SG90 & MG996R
  9. Modul GPS u-blox LEA-6H 02: Panduan Integrasi Arduino & Python
  10. Kamera Digital yang Ditingkatkan AI Merevolusi Pemantauan Kelembaban Tanah