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

Wireless Soil Moisture Probe dengan Helium dan DFRobot

Komponen dan persediaan

Modul Helium Atom Xbee
× 1
Titik Akses Elemen Helium
× 1
DFRobot Gravity:Sensor Kelembaban Tanah Kapasitif Analog
× 1
Helium Arduino/adaptor tempat tidur
× 1
Arduino UNO
× 1

Aplikasi dan layanan online

Arduino IDE
Dasbor Helium

Tentang proyek ini

Beri Suara Tanaman Anda dengan Sensor Kelembaban Tanah Nirkabel

Mari kita hadapi itu. Tanaman mati sepanjang waktu karena kekurangan air. Anda sibuk dan pakis itu tidak akan mengangkat tangan saat merasa kering. Jadi, bagi penggemar tanaman yang sedang bepergian, prototipe alat pemeriksaan kelembaban tanah ini adalah tiket Anda menuju pakis dan ficus yang bahagia dan sehat.

Yang Akan Kami Bahas

Ujung ke ujung seluruh panduan ini akan membawa Anda sekitar 60 menit. Inilah yang akan kita bahas:

  • Membuat pemeriksaan kelembaban tanah lengkap Anda menggunakan DF Robot Gravity Capacitive Soil Moisture Sensor, Modul Prototipe Atom Helium, Adaptor Arduino Helium, dan papan Arduino (kami menggunakan UNO);
  • Mendaftarkan Elemen Helium dan Modul Prototipe Atom Helium Anda di Dasbor Helium; dan membangun jaringan nirkabel area luas berdaya rendah Anda sendiri;
  • Memrogram pemeriksaan kelembaban tanah Anda melalui Arduino IDE. Sepanjang jalan kami juga akan memasang Helium dan ArduinoJson Pustaka Arduino;
  • Mengukur dan Mengirim Data Kelembaban Tanah hampir secara real-time dari pabrik Anda ke Dasbor Helium; dan menyalurkannya ke Saluran HTTP Helium.

Baiklah. Mari kita lakukan. Kami memiliki pakis untuk disimpan.

Membuat Probe Kelembaban Tanah Anda

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

Untuk membangun ini:

  • Pertama, sematkan Modul Prototipe Atom Helium Anda ke dalam Adaptor Arduino Helium, lalu sambungkan unit gabungan ini ke papan Arduino pilihan Anda. Pastikan untuk mengonfigurasi RX dan TX melompat sesuai keinginan tergantung pada papan yang Anda gunakan. Detail lengkap tentang cara menyematkan semua papan ini bersama-sama, bersama dengan konfigurasi jumper yang benar, dapat ditemukan di sini. Lihatlah, selesaikan itu, dan kembalilah.
  • Selanjutnya kita perlu menghubungkan probe kelembaban tanah yang sebenarnya ke Helium Arduino Adapter menggunakan kabel jumper tiga kawat yang disediakan dengan DF Robot Soil Moisture Probe. Tiga warna kawat hitam , merah , dan biru . Pada Adaptor Arduino Helium, tombol hitam kabel terhubung ke GND; yang merah kabel terhubung ke 5V; dan biru kabel terhubung ke ADO tajuk. Ada diagram bagus dari tim DFRobot tentang cara kerja koneksi ini di sini. Papan kami terlihat seperti ini ketika pengkabelan dilakukan dengan benar:

  • Terakhir sambungkan header putih pada kabel jumper ke DF Robot Soil Moisture Probe. Meskipun ini bisa sedikit rumit, itu harus langsung masuk dengan sedikit usaha.

Menyebarkan Elemen Helium Anda

Sekarang saatnya untuk membangun Jaringan Helium Anda sendiri. Ini membutuhkan waktu sekitar 30 detik. (Jika Anda ingin tahu lebih banyak tentang bagaimana aplikasi ujung ke ujung dibangun di Helium dan bagaimana kami menangani komponen jaringan nirkabel, mulailah dengan ikhtisar arsitektur ini.)

Untuk menyebarkan Elemen dan membuat jangkauan jaringan untuk sensor berbasis Atom Anda, cukup colokkan ke daya dan port Ethernet langsung menggunakan kabel yang disediakan. (Catatan:Jika Anda memiliki Elemen yang didukung Seluler, menggunakan konektivitas Ethernet adalah opsional tetapi disarankan sebagai cadangan. ) Setelah dicolokkan, Anda akan melihat beberapa aktivitas LED. Elemen Anda akan terhubung saat LED yang menghadap ke depan berubah menjadi hijau (mensinyalkan konektivitas Ethernet ) atau merah muda (untuk konektivitas Seluler ). Anda dapat menonton video singkat tentang Elemen dan cara menghubungkannya di sini.

Mendaftarkan Elemen Helium dan Atom Anda di Dasbor Helium

Sekarang setelah unit penginderaan kami dibuat dan jaringan Helium Anda diterapkan, saatnya untuk mendaftarkan perangkat keras Anda di Dasbor Helium. Dasbor adalah antarmuka pengguna yang dihosting Helium untuk memantau dan mengelola penerapan perangkat keras yang terhubung. Semua perangkat keras yang dikirimkan Helium sudah terdaftar di sistem kami, tetapi kami perlu tahu siapa yang menyebarkannya.

  • Pertama, buat akun Dasbor Helium jika Anda belum melakukannya.
  • Untuk mendaftarkan Atom Anda, mulailah dengan memilih Atom Baru . Di UI, tambahkan nama (mis. Fern Saver ) lalu masukkan empat terakhir MAC Address dan empat digit HVV Code . Tekan Simpan dan Anda sudah selesai.
  • Pendaftaran Elemen dilakukan dengan cara yang persis sama. Pilih Elemen Baru, kemudian berikan nama, empat terakhir dari MAC Address dan empat digit HVV Code . Pastikan juga untuk memasukkan lokasi untuk Elemen Anda sehingga Dasbor dapat menampilkannya di peta.

Anda dapat memverifikasi bahwa Elemen Anda online dengan melihatnya Status &Sinyal di Dasbor:

Menerapkan Saluran HTTP Helium

Fitur utama Platform Helium adalah Saluran. 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 tugas berat untuk Anda dalam hal berintegrasi dengan salah satu layanan web atau protokol ini. Untuk Fern Saver, Soil Moisture Probe kami, mari buat Saluran HTTP. Ini akan memungkinkan kami menyalurkan data ke layanan web apa pun yang menerima data melalui HTTP. Misalnya, Anda dapat menggunakan Saluran HTTP untuk mengirim data ini ke IFTTT dan, pada gilirannya, menerima teks setiap kali Fern Saver melaporkan kelembapan di bawah tingkat tertentu.

Dalam contoh ini, kami akan menyiapkan Saluran HTTP yang mengirimkan data ke requestb.in, layanan web gratis yang praktis untuk menguji layanan HTTP. Perhatikan bahwa di bawah ini, ketika kami mengunggah Sketsa ke Arduino, kami akan merujuk nama Saluran ini, HTTP , dalam kode agar kita tahu ke mana harus mengirim data.

Begini cara cepat dan mudah menyiapkan Channel ini:

Mengonfigurasi Arduino IDE Anda dan Mengunggah Sketsa

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

  • Pastikan Anda telah mengunduh Arduino IDE terbaru. Dapatkan di sini jika diperlukan.
  • Kemudian kita perlu menambahkan dua perpustakaan:Helium dan ArduinoJson . Anda dapat menambahkan pustaka dari dalam IDE dengan membuka Sketsa -> Sertakan Pustaka -> Kelola Perpustakaan. Cari "helium", pilih, dan tekan Instal . Ikuti proses penginstalan yang sama untuk pustaka "ArduinoJson". (Kami membutuhkan perpustakaan ini karena tanggal kelembapan tanah yang akan kami rekam berformat JSON.)

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

/* * Hak Cipta 2017, Helium Systems, Inc. * Semua Hak Dilindungi Undang-Undang. Lihat LICENCE.txt untuk informasi lisensi * * Mengambil pembacaan kelembaban menggunakan sensor kelembaban kapasitif * SEN0192. Instruksi pengkabelan:* https://www.dfrobot.com/wiki/index.php/Capacitive_Soil_Moisture_Sensor_SKU:SEN0193 * * Instal pustaka berikut melalui Sketch->Manage Libraries:* - ArduinoJson * - Helium */ #include "Board.h " #include  #include  #include  #include  // Nama Saluran ini harus sesuai dengan Saluran yang Anda gunakan di Helium// Dasbor untuk menyerap ini data. #define CHANNEL_NAME "HTTP" // Tunda selama satu detik #define CHANNEL_DELAY 5000 // Kirim sangat 60 siklus (detik) #define CHANNEL_SEND_CYCLE 12 Helium helium(&atom_serial); Saluran saluran (&helium); int channel_counter;void report_status(int status, int result =0) { if (helium_status_OK ==status) { if (hasil ==0) { Serial.println(F("Berhasil")); } else { Serial.print(F("Gagal - ")); Serial.println(hasil); } } else { Serial.println(F("Gagal")); } } void connect() { while (!helium.connected()) { Serial.print(F("Connecting - ")); int status =helium.koneksi(); laporan_status(status); if (helium_status_OK !=status) { delay(1000); } } } void channel_create(const char * channel_name){ hasil int8_t; status int; do { // Pastikan kita terhubung connect(); Serial.print(F("Membuat Saluran - ")); status =saluran.begin(nama_saluran, &hasil); // Cetak status dan hasil 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; hasil int8_t; do { // Coba kirim Serial.print(F("Mengirim - ")); status =channel.send(data, len, &hasil); report_status(status, hasil); // Buat saluran jika ada kesalahan layanan yang dikembalikan 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); } batalkan pengaturan() { Serial.begin(9600); Serial.println(F("Mulai")); helium.begin(HELIUM_BAUD_RATE); saluran_buat(CHANNEL_NAME); saluran_penghitung =0; } #define DRY_VALUE 536 // Diambil di udara #define WET_VALUE 303 // Diambil di dalam air #define HUM_RANGE (DRY_VALUE - WET_VALUE) void loop() { Serial.print(F("Membaca - ")); pembacaan mengambang =analogRead(A0); persen float =100 * (1 - (membaca - WET_VALUE) / HUM_RANGE); Serial.print(membaca); Serial.print(" - "); Serial.println(persen); if (--channel_counter <=0) { StaticJsonBuffer jsonBuffer; JsonObject &root =jsonBuffer.createObject(); root[F("nilai")] =membaca; root[F("persen")] =persen; penyangga karakter[HELIUM_MAX_DATA_SIZE]; size_t yang digunakan =root.printTo(buffer, HELIUM_MAX_DATA_SIZE); channel_send(CHANNEL_NAME, buffer, digunakan); channel_counter =CHANNEL_SEND_CYCLE; } penundaan(CHANNEL_DELAY); } 

Dengan Helium dan ArduinoJson library terpasang, buat sketsa baru (File -> New dari dalam Arduino IDE), dan rekatkan kode di atas. Kemudian, dengan paket perangkat keras probe kelembaban tanah lengkap yang terhubung ke stasiun kerja Anda melalui kabel USB, tekan tombol Upload tombol.

LED pada Modul Prototipe Atom Anda akan mulai berkedip setelah beberapa saat. Ini adalah Atom yang terhubung ke jaringan Helium (melalui Elemen yang kami gunakan sebelumnya). Jika Arduino IDE tidak menimbulkan kesalahan saat mengunggah kode, ini berhasil dan probe kelembaban tanah sekarang menghasilkan pembacaan.

Catatan Data Kelembaban Tanah

Seperti disebutkan di atas, Sketsa ini akan menangkap data kelembaban tanah dan menyandikannya sebagai JSON sebelum dikirim ke platform Helium. Menggunakan Sketsa di atas, satu titik data akan terlihat seperti ini (sebagai JSON ):

{ "nilai":433, "persen":55,5 } 

Perlu dicatat bahwa DFRobot Gravity Capacitive Soil Moisture Sensor sebenarnya menangkap pembacaan ini sebagai pembacaan analog antara pembacaan kering dan basah yang dikalibrasi. Anda bisa mendapatkan detail lengkap tentang bagaimana ini diterapkan dan dikalibrasi di sini. Anda mungkin ingin sedikit mengubah kalibrasi.

Memverifikasi Konektivitas Sensor dan Data di Dasbor Helium

Setelah sensor Anda diterapkan, kami dapat memverifikasi bahwa sensor itu online dan mengirimkan data. Dalam Dasbor kita dapat melakukan ini dalam beberapa cara, baik melalui Atom UI tampilan untuk sensor yang baru saja Anda terapkan.

  • Jika Atom Anda online, Dasbor akan menampilkan Status &Sinyal , beserta berbagai meta data lainnya tentang statusnya. Ini akan terlihat seperti ini:
  • Lebih jauh di antarmuka Atom yang sama, kami juga menampilkan Log Peristiwa menunjukkan setiap titik data dari sensor dan apakah berhasil ditransmisikan ke Saluran Helium atau tidak. Seperti yang kami sebutkan di atas, ini adalah konektor pra-bangun ke layanan web atau protokol mentah. Sebelumnya kami menerapkan Saluran HTTP untuk organisasi Helium Anda. Dan Sketsa di atas memberitahu probe Kelembaban Tanah untuk mengirim data ke saluran ini - disebut HTTP . Dalam contoh yang digambarkan di bawah ini, bagaimanapun, kami mengirimkan data kami ke Helium HTTP Channel:
  • Kami juga menyediakan Debug antarmuka untuk setiap Atom yang akan menampilkan bacaan Anda saat masuk (setelah Anda mengaktifkan opsi ini). Berikut beberapa Data Kelembaban Tanah di penampil Debug Dashboard:

Langkah dan Bantuan Selanjutnya

Selamat! Itulah akhir dari panduan ini. Anda sekarang telah membuktikan pakis Anda di masa depan dengan probe kelembaban tanah nirkabel. Ini masalah besar. Pakis Anda terima kasih.

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

  • Dokumentasi Pengembang Helium
  • Kemalasan Pengembang Helium
  • Forum Pengembang Helium

Kode

  • Soil_Humidity.ino
Soil_Humidity.inoC/C++
Sketsa Arduino lengkap untuk mulai mengirim data kelembaban tanah dari sensor Anda ke Saluran Helium.
/* * Hak Cipta 2017, Helium Systems, Inc. * Hak Cipta Dilindungi Undang-Undang. Lihat LICENCE.txt untuk informasi lisensi * * Mengambil pembacaan kelembaban menggunakan sensor kelembaban kapasitif * SEN0192. Instruksi pengkabelan:* https://www.dfrobot.com/wiki/index.php/Capacitive_Soil_Moisture_Sensor_SKU:SEN0193 * * Instal pustaka berikut melalui Sketch->Manage Libraries:* - ArduinoJson * - Helium */#include "Board.h "#include #include #include #include #define CHANNEL_NAME "Helium MQTT"// Tunda selama satu detik#define CHANNEL_DELAY 5000// Kirim sangat 60 siklus (detik)#define CHANNEL_SEND_CYCLE 12Helium helium(&atom_serial);Channel channel(&helium);int channel_counter;voidreport_status(int status, int hasil =0){ if (helium_status_OK ==status) { if (hasil ==0) { Serial.println(F("Berhasil")); } else { Serial.print(F("Gagal - ")); Serial.println(hasil); } } else { Serial.println(F("Gagal")); }}voidconnect(){ while (!helium.connected()) { Serial.print(F("Menghubungkan - ")); int status =helium.koneksi(); laporan_status(status); if (helium_status_OK !=status) { delay(1000); } }}voidchannel_create(const char * channel_name){ hasil int8_t; status int; do { // Pastikan kita terhubung connect(); Serial.print(F("Membuat Saluran - ")); status =saluran.begin(nama_saluran, &hasil); // Cetak status dan hasil report_status(status, result); if (helium_status_OK !=status) { delay(1000); } } while (helium_status_OK !=status || result !=0);}voidchannel_send(const char * channel_name, void const * data, size_t len){ int status; hasil int8_t; do { // Coba kirim Serial.print(F("Mengirim - ")); status =channel.send(data, len, &hasil); report_status(status, hasil); // Buat saluran jika ada kesalahan layanan yang dikembalikan if (status ==helium_status_OK &&result !=0) { channel_create(channel_name); } else if (status !=helium_status_OK) { delay(1000); } } while (helium_status_OK !=status || hasil !=0);}voidsetup(){ Serial.begin(9600); Serial.println(F("Mulai")); helium.begin(HELIUM_BAUD_RATE); saluran_buat(CHANNEL_NAME); channel_counter =0;}#define DRY_VALUE 536 // Diambil di udara#define WET_VALUE 303 // Diambil di dalam air#define HUM_RANGE (DRY_VALUE - WET_VALUE)voidloop(){ Serial.print(F("Membaca - ")); pembacaan mengambang =analogRead(A0); persen float =100 * (1 - (membaca - WET_VALUE) / HUM_RANGE); Serial.print(membaca); Serial.print(" - "); Serial.println(persen); if (--channel_counter <=0) { StaticJsonBuffer jsonBuffer; JsonObject &root =jsonBuffer.createObject(); root[F("nilai")] =membaca; root[F("persen")] =persen; penyangga karakter[HELIUM_MAX_DATA_SIZE]; size_t yang digunakan =root.printTo(buffer, HELIUM_MAX_DATA_SIZE); channel_send(CHANNEL_NAME, buffer, digunakan); channel_counter =CHANNEL_SEND_CYCLE; } penundaan(CHANNEL_DELAY);}

Proses manufaktur

  1. Kerja dan Aplikasi Sensor Kelembaban Tanah
  2. Kontrol akses dengan QR, RFID, dan verifikasi suhu
  3. Sensor Kelembaban Tanah Raspberry Pi
  4. Aeroponik dengan Raspberry Pi dan sensor kelembapan
  5. Membuat robot dengan Raspberry Pi dan Python
  6. Memimpin dengan Ketekunan dan Ketekunan
  7. Portenta dan Sensor Termokopel (dengan MAX6675)
  8. Mengontrol Motor Servo dengan Arduino dan MPU6050
  9. u-blox LEA-6H 02 Modul GPS dengan Arduino dan Python
  10. Kamera Digital Standar dan AI untuk Memantau Kelembaban Tanah