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

Sistem Taman Pintar hydroMazing

Komponen dan persediaan

Raspberry Pi 3 Model B
OPSIONAL - Internet of Things - pesan teks
× 1
Arduino Nano R3
× 2
Arduino Nano Expansion Shield
× 2
DHT21/22 Sensor Suhu / Kelembaban
mungkin memerlukan resistor 10k antara Vcc/Data
× 1
Modul Sel Foto
× 1
nRF24L01 2.4Ghz Wireless Radio Transceiver module
dengan atau tanpa Antena SMA
× 1
Sensor Suhu Dallas (untuk suhu larutan nutrisi)
mungkin membutuhkan konektor
× 1
Modul Pemancar &Penerima RF 433MHz
× 1
mengatur 3-5 paket Outlet Terkendali Nirkabel termasuk remote
× 1
DFRobot LCD dengan tombol Perisai untuk Arduino Uno
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE
Microsoft Visual Studio 2015

Tentang proyek ini



Bukan niat saya untuk membuat produk. Saya hanya ingin memecahkan masalah umum. Saya ingin menanam tanaman di dalam ruangan atau di bawah kondisi yang terkendali. Bagaimana saya bisa menciptakan lingkungan yang optimal bagi tanaman untuk berkembang menggunakan elektronik dan barang-barang rumah tangga yang tersedia secara umum? Mana yang terbaik, tanah atau hidroponik?

hydroMazing adalah alat untuk memudahkan dalam menyediakan kondisi pertumbuhan yang optimal untuk keberhasilan menanam tanaman di rumah. Sistem pengumpulan data independen dan antarmuka web yang terletak di perangkat Anda sendiri, bukan cloud jarak jauh.

Mempelajari cara menanam tanaman bisa jadi rumit dan mahal. Tanaman tangguh, tetapi hanya satu kesalahan yang tidak disengaja dapat merusak tanaman Anda. Anda dapat menghindari kesalahan mahal ini dengan membiarkan sistem berkebun yang cerdas melakukan kerja keras untuk Anda!

Itu dua tahun yang lalu ketika saya memutuskan untuk mencoba menggunakan mikrokontroler Arduino Uno untuk menggantikan Lux WIN100 Heating &Cooling Programmable Outlet Thermostat. Outlet ini mengontrol alat, seperti pemanas kecil atau, dalam hal ini, kipas ventilasi. Perangkat yang dicolokkan ke stopkontak menghidupkan dan mematikan alat dengan menggunakan pengaturan suhu yang Anda programkan secara manual ke setiap perangkat. Teknik untuk mengontrol kipas ventilasi ini efektif, namun menggunakan beberapa kabel ekstensi. Pengontrol outlet suhu menggunakan relai kuno untuk mengubah status perangkat. Upaya awal saya adalah meretas kotak ekstensi yang memasukkan relai saya sendiri ke dalamnya dan menghubungkannya ke Arduino Uno. Tidak lama kemudian ada kabel yang berantakan dengan banyak mur konektor dan saya merasa putus asa.

Otomatisasi Rumah

Ide otomatisasi rumah yang sempat terngiang-ngiang di kepala saya untuk sementara waktu adalah menggunakan outlet AC yang dikendalikan secara nirkabel yang menggunakan remote control genggam. Meretas remote control untuk mengirim sinyal tombol ON atau OFF yang dipilih oleh pin yang sesuai pada Arduino Uno seharusnya tidak terlalu sulit, bukan? Kekhawatiran mengganggu yang mencegah saya dari menguji ide ini adalah ketakutan bahwa sinyal tidak akan dapat diandalkan dan Uno mungkin "berpikir" telah menyalakan perangkat ketika itu benar-benar gagal. Akhirnya, saya dapat meyakinkan diri sendiri bahwa cara terbaik untuk mengetahuinya adalah dengan mencoba dan melihat apa yang terjadi. Sayangnya, hasil tes ini tidak jauh lebih baik daripada upaya estafet.

Pencarian di web untuk hampir semua sensor atau doo-dad elektronik dengan "Arduino" akan menghasilkan sejumlah produk yang dijual dengan harga beberapa dolar. Dalam hal ini, saya menemukan pasangan pemancar dan penerima 315Mhz dan 433Mhz yang berada dalam rentang frekuensi dari sebagian besar outlet komersial yang dikendalikan secara nirkabel. Keuntungan terbesar menggunakan keluarga mikrokontroler Arduino untuk jenis proyek ini, adalah Anda dapat menemukan perangkat lunak sumber terbuka untuk memulai. Pencarian lain di web untuk "perpustakaan Arduino" dan dalam hal ini, pemancar dan penerima atau pasangan tx/rx. Sekarang, itu semakin menarik bagi saya. Saya bisa membaca kode yang keluar dari remote control, merekamnya, dan kemudian memprogram Arduino untuk mengontrol outlet yang sesuai. Merancang perangkat lunak untuk beroperasi pada Arduino Uno menjadi tantangannya. Contoh yang disertakan dengan perangkat lunak Arduino dan contoh yang disertakan dengan perpustakaan adalah awal yang sangat baik untuk sebuah proyek. Dalam pengalaman saya, begitu Anda mulai menggabungkan dan membuat modifikasi pada contoh, tidak butuh waktu lama sebelum Anda menabrak tembok. Saya tidak berpikir saya seorang programmer yang baik, saya pikir saya seorang perfeksionis yang keras kepala.

Dalam salah satu buku favorit saya, Zen and the Art of Motorcycle Maintenance penulis, Robert Pirsig, berbicara tentang jebakan keberanian. Pada dasarnya, gumption trap adalah suatu kejadian atau pola pikir yang dapat menyebabkan seseorang kehilangan semangat dan menjadi putus asa untuk memulai atau melanjutkan suatu proyek. Mengetahui kapan harus melewati ketidaknyamanan dan frustrasi dan kapan harus istirahat dan menjauh dari proyek adalah tantangan pribadi. Ada kalanya jika saya istirahat, saya mungkin tidak akan menemukan solusi yang bagus untuk konflik dalam kode sumber saya. Sebaliknya, ada saat-saat ketika saya pergi selama sebulan dan mengerjakan jenis proyek yang sama sekali berbeda dengan perasaan segar kembali. Mungkin, jika proyek itu cukup penting, kami akan terpaksa kembali menggarapnya. Perangkapnya meyakinkan diri kita sendiri bahwa proyek itu tidak layak untuk kembali bahkan ketika itu bisa menjadi luar biasa. Mungkin tidak ada gunanya kembali untuk diselesaikan dan di sinilah banyak proyek berakhir.

Pemrograman

Perangkat lunak yang telah saya kembangkan telah diprogram ke dalam mikrokontroler dan menampilkan serangkaian parameter dasar untuk pengaturan waktu, pengelolaan, transmisi, dan penerimaan objek "sensor" dan objek "peralatan". Kontrol peralatan dicapai melalui serangkaian algoritme yang saya beri nama "TheDecider," yang membuat keputusan berdasarkan pembacaan sensor dan ambang batas yang telah diprogram sebelumnya dan meminta mikrokontroler untuk menghidupkan atau mematikan outlet yang dikontrol secara nirkabel. Saya ingin sistem mudah dimodifikasi untuk bekerja dengan lingkungan lain termasuk aquaponik, menumbuhkan jamur, dan apa pun yang kontrolnya dicapai dengan membaca sensor dan mengoperasikan peralatan berdasarkan aturan yang diprogram. Outlet yang dikontrol secara nirkabel terbukti menjadi metode yang andal untuk mengendalikan kipas menggunakan Arduino untuk mengirim sinyal tergantung pada pembacaan sensor suhu. Tidak butuh waktu lama bagi kode sumber untuk berevolusi menjadi binatang buas. Keluarga mikrokontroler Arduino terbatas dalam jumlah instruksi yang dapat dijalankan dan mencapai batas ukuran program tidak membutuhkan waktu lama ketika Anda ingin mengontrol lebih dari beberapa LED yang berkedip. Saya telah menemukan bahwa batasan ukuran telah memaksa saya untuk menulis kode yang lebih baik dan lebih efisien daripada yang saya lakukan pada awalnya. Bahkan dengan penanganan variabel kreatif dan pustaka khusus, pada akhirnya, mikrokontroler lain tetap dibutuhkan atau dipindahkan ke mikrokontroler yang lebih besar.

Pemantauan Nirkabel tanpa Internet

Ada beberapa cara agar mikrokontroler dapat berkomunikasi satu sama lain. Metode nirkabel paling murah yang dapat saya temukan adalah transceiver radio nirkabel nRF24L01. Modul ini adalah jenis bluetooth berdaya rendah dan ringan yang memberikan hydroMazing kemampuan untuk berkomunikasi dengan unit pemantauan.

Saya memutuskan untuk menambahkan Arduino Uno lain dengan pelindung Liquid Crystal Display sehingga saya dapat menampilkan apa yang dibaca oleh sensor, status peralatan, dan peringatan dengan notifikasi.

Saya membuat platform saya sendiri yang terbuka dan mudah beradaptasi yang dapat disesuaikan dengan kebutuhan dan kondisi berkebun yang beragam; namun, juga merupakan sistem nirkabel mandiri. Arsitektur sistem yang terbuka memungkinkan kemudahan untuk mengintegrasikan konektivitas Internet dan layanan web.

Pemantauan Internet

Masukkan Raspberry Pi yang terhubung dengan modul nRF24L01.

Saya dapat memodifikasi banyak kode Sumber Arduino saya untuk mendengarkan transmisi yang masuk dan kemudian menulis data itu ke beberapa file. Pertama, file log yang menangkap semua komunikasi antara Pi dan Monitor hydroMazing. Selanjutnya, saya meminta program untuk menulis status semua objek sensor saat ini dan file untuk semua objek alat. Ketika peringatan terjadi, program akan membuat file yang berisi peringatan itu. Saya kemudian menambahkan skrip PHP untuk dibaca di objek data dari file masing-masing dan ditampilkan langsung di server Apache Pi.

Selanjutnya, saya menulis skrip Python untuk membaca direktori untuk file peringatan dan jika ada, membaca file, menguraikan informasi terkait dan kemudian mengirim email atau melalui teks SMS kepada pengguna. Selain mengirim email atau peringatan teks, skrip python memindahkan file peringatan ke posisi agar skrip PHP dapat dibaca dan ditampilkan. Menggunakan file log yang dibuat, saya dapat mengimpor data ke dalam database. Setelah data hydroMazing dicatat ke dalam database yang berada di Raspberry Pi, kita dapat mulai melakukan analitik dan menghasilkan beberapa laporan. Pemantauan dan pengendalian sistem sebagian besar dilakukan untuk kami, tetapi ketika hydroMazing perlu memberi tahu kami tentang suatu masalah, sekarang dapat dilakukan dengan menggunakan Raspberry Pi.

Wizard Taman hydroMazing yang memandu Anda melalui seluruh pertumbuhan Anda! Sistem memberikan umpan balik dan tip tentang cara mengelola masalah yang diidentifikasi oleh hydroMazing. http://www.hydroMazing.com

Pemantauan Larutan Nutrisi

Tingkat larutan nutrisi sistem wadah hidroponik harus dipantau.

Saat tingkat larutan nutrisi menurun, perlu diisi ulang dengan air tawar, jika tidak, larutan nutrisi menjadi lebih pekat dan beberapa tanaman tidak akan merespon dengan baik. HydroMazing Nutrient Controller dapat mengaktifkan pompa yang menambahkan air segar untuk mengembalikan konsentrasi ke level awal, sering disebut sebagai “topping-off.” HydroMazing Nutrient Controller juga akan memantau pH dan EC Anda, mengaktifkan pompa untuk mengelola solusi, dan memberi tahu Anda saat Anda perlu melakukan perubahan.

Ingin Lebih?

  • Krisis Eksistensial - Simulator Game Role-Playing Arduino
  • Kenapa harus DIY kalau bisa beli?
  • Apa itu Taman “Cerdas”?
  • Memulai Taman Dalam Ruangan yang Cerdas
  • Menggali Lebih Dalam Berkebun Dalam Ruangan
  • Berkebun Dalam Ruangan:Apa yang bisa salah?
  • Mengelola Sistem Solusi Nutrisi
  • Mengapa Arduino ketika Anda bisa Pi?

Kode

  • Pengaturan objek
Pengaturan objekC/C++
File CoreSettings.h berisi banyak pengaturan penting termasuk jaringan nRF, kode sakelar jarak jauh stopkontak AC, definisi objek Timer, Appliance, dan Sensor yang digunakan oleh sistem hydroMazing.
/** @file CoreSettings.h* Hak Cipta ( C) 2015 Cory J. Potter - Hak Cipta Dilindungi Undang-Undang* Anda dapat menggunakan, mendistribusikan, dan memodifikasi kode ini di bawah* ketentuan LICENSE.txt* TIDAK DIMAKSUDKAN UNTUK PENGGUNAAN KOMERSIAL!* Anda seharusnya telah menerima salinan LICENSE.txt dengan * file ini. Jika tidak, silakan menulis ke:*/#ifndef __CORESETTINGS_H__#define __CORESETTINGS_H__#ifdef ARDUINO// RX_PIN 3 sedang digunakan oleh Dallas Temperature Probe#define RX_PIN 103#define What TONE_PIN 104 adalah alamat kita 1 atau 2uint8_t node_address =1;uint8_t totalNodes =3;unsigned long lastRxTimeStamp =0;const uint64_t nRFbaseAddress =1034834473100;uint8_t nRFaddress =0; // 00 - 255// CATATAN:"LL" di akhir konstanta adalah "LongLong" type// 1034834473185, 1034834473170// const uint64_t tx_pipes[5] ={ 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL, 0xF0F0F0xF0D2LL, 0xF0F0F0 // const uint64_t rx_pipes [5] ={0xF0F0F0F22ALL, 0xF0F0F0F299LL, 0xF0F0F0F308LL, 0xF0F0F0F377LL, 0xF0F0F0F3E6LL}; tx_pipes // uint64_t [3] ={0xF0F0F0F0E8LL, 0xF0F0F0F0E7LL, 0xF0F0F0F0E6LL}; rx_pipes // uint64_t [3] ={0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL };uint64_t tx_pipes[3] ={ 0xF0F0F0F0F8LL, 0xF0F0F0F0F7LL, 0xF0F0F0F0F6LL };uint64_t rx_pipes[3] ={ 0xF0***1F0F0***} ************************************************** ****/// Sakelar Outlet yang Dikendalikan Secara Nirkabel/************************************ **********************************/// ETEKCITY #1401// unsigned long mySwitchOn[] ={ 24 , 1398067,1398211,1398531 };// unsigned long mySwitchOff[] ={ 24, 1398076,1398220,1398540 };// ETEKCITY #1405// unsigned l ong mySwitchOn[] ={ 24,1135923,1136067,1136387 };// unsigned long mySwitchOff[] ={ 24,1135932,1136076,1136396 };// ETEKCITY #1406// unsigned long mySwitchOn[] ={ 24.4281651 ,4281795,4282115 };// unsigned long mySwitchOff[] ={ 24,4281660,4281804,4282124 };// ETEKCITY #1407// unsigned long mySwitchOn[] ={ 24,87347,87491,87811 };// unsigned long mySwitchOff[] ={ 24,87356,8750,87820 };// ETEKCITY #1411// unsigned long mySwitchOn[] ={ 24,283955,284099,284419 };// unsigned long mySwitchOff[] ={ 24,283964 ,284108,284428 };// ETEKCITY #1415// unsigned long mySwitchOn[] ={ 24.21811.21955.22275.23811.29955 };// unsigned long mySwitchOff[] ={ 24.21820.21964.22284, 23820,29964 };// ETEKCITY #1419// unsigned long mySwitchOn[] ={24,333107,333251,333571,335107,341251};// unsigned long mySwitchOff[] ={24,333116,333260,333580,335116 ,341260};// ETEKCITY #0319uint8_t totalSwitch =5;unsigned long mySwitchOn[] ={24,333107,333251,333571,335107,341251};unsigned long mySwitchOff[] ={24,333116,3 33260,333580,335116,341260};/**************************************** ********************************//* Komunikasi I2C *//********** ************************************************** ************/const int SAYA_ADDRESS =42;const int SEND_TO_ADDRESS =22;/************************ ************************************************// * Timer *//********************************************* ***************************///Objek Timer ={ (tipe), (interval dalam milis), siap, dipicu, stempel waktu, (penunjuk ke objek berikutnya)Timer Timer_txData ={ TIMER_TX_DATA, 30000UL, true, false, 0, NULL };// Timer Timer_Lcd ={ TIMER_LCD, 12000UL, true, false, 0, &Timer_Log };// Timer Timer_Lcd_Cycle ={ TIMER_CYCLE_ 6000UL, benar, salah, 0, &Timer_Lcd };// Timer Timer_Lcd_Scroller ={ TIMER_LCD_SCROLLER, 500UL, benar, salah, 0, &Timer_Lcd_Cycle };//Timer Timer_Ping ={ TIMER_SENSOR_READINGS, 10UL, &Timer, 10UL, &Timer /Timer Timer_Lite ={ TIMER_LITE, 180000UL, benar, salah, 0, &Timer_Ping };Pewaktu Timer_Save_Settings ={ TIMER_SAVE_SETTINGS, 3600000UL, true, false, 0, &Timer_txData };//Timer Timer_Sensor_Read ={ TIMER_SENSOR_READINGS, 7000UL, true, false, 0, &Timer_Save_Settings };//Timer Timer ={ TIMER_Alerts, ={ TIMER_Alerts , &Timer_Sensor_Read };Timer Timer_rxData ={ TIMER_RX_DATA, 6000UL, benar, salah, 0, &Timer_Save_Settings };/**************************** ********************************************/// Inisialisasi Peralatan/ ************************************************** **********************/Appliance Appliance_Light_1 ={101, 1, APPLIANCE_LIGHT, DEFAULT_TIME, true, false, OFF, NULL };// Appliance Appliance_Light_2 ={ 102, 0, APPLIANCE_LIGHT, DEFAULT_TIME, true, false, OFF, &Appliance_Light_1 };// Appliance Appliance_Light_3 ={103, 0, APPLIANCE_LIGHT, DEFAULT_TIME, true, false, OFF, &Appliance_Light_2 };APPLIANCE_FLIance_Intake_F104, APPliance_F104, 1APPliance_In DEFAULT_TIME, benar, salah, NONAKTIF, &Appliance_Light_1 };Appliance Appliance_ExhaustFan ={1 03, 1, APPLIANCE_EXHAUST_FAN, DEFAULT_TIME, true, false, OFF, &Appliance_IntakeFan };Alat Alat_Humidifier ={102, 0, APPLIANCE_HUMIDIFIER, DEFAULT_TIME, benar, salah, OFF, &Apliance_ExhaustFandal_APPLIANCE_HUMIDIFIER }; true, false, OFF, &Appliance_Humidifier };//Appliance Appliance_AirPump ={PIN4, 2, APPLIANCE_PUMP, DEFAULT_TIME, true, false, OFF, &Appliance_Heater };Appliance Appliance_FeedPump ={105, 1, APPLIANCE_PUMP, true, DEFAULT_TIME &Appliance_Heater };uint8_t totalAlat =6;/*************************************** *******************************/// Inisialisasi Sensor/************* ************************************************** *********///Sensor:={ pin; simpul_alamat; SENSOR_TYPE; frekuensi; nilai min; nilai maks; stempel waktu UL; nilai mengambang; struct Sensor *berikutnya; }// NULL untuk yang pertama - Kami tidak dapat menunjuk ke objek yang belum dibuat.Sensor Sensor_Photocell ={ PIN_A0, 1, SENSOR_PHOTO, 100, 50, 100, 0, 25, NULL };Sensor Sensor_Temp ={ PIN7, 1, SENSOR_TEMPF, 50, 70, 80, 0, 75, &Sensor_Photocell };Sensor Sensor_Humidity ={PIN7, 1, SENSOR_HUMIDITY, 50, 40, 70, 0, 50, &Sensor_Temp };Sensor Sensor_WaterTemp ={PIN3_INTWATER1, 1_ SENSOR_, 100, 50, 70, 0, 65, &Sensor_Humidity };Sensor Sensor_Flow ={PIN2_INT0, 2, SENSOR_FLOW, 100, 50, 50, 0, 75, &Sensor_WaterTemp };//Sensor Sensor_Microphone ={PIN_A1, 0, SENSOR_SOUND, 60, 10, 100, 0, 75, &Sensor_Flow };//Sensor Sensor_Ultrasonic ={PIN_A2, 0, SENSOR_ULTRASONIC, 60, 10, 100, 0, 75, &Sensor_Microphone };//Sensor Sensor_PIR ={PIN_A2, 0, SENSOR_PHOTO, 60, 10, 100, 0, 75, &Sensor_Microphone };//Sensor Sensor_Moisture ={PIN_A2, 0, SENSOR_MOISTURE, 60, 10, 100, 0, 75, &Sensor_Flow };Sensor Sensor_Float ={PIN_A2, 1, SENSOR_FLOAT, 100, 0, 1, 0, 1, &Sensor_Flow };Sensor Sensor_Voltage ={PIN1_ TX, 1, SENSOR_VOLTAGE, 100, 0, 100, 0, 50, &Sensor_Float };uint8_t totalSensor =7;/************************* ***********************************************/  

Skema

Kipas masuk dan buang, lampu tumbuh, pemanas, penurun kelembapan, dan pompa yang dikontrol secara otomatis melalui outlet AC nirkabel outlet AC yang dikontrol secara nirkabel yang umum digunakan dalam proyek ini. Dirakit dan diuji Antarmuka Web prototipe hydroMazing Antarmuka web prototipe hydroMazing untuk pemberitahuan peringatan.

Proses manufaktur

  1. Pemantauan Suhu di Raspberry Pi
  2. Perangkat berbasis suhu Sistem kontrol menggunakan LM35
  3. Sensor Analog Pada Raspberry Pi Menggunakan MCP3008
  4. Kesenjangan keterampilan rumah pintar
  5. Semuanya bisa menjadi pintar:Ciri-ciri utama kota pintar terbaru – Bagian 1
  6. Membuat Industri Minuman Lebih Cerdas dengan Sistem Pemantauan Level yang didukung IoT
  7. Memahami cara kerja sistem pengereman anti-lock (ABS)
  8. Memahami cara kerja sistem pengapian elektronik
  9. Memahami cara kerja sistem pengapian magneto
  10. Apa Sistem Manufaktur Amerika?