İçindekiler:

Tarımsal Sensör Dizisi: 6 Adım
Tarımsal Sensör Dizisi: 6 Adım

Video: Tarımsal Sensör Dizisi: 6 Adım

Video: Tarımsal Sensör Dizisi: 6 Adım
Video: Ünal turan Azad yılmaz Karşıma çıkın dedi 2024, Temmuz
Anonim
Tarımsal Sensör Dizisi
Tarımsal Sensör Dizisi

EF 230 için Jackson Breakell, Tyler McCubbins ve Jakob Thaler tarafından bir proje

Tarım, Amerika Birleşik Devletleri'nde hayati bir üretim faktörüdür. Mahsuller, giyim, ilaç ve gıda katkı maddelerinin üretimi için hammaddelerden mahsulün parçalarının, çoğunlukla filizlenen meyvenin doğrudan tüketimine kadar çok çeşitli farklı amaçlar için kullanılabilir. Amerika Birleşik Devletleri'ndeki mahsullerin çoğu, hava koşullarının veya sıcaklığın büyük ölçekte kontrol edilemediği açık havada yetiştirilmektedir. Olumsuz hava koşullarının mahsullerin büyümesini ne kadar büyük ölçüde etkileyebileceği ve bunun sonucunda Birleşik Devletler ekonomisini nasıl etkilediği düşünülürse, bir mahsul tarlasının koşullarını izlemek hayati hale gelir.

Tarımsal Sensör Dizisi cihazımız, çiftçilerin tarlalarının önceden seçilmiş bölümlerinin durumunu 4 sensör kullanarak izlemelerine olanak tanır: yağmur suyu sensörü, toprak nem sensörü, sıcaklık sensörü ve fotoelektrik sensör. Bu sensörlerin kombinasyonu, bir çiftçinin mevsimin mahsul verimini yeterli şekilde planlamasına, çok az veya çok fazla yağmur için ayarlama yapmasına, mahsulleri öldürebilecek felaketlerle daha iyi başa çıkmasına ve toprak numuneleri almaktan ve daha pahalı sensör ekipmanı kullanmaktan zaman ve sorundan tasarruf etmesine olanak tanır. Bu Eğitilebilir Kitapta, Tarımsal Sensör Dizimizin arkasındaki kablolama ve kodlama konusunda size yol göstereceğiz, böylece siz de kendinizinkini yapabilirsiniz.

Adım 1: Gerekli Malzemeleri Toplayın

Gerekli Malzemeleri Toplayın
Gerekli Malzemeleri Toplayın

Aşağıda, başlamak için ihtiyaç duyacağınız gerekli malzemelerin bir listesi bulunmaktadır"

1. Arduino Board, tercihen Arduino Uno

2. Temel devre tahtası

3. 1x 220 ohm direnç

4. Farklı renklerde çeşitli teller

5. Mikro USB'den USB'ye kablo

6. Panoya monte hoparlör

7. Fotoelektrik Sensör

8. Sıcaklık Sensörü

9. Yağmur Suyu Sensörü

10. Toprak Nemi Sensörü

11. Matlab 2017 ve Arduino Destek Paketinin kurulu olduğu bilgisayar (Destek paketi Eklentiler altında bulunabilir)

Adım 2: Kartı Kablolayın ve Bağlayın

Kartı Kablolayın ve Bağlayın
Kartı Kablolayın ve Bağlayın

Kartı yukarıda gösterildiği gibi veya size en uygun şekilde kablolayarak başlayın. Kartın kabloyla bağlanabileceği kelimenin tam anlamıyla sınırsız yolu vardır, bu nedenle tam yapılandırma gerçekten size kalmış. Kart kablolandıktan sonra sensörlerinizi takmaya başlayın. Yağmur suyu, toprak nemi ve fotoelektrik sensörlerin tümü analog çıkışlardır, bu nedenle Arduino'nun analog giriş bölümüne bağlandıklarından emin olun. Sıcaklık sensörü ise dijital bir çıkıştır, bu nedenle Arduino'nuzdaki mevcut bir dijital girişe bağlandığından emin olun. Arduino'nun 3.3v ve 5v için çıkışları olmalıdır, bu nedenle sensörlerin uyumlu oldukları voltajlara bağlı olduğundan emin olun.

Kartın doğru şekilde kablolandığından emin olduktan sonra, bilgisayarınızdan gelen Mikro USB - USB kablosunu bilgisayarınızdaki Mikro USB bağlantı noktasına takın ve Arduino'nuzu açın. Matlab'ı açın ve Arduino Destek Paketini Eklentiler altında kurduğunuzdan emin olarak, "fopen(serial('nada'))" komutunu çalıştırın. Arduino'nuzu bir nesneye eşlemek için "a=arduino('comx', 'uno')" komutunu çalıştırın, burada x, bağlantınızın numarasıdır. bağlı olduğunu belirtmek için hızla yanıp sönmelidir.

Adım 3: Fotoelektrik ve Sıcaklık Sensörlerini Kodlayın

Fotoelektrik ve Sıcaklık Sensörlerini Kodlayın
Fotoelektrik ve Sıcaklık Sensörlerini Kodlayın

Kodlamaya başlamadan önce, readVoltage komutu için önemli olacağından, sensörlerinizin Arduino'da nereye bağlandığını not edin. Değişken güneş ışığını "readVoltage(a, 'X#')' komutuna eşit olarak ayarlayarak kodunuza başlayın, burada X# bağlı olduğunuz bağlantı noktasıdır ve a basitçe o değişkene eşlediğiniz Arduino'yu çağırır. Bir if ifadesi başlatın., ve güneş ışığı için ilk koşulu ayarlayın<3. Günün saatini bir yapı olarak çıkarmak için çıktıyı "info. TOD='gece'" olarak ayarlayın ve ardından çıktısı "info. TOD=' olan bir else ifadesi ekleyin. day'". Bu bir else ifadesi olduğu için, if ifadesinde tanımlanmayan diğer tüm değerler için çalışacağı için bir koşula ihtiyacımız yok. if ifadenizi bir sonla bitirdiğinizden emin olun ve programlamaya geçin. sıcaklık sensörü.

Termo değişkenini başka bir readVoltage komutuna eşit olarak ayarlayın, komut "readVoltage(a, 'X#')" olacaktır. Bizim durumumuzda, sıcaklığın gerilim birimlerinden Santigrat'a dönüştürülmesi gerekiyordu, bu nedenle "tempC=(termo-.5).*100" denklemi gerilimi Santigrat'a dönüştürmek için. Kolaylık olsun diye, Celsius cinsinden sıcaklığı Fahrenheit'e çevirdik, ancak bu tamamen isteğe bağlı.

Yapıştırma amaçlı kod

güneş ışığı=readVoltage(a, 'A1')güneş ışığı ise<3

info. TOD='gece'

Başka

info. TOD='gün'

son

termo=readVoltage(a, 'A3');

sıcaklıkC=(termo-.5).*100;

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

Adım 4: Yağmur Suyu ve Toprak Nemi Sensörlerini Kodlayın

Yağmur Suyu ve Toprak Nemi Sensörlerini Kodlayın
Yağmur Suyu ve Toprak Nemi Sensörlerini Kodlayın

Son adımda belirtildiği gibi, bu adımı çok daha az sinir bozucu hale getireceğinden, sensörlerinizin Arduino kartında hangi bağlantı noktalarına takıldığını bildiğinizden emin olun. Yağmur suyu sensörüyle başlayın ve bir if ifadesi başlatın. "readVoltage(a, 'X#')>4" için ilk koşulu ayarlayın ve çıktısını "info. Rain='yağış yok" olarak ayarlayın. Bir elseif ekleyin ve koşulunu daha önce readVoltage komutuna ayarlayın, ancak >2 olarak ayarlayın. Yerine getirilmesi gereken başka bir koşulu belirtmek için bir "&&" ekleyin ve daha önce olduğu gibi bir readVoltage komutuna ayarlayın ve <=4 olarak ayarlayın. Çıktı "info. Rain='misting'" olacaktır. Son olarak, başka bir tane ekleyin ve çıktısını "info. Rain='downpour'" olarak ayarlayın. Çalıştığınız odanın ortam nemine göre koşullar için değerleri ayarlamanız gerekebilir.

Ardından, toprak nem sensörü kodunu başlatın ve bir if ifadesi ile başlayın. if ifadesinin koşulunu "readVoltage(a, 'X#')>4 olarak ayarlayın ve "info.soil='dry'" çıktısını ekleyin. Bir elseif ifadesi ekleyin ve yukarıdaki readVoltage komutunu kullanarak > için ayarlayın. 2. Bir "&&" ekleyin ve <=4 için başka bir readVoltage komutu ayarlayın. Çıktısını "info.soil='optimal saturation'" olarak ayarlayın. Bir else ifadesi ekleyin ve çıktısını "info.soil='flood' olarak ayarlayın. " ve bir son eklemeyi unutmayın.

Yapıştırma amaçlı kod

if readVoltage(a, 'A0')>4 info. Rain='yağış yok'

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

info. Rain='sisleme'

Başka

info. Rain='sağan sağanak'

son

eğer readVoltage(a, 'A2')>4

info.soil='kuru'

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

info.soil='optimum doygunluk'

Başka

info.soil='sel'

son

Adım 5: Hoparlör ve Mesaj Kutusu Çıkış Kodlaması

Hoparlör ve Mesaj Kutusu Çıkış Kodlaması
Hoparlör ve Mesaj Kutusu Çıkış Kodlaması

Bu aygıtın çıktıları çok çeşitli olabilir, ancak bu durumda, doğrudan aygıta monte edilmiş bir hoparlör çıkışı ve uzaktaki bir bilgisayarda görüntülenebilen bir mesaj kutusu çıkışı aracılığıyla size yol göstereceğiz. Hoparlörümüz, optimum ürün sıcaklığı, güneş ışığı, toprak nemi ve yağış için farklı frekanslar, daha düşük anlam daha kötü çıkış verecek şekilde tasarlanmıştır. Hoparlör çıkış kodunuza bir if ifadesi ile başlayın ve koşulunu "readVoltage(a, 'X#')>4 || info.tempF=3 || readVoltage(a, 'A2')>2 && readVoltage(komutuna ayarlayın. a, 'A0')<=4". Yukarıda gösterildiği gibi aynı playTone komutunu ekleyin, ancak daha yüksek, daha pozitif bir ton üretmek için 200'ü 1000'e değiştirin. Ardından, başka bir tane ekleyin ve aynı playTone komutunu tekrar ekleyin, ancak 1000'i 1500'e değiştirin. Bu değişen tonlar, alanın durumunun ciddiyetini gösterir. if ifadenizi tamamlamak için bir son eklediğinizden emin olun.

Son kod bölümümüz, bir mesaj kutusu üreten bir çıktı olacaktır. Parantez içindeki ' işaretlerini kullanarak bir dize oluşturun ve "num2str(info.x)" komutunu kullanarak yapınızın bölümlerini dizelere dönüştürün, burada x, bilgi yapısında bir alt yapı adıdır. Mesaj kutunuza yeni satırlar eklemek için "yeni satır dizesi"ni kullanın ve yukarıda belirtilen num2str komutunu kullanarak alanın gerçek değerini dizeye ekleyerek, mesajınızı tırnak işaretini kullanarak metin olarak yazın. Son olarak, tanımlanmış dize ile, verileri monitörünüzde bir mesaj kutusu olarak görüntülemek için "msgbox(string)" komutunu kullanın.

Yapıştırma amaçlı kod

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

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

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

Başka

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

son

string = ['Sıcaklık (derece F)', num2str(info.tempF)]

string=[string newline 'Toprak ', num2str(info.soil)]

string=[string newline 'Dış yağış ', num2str(info. Rain)]

string=[string newline 'Günün saati ', num2str(info. TOD)]

msgbox(dize)

6. Adım: Sonuç

Çözüm
Çözüm

Dünya, daha önce mahsullerden hasat edilen ürünlere sentetik alternatiflere giderek daha fazla güvenmeye devam ederken, tarım kesinlikle uzun bir süre ekonominin ilgili ve önemli bir faktörü olmaya devam edecek. Bir çiftçinin hasadından en iyi şekilde yararlanabilmesi için tarım arazilerinin yeterli şekilde izlenmesi çok önemlidir ve bizim cihazımızla sadece tüm tarım arazisini uzaktan izlemek mümkün olmakla kalmaz, aynı zamanda bunu ucuz ve kolay bir şekilde yapmak da mümkündür. kurulum ve güvenilir bir şekilde. Bu kılavuzun bilgilendirici ve takip edilmesi kolay olduğunu umarız ve cihazın, uygulamayı veya denemeyi dilediğiniz şekilde yararlı olacağını umarız.

Mutlu kodlama, Tarımsal Sensör Dizi Ekibi

Önerilen: