İçindekiler:

Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi: 4 Adım
Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi: 4 Adım

Video: Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi: 4 Adım

Video: Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi: 4 Adım
Video: Arduino ile DHT22 Sıcaklık ve Nem Ölçer Devresi Nasıl Yapılır? (Proje Örnekleri-4) 2024, Temmuz
Anonim
Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi
Menülü Arduino DHT22 Sensör ve Toprak Nemi Projesi

Merhaba arkadaşlar Bugün size instructables üzerine ikinci projemi sunuyorum. Bu proje, Toprak Nemi sensörü ile sıcaklık ve nem ölçmek için kullanılan DHT22 sensörünü kullandığım ilk projemin karışımını sunuyor. Bu projeyi yapmak kolaydır ve Arduino kullanan insanlar bunu yapmanın oldukça ilginç olduğunu hissedeceklerdir. Bu proje ile birincisi arasındaki fark, bu projede kullanıcının o anda görmek istediğini seçebileceği bir menüye sahip olmasıdır. Dört seçenek olacak. O halde kitinizi alın ve her evde kullanılabilecek bu projeyi yapmaya başlayın.

Adım 1: Tüm Parçaların Elde Edilmesi

Tüm Parçaların Elde Edilmesi
Tüm Parçaların Elde Edilmesi
Tüm Parçaların Elde Edilmesi
Tüm Parçaların Elde Edilmesi
Tüm Parçaların Elde Edilmesi
Tüm Parçaların Elde Edilmesi

Bu proje birkaç parça kullanır. Bu parçaları almak çok ucuz, bu yüzden fiyat konusunda endişelenmeyin. Bu projede kullanılan bazı parçalar değiştirilebilir, böylece proje daha ucuza yapılabilir. Bu projeyi daha da iyi hale getirmek için önerilenlerin hangi kısımlarını kullanacağınız size kalmış. Bu projede kullanılan parçalar:

  1. Arduino uno rev3 (Diğer Arduino'yu da kullanabilirsiniz)
  2. ekmek tahtası
  3. I2C'li LCD 1602 yeşil ekran (Ekranı I2C'siz de kullanabilirsiniz, ancak bağlamak için daha fazla pime ihtiyacınız olacaktır)
  4. 16 tuşlu tuş takımı (Değiştirilebilir)
  5. FC-28-d Toprak higrometresi algılama modülü + toprak nemi sensörü
  6. DHT22 sıcaklık ve nem sensörü (Alınması daha ucuz olan DHT11'i kullanabilirsiniz)
  7. Kırmızı LED diyot
  8. Mavi LED diyot
  9. 2 Direnç 220 ohm(diyotlar için kullanılır)
  10. Şematikte DHT22 için kullanılan 4k7 direnç
  11. Arduino pil konektörü
  12. Tüm parçaları bağlamak için birkaç atlama kablosu

Bu projeyi oluşturmaya başlamadan önce size söylemem gereken bir şey, tuş takımının gerekli olmadığıdır. Döner kodlayıcım bozulduğu için bu sefer tuş takımını kullandım. Daha az pin kullanacağından veya 3 buton kullanabileceğinden dolayı rotary enkoderli olsaydı bu projenin mükemmel olacağını düşünüyorum.

2. Adım: Tüm Parçaları Birbirine Bağlama

Tüm Parçaları Birbirine Bağlama
Tüm Parçaları Birbirine Bağlama

Bu adımda fritzing ile yaptığım şemayı görebilirsiniz. Bu projenin her önemli parçasını birbirine bağlamak için sıcak yazacağım.

Gördüğünüz gibi, breadboard'a güç sağlamak için arduino'dan 5V ve GND kullanıyoruz.

LCD:

  • VCC'den 5v'ye (+ breadboard üzerinde kısım)
  • GND'den gnd'ye (- breadboard üzerinde bölüm)
  • SDA'dan analog pin A4'e
  • SCL'den analog pin A5'e

16 düğmeli tuş takımı:

Tuş takımını bağlamak için 9, 8, 7, 6, 5, 4, 3, 2 pinlerini kullanıyoruz (döner kodlayıcı kullanmamın nedeni bu, çünkü kartta sadece 3 pin alacaktı)

Toprak Nemi Sensörü:

  • VCC'den 5v'ye (+ breadboard üzerinde kısım)
  • GND'den gnd'ye (-breadboard'da bölüm)
  • D0 - dijital pin 0
  • A0'dan analog pin A0'a

DHT22:

  • VCC'den 5v'ye (+ breadboard üzerinde kısım)
  • GND'den gnd'ye (-breadboard'da bölüm)
  • Çıkış pimi pim 12'ye bağlanır

Diyot bağlantısı:

  • diyotun bir parçası - breadboard'un bir parçası
  • ikinci kısım 220 ohm'luk dirençten geçer ve bundan sonra pin 10(mavi diyot) veya 11 (kırmızı diyot) pinine bağlanır.

Adım 3: Kod Yazma

Kodu birkaç bölümde açıklamaya çalışacağım. Ayrıca tam kod yazılacaktır, böylece kopyalayabilir ve herhangi bir ihtiyaç görürseniz değiştirebilirsiniz. Ayrıca bu kodda sensör çalışması için birkaç yöntem yazılmıştır, ancak bu sefer ana odak Arduino ile yeni olan insanlar için kolay anlaşılır olacak bir menü oluşturmaktı. Bu sefer herhangi bir kesinti kullanmıyorum ama sonraki projelerimde yapacağım, bu yüzden bu kodun kesintilerle çok daha iyi olabileceğini unutmayın.

  1. Kodun ilk kısmı, bu proje için kullanılan tüm kütüphaneleri içermektedir. Kullandığımı söylediğim tüm parçalar için sonraki kütüphanelere ihtiyacınız olduğunu unutmayın: Wire, LiquidCrystal_I2C, Keypad ve DHT. Arduino IDE'de eskiz bölümüne giderseniz ve ardından kütüphaneleri dahil ederseniz tüm kütüphaneler bulunabilir. Ayrıca, döner kodlayıcı gibi bir şey kullanırsanız, muhtemelen rotary.h ve buton olacak olan tuş takımı yerine muhtemelen yeni kitaplıklar almanız gerekeceğini unutmayın. DHT11 sensörünü kullanırsanız, kitaplık hala DHT'dir.
  2. Kodun ikinci bölümünde, kullanılan tüm parçaların tanımlanması olacaktır. Her şeyden önce LCD'dir. Bundan sonra, dht tipi sensör ile benzer nesneyi temsil eden DHT sensörü ve ayrıca bağlanan bir pin vardır. Toprak Nemi sensörü ve diyotlar üçüncüdür.
  3. Klavyeyi biraz daha tarif edeceğim. Döner kodlayıcım bozuldu dediğim gibi onu kullanmaya karar verdim. Bu proje için sadece dört düğme olması yeterli, üçü bile bunun için iyidir. Bu yüzden sadece bir seçenek için tuş takımında dört düğme kullanıyorum. Bir fikriniz varsa başka bir şey için isterseniz bazı düğmeleri kullanabilirsiniz. Bu bölümde satır ve sütun tanımlamanız gerekiyor. Bundan sonra hexaKeys, bu proje için kullanılan seçenekleri size sunacaktır. Projemde B (geri), U(yukarı), D(aşağı) ve A(kabul et) var. Her düğmeyi başka bir şey yapmak için yapabilirsiniz. Bir düğme arka ışığı açabilir, biri kapatabilir. Bu yüzden onunla biraz daha oynamaktan çekinmeyin
  4. Bu bölümde kodda kullanılan global değişkenler bulunmaktadır. Bool değişkenleri ekran değiştirmek için kullanılıyor. Hoşgeldin değişkeni, yalnızca açtığım arduinoda birkaç saniye için doğrudur, bundan sonra geri kalan süre için yanlış olacaktır. Ana odak, mainScreen değişkenidir. Bu değişken, sizi menüden koddaki herhangi bir başka seçeneğe yönlendirmek için kullanılır. Bu değişken false ise, bu, kullanıcının bu projenin dört seçeneğinden birini kullanmaya karar verdiği anlamına gelir.
  5. Bu kodda kullanılan tüm yöntemlerin yazıldığı yer burasıdır. Yazılı yöntemlerin hepsini bu bölümde açıklamaya çalışacağım
  • geçersiz startScreen(); // proje ve arduino başlatma yöntemi
  • int seçimSayı(int seçimi); // bu, proje seçenekleri seçiminizi değiştirir. Sayı 1'den 4'e kadar gider
  • void mainScreenP(int seçimi); // yapılan cihazın dört seçeneği yazılacak
  • bool mainScreenCS(bool mainScreen); //bu, mainScreen'i false olarak değiştirir
  • bool mainScreenBack(bool mainScreen); //bu, mainScreen'i true olarak değiştirir
  • geçersiz sıcaklıkCelsius(); // C DHT sensör seçeneğinde sıcaklık okuma
  • geçersiz tempFarenheit(); // F DHT sensör seçeneğinde sıcaklık okuma
  • void printHumidity(); // nem DHT sensör seçeneği okuma
  • geçersiz readSensorData(); // bağlı sensörlerdeki verileri okuma
  • dize getTemperatureC();
  • dize getTemperatureF();
  • String getHumidity();
  • void toprakMoisture(); // bu başka bir sensör ve diyotlar içindir
  • geçersiz printSensorSoilMoisture(); // toprak nemi kısmını lcd'ye yazdırma
  • void diodeLights(int değeri); // diyotları açma ve kapatma
  • void printValue(int değeri);

6. Arduino için kurulum, LCD ve DHT sensörünü ve ayrıca diyotları kurduğunuz kısımdır.

7. Ana kısım, yukarıda yazılan yöntemlerin tamamının kullanıldığı kısımdır.

Bu projenin tam kodu bu adımın ekinde olacaktır. Şematikteki gibi pinlerin bağlı olmama ihtimali olduğunu unutmayın, diyotların değiştiğini düşünüyorum.

Adım 4: Arduino'nuzu Kullanma

Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak
Arduino'nuzu Kullanmak

Bu muhtemelen en komik kısım. En azından yazılan tüm kodlamalardan sonra daha komik. Bu bölümde projenin nasıl çalıştığının resimlerini görebilirsiniz. 4 seçenek var.

  1. Santigrat cinsinden okuma sıcaklığı
  2. Fahrenheit cinsinden okuma sıcaklığı
  3. nem okuma
  4. Diyotların açılması ve toprak nem sensörünün değerlerinin okunması.

Olası seçeneklerden herhangi birini seçebilir, ayrıca başka bir şey görmek istiyorsanız geri dönüp tekrar seçebilirsiniz. Basit ve kullanımı kolaydır.

Başka bir sorunuz varsa bana sorabilirsiniz. Projeme baktığınız için teşekkür ederim. Tüm saygılarımla. Sebastian

Önerilen: