Mündəricat:

Kənd Təsərrüfatı Sensor Array: 6 Addım
Kənd Təsərrüfatı Sensor Array: 6 Addım

Video: Kənd Təsərrüfatı Sensor Array: 6 Addım

Video: Kənd Təsərrüfatı Sensor Array: 6 Addım
Video: Why are the Germans inventing large agricultural machines? You will be shocked! 2024, Iyul
Anonim
Kənd Təsərrüfatı Sensor Dizisi
Kənd Təsərrüfatı Sensor Dizisi

Jackson Breakell, Tyler McCubbins və Jakob Thaler tərəfindən EF 230 üçün bir layihə

Kənd təsərrüfatı ABŞ -da istehsalın vacib amilidir. Məhsullar, geyim, dərman və qida əlavələrinin istehsalı üçün xammaldan məhsulun hissələrinin, ən çox cücərən meyvələrin birbaşa istehlakına qədər müxtəlif məqsədlər üçün istifadə edilə bilər. ABŞ -da bitkilərin əksəriyyəti hava şəraitinin və temperaturun geniş miqyasda idarə oluna bilmədiyi açıq havada yetişdirilir. Kəskin mənfi hava şəraitinin bitkilərin böyüməsinə necə təsir edə biləcəyini nəzərə alaraq, Birləşmiş Ştatların iqtisadiyyatına təsir göstərərək, əkin sahəsinin vəziyyətini izləmək həyati əhəmiyyət kəsb edir.

Kənd Təsərrüfatı Sensor Array cihazımız, fermerlərə 4 sensordan istifadə edərək tarlalarının əvvəlcədən seçilmiş hissələrinin vəziyyətini izləməyə imkan verir: yağış suyu sensoru, torpaq nəmliyi sensoru, temperatur sensoru və fotoelektrik sensoru. Bu sensorların birləşməsi fermerə mövsümün məhsul istehsalını adekvat planlaşdırmağa, çox az və ya çox yağışa uyğunlaşmağa, bitkiləri öldürə biləcək fəlakətlərlə daha yaxşı mübarizə aparmağa, torpaq nümunələri götürməkdən və daha bahalı sensor avadanlıqlarından istifadə etməkdən vaxta və problemə qənaət etməyə imkan verir. Bu Təlimat kitabında sizi Kənd Təsərrüfatı Sensor Arrayımızın arxasındakı naqillər və kodlaşdırma ilə tanış edəcəyik, belə ki siz də özünüz edə bilərsiniz.

Addım 1: Lazımi materialları toplayın

Lazımi materialları toplayın
Lazımi materialları toplayın

Başlamaq üçün lazım olan materialların siyahısı aşağıda.

1. Arduino Board, tercihen Arduino Uno

2. Əsas çörək taxtası

3. 1x 220 ohm müqavimət

4. Müxtəlif rəngli müxtəlif tellər

5. Mikro USB -dən USB kabelinə

6. Lövhəyə quraşdırıla bilən dinamik

7. Fotoelektrik Sensor

8. Temperatur Sensoru

9. Yağış suyu sensoru

10. Torpağın Nəm Sensoru

11. Matlab 2017 və Arduino Dəstək Paketi quraşdırılmış kompüter (Dəstək paketini Əlavələr altında tapa bilərsiniz)

Addım 2: Kartı bağlayın və qoşun

Kartı bağlayın və qoşun
Kartı bağlayın və qoşun

Lövhəni yuxarıda göstərildiyi kimi bağlayın və ya sizə ən uyğun olan şəkildə başlayın. Lövhənin kabellərlə bağlanmasının sözün əsl mənasında məhdudiyyətsiz yolları var, buna görə dəqiq konfiqurasiya həqiqətən sizə bağlıdır. Lövhə bağlandıqdan sonra sensorlarınızı bağlamağa başlayın. Yağış suyu, torpaq nəmliyi və fotoelektrik sensorlar hamısı analoqdur, buna görə də Arduinonun analoq hissəsinə qoşulduğundan əmin olun. Digər tərəfdən, temperatur sensoru rəqəmsal bir çıxışdır, buna görə Arduino -da mövcud bir rəqəmsal girişə qoşulduğundan əmin olun. Arduino 3.3v və 5v üçün çıxışlara malik olmalıdır, buna görə də sensorların uyğun olduqları gərginliyə qoşulduğundan əmin olun.

Lövhənin düzgün bağlandığından əmin olduqdan sonra, Micro USB -ni kompüterdən USB kabelinə kompüterinizin Micro USB portuna qoşun və Arduino -nu yandırın. Matlabı açın və Əlavələr altında Arduino Dəstək Paketini qurduğunuzdan əmin olaraq "fopen (serial ('nada'))" "əmrini" olmadan "işlədin. Bir səhv açılmalı və səhv bildirilməlidir bir nömrə ilə əlçatan bir komport var. "a = arduino ('comx', 'uno')" əmrini işlədin, burada x sizin komputerinizin sayıdır, Arduino -nuzu bir obyektlə müqayisə etmək üçün. Arduino -dakı LED bağlı olduğunu göstərmək üçün sürətlə yanıb sönməlidir.

Addım 3: Fotoelektrik və Temperatur Sensorlarını Kodlayın

Fotoelektrik və Temperatur Sensorlarını Kodlayın
Fotoelektrik və Temperatur Sensorlarını Kodlayın

Kodlamağa başlamazdan əvvəl, sensorlarınızın Arduino -da harada bağlı olduğunu qeyd edin, çünki bu readVoltage əmri üçün vacib olacaq. Kodunuzu dəyişən günəş işığını "readVoltage (a, 'X#') 'əmrinə bərabər qoyaraq başlayın, burada X# bağlandığınız portdur və a sadəcə bu dəyişənlə əlaqələndirdiyiniz Arduino -ya zəng edir. İf ifadəsinə başlayın., və günəş işığı üçün ilk şərti təyin edin <3.. Günün vaxtını bir quruluş olaraq çıxarmaq üçün çıxışı "info. TOD = 'gecə'" olaraq təyin edin və sonra "info. TOD = 'olaraq çıxışı olan başqa bir ifadə əlavə edin. gün '". Bu başqa bir ifadə olduğu üçün, if ifadəsində təyin olunmayan bütün digər dəyərlər üçün işləyəcəyi üçün şərtə ehtiyacımız yoxdur. if ifadənizi bir sonla bitirdiyinizə və proqramlaşdırmaya keçdiyinizə əmin olun. temperatur sensoru.

Termo dəyişənini başqa bir readVoltage əmrinə bərabər qoyun, əmri "readVoltage (a, 'X#')" dir. Bizim vəziyyətimizdə temperatur gərginlik vahidlərindən Selsiyə çevrilməli idi, buna görə də "tempC = (termo-.5).*100" tənliyi gərginlikdən Selsiyə çevrilmək üçün idi. Rahatlıq üçün Selsi temperaturunu Fahrenheitə çevirdik, amma bu sırf isteğe bağlıdır.

Yapışdırmaq üçün kod

günəş işığı = readVoltage (a, 'A1') əgər günəş işığı <3 olarsa

info. TOD = 'gecə'

başqa

info. TOD = 'gün'

bitmək

thermo = readVoltage (a, 'A3');

tempC = (termo-.5).*100;

info.tempF = (9/5.*tempC) +32

Addım 4: Yağış Suyu və Torpaq Nəm Sensorlarını Kodlayın

Yağış Suyu və Torpaq Nəm Sensorlarını Kodlayın
Yağış Suyu və Torpaq Nəm Sensorlarını Kodlayın

Son addımda deyildiyi kimi, sensorlarınızın Arduino lövhəsinə hansı portlara qoşulduğunu bildiyinizə əmin olun, çünki bu addımı daha az sinir bozucu edəcək. Yağış suyu sensoru ilə başlayın və if ifadəsinə başlayın. "ReadVoltage (a, 'X#')> 4" üçün ilk şərti təyin edin və çıxışını "info. Rain = 'yağıntı yoxdur" olaraq təyin edin. Elseif əlavə edin və şərtini əvvəl readVoltage əmrinə qoyun, ancaq> 2 olaraq təyin edin. İcra edilməli olan başqa bir şərti ifadə etmək üçün "&&" əlavə edin və əvvəlki kimi readVoltage əmrinə qoyun və <= 4 olaraq təyin edin. Çıxış "info. Rain = 'sisləmə'" olacaq. Nəhayət, başqa bir şey əlavə edin və çıxışını "info. Rain = 'leysan'" olaraq təyin edin. İşlədiyiniz otağın mühit rütubətinə əsaslanaraq şərtlər üçün dəyərləri tənzimləməli ola bilərsiniz.

Sonra, torpaq nəm sensoru üçün kodu başlayın və if ifadəsi ilə başlayın. İf ifadəsinin şərtini "readVoltage (a, 'X#')> 4 olaraq təyin edin və" info.soil = 'dry' "çıxışını əlavə edin. Elseif ifadəsi əlavə edin və yuxarıdakı readVoltage əmrini istifadə edərək onu> üçün təyin edin. 2. "&&" əlavə edin və <= 4. üçün başqa bir readVoltage əmri təyin edin. Çıxışını "info.soil = 'optimal doyma'" olaraq təyin edin. Else ifadəsi əlavə edin və çıxışını "info.soil = 'sel' olaraq təyin edin. "və son əlavə etməyi unutmayın.

Yapışdırmaq üçün kod

readVoltage (a, 'A0')> 4 info. Rain = 'yağıntı yoxdur'

elseif readVoltage (a, 'A0')> 2 && readVoltage (a, 'A0') <= 4

info. Rain = 'sis'

başqa

info. Rain = 'leysan'

bitmək

readVoltage (a, 'A2')> 4 olarsa

info.soil = 'quru'

elseif readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

info.soil = 'optimal doyma'

başqa

info.soil = 'daşqın'

bitmək

Addım 5: Dinamik və Mesaj Kutusu Çıxış Kodlaşdırması

Dinamik və Mesaj Kutusu Çıxış Kodlaması
Dinamik və Mesaj Kutusu Çıxış Kodlaması

Bu cihazın çıxışları çox fərqli ola bilər, ancaq bu vəziyyətdə sizi birbaşa cihaza quraşdırılmış dinamikdən və uzaq bir kompüterdə baxıla bilən bir mesaj qutusu çıxışından keçəcəyik. Dinamikimiz, bitkinin optimal temperaturu, günəş işığı, torpağın rütubəti və çöküntüsü üçün fərqli tezliklər çıxarmaq üçün nəzərdə tutulmuşdur. Dinamik çıxış kodunuzu if ifadəsi ilə başlayın və şərtini "readVoltage (a, 'X#')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Yuxarıda göstərildiyi kimi eyni playTone əmrini əlavə edin, lakin daha yüksək, daha müsbət bir ton çıxarmaq üçün 200 -dən 1000 -ə dəyişin. Sonra başqa birini əlavə edin və eyni playTone əmrini yenidən əlavə edin, ancaq 1000 -i 1500 -ə dəyişdirin. Bu dəyişən tonlar sahənin vəziyyətinin ciddiliyini göstərir. İf ifadənizi tamamlamaq üçün bir son əlavə etdiyinizə əmin olun.

Kodun son bölməsi mesaj qutusu istehsal edən bir çıxış olacaq. Mötərizədə işarələri istifadə edərək bir simli yaradın və "num2str (info.x)" əmrini istifadə edərək strukturunuzun hissələrini stringsə çevirin, burada x məlumat quruluşundakı bir alt quruluş adıdır. Mesaj qutunuza yeni sətirlər əlavə etmək üçün "string newline" istifadə edin və yuxarıdakı num2str əmrindən istifadə edərək sahənin həqiqi dəyərini sətirə əlavə edərək tırnak işarəsini istifadə edərək mesajınızı mətnə yazın. Nəhayət, müəyyən edilmiş sim ilə məlumatları monitorunuzda mesaj qutusu kimi göstərmək üçün "msgbox (string)" əmrindən istifadə edin.

Yapışdırmaq üçün kod

readVoltage (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)

başqa günəş işığı> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

playTone (a, 'D9', 1000, 3)

başqa

playTone (a, 'D9', 1500, 5)

bitmək

string = ['İstilik (dərəcə F)', num2str (info.tempF)]

string = [string newline 'Torpaqdır', num2str (info.soil)]

string = [string newline 'Xaricdə yağıntılar var', num2str (info. Rain)]

string = [string newline 'Günün vaxtıdır', num2str (info. TOD)]

msgbox (simli)

Addım 6: Nəticə

Nəticə
Nəticə

Dünya daha əvvəl məhsullardan əldə edilən məhsullara daha çox sintetik alternativlərə güvənməyə davam edərkən, kənd təsərrüfatı uzun müddət iqtisadiyyatın aktual və vacib amili olaraq qalacaq. Kənd təsərrüfatı sahələrini lazımi qədər izləmək bir fermerin məhsulundan ən çox faydalanması üçün çox vacibdir və bizim cihazla bütün əkin sahələrini uzaqdan izləmək mümkün deyil, həm də ucuz və asan quraşdırma və etibarlı şəkildə. Ümid edirik ki, bu təlimat məlumatlı və izlənməsi asan oldu və ümid edirik ki, tətbiq etmək və ya sınamaq istədiyiniz halda cihaz faydalı olacaqdır.

Xoşbəxt kodlaşdırma, Kənd Təsərrüfatı Sensor Array Team

Tövsiyə: