İçindekiler:

Arduino Sıcaklık ve Nem Sensörü: 7 Adım
Arduino Sıcaklık ve Nem Sensörü: 7 Adım

Video: Arduino Sıcaklık ve Nem Sensörü: 7 Adım

Video: Arduino Sıcaklık ve Nem Sensörü: 7 Adım
Video: Arduino İle Sıcaklık ve Nem Ölçer(Termometre ve Higrometre) Yapımı 2024, Temmuz
Anonim

Thundertronics tarafındanYazar tarafından daha fazla takip edin:

PIC16F877A Analogdan Dijitale Dönüştürücü (ADC)
PIC16F877A Analogdan Dijitale Dönüştürücü (ADC)
PIC16F877A Analogdan Dijitale Dönüştürücü (ADC)
PIC16F877A Analogdan Dijitale Dönüştürücü (ADC)
PIC16F877A Mikrodenetleyicili LCD Arayüzü
PIC16F877A Mikrodenetleyicili LCD Arayüzü
PIC16F877A Mikrodenetleyicili LCD Arayüzü
PIC16F877A Mikrodenetleyicili LCD Arayüzü
DIY Modüler Tezgah Güç Kaynağı
DIY Modüler Tezgah Güç Kaynağı
DIY Modüler Tezgah Güç Kaynağı
DIY Modüler Tezgah Güç Kaynağı

Bu derste, DHT11 (veya DHT22) sensörlü Arduino pro mini kart kullanarak bir sıcaklık ve nem sensörü yapımını anlatacağım.

1. Adım: Videoyu İzleyin

Bir sonraki adıma geçmeden önce videoyu izlemek önemlidir. Video her şeyi açıklıyor ve nasıl yapıldığını gösteriyor. Ancak bu yazımda daha fazla teknik veri ve detay yazacağım.

www.youtube.com/watch?v=56LKl7Xd770

2. Adım: Gerekli Parçalar

Bu proje için gerekli parçalar şunlardır:

1- Arduino pro mini board (veya herhangi bir Arduino).

2- DHT11 sıcaklık ve nem sensörü (veya DHT22).

3- 16x2 LCD ekran.

4- Tercihen videoda kullanılanla aynı, seçtiğiniz bir kasa.

5-10K potansiyometre.

6- Vidalı terminaller.

7- Farklı değerlerdeki dirençler.

8-9v pil.

gerekli araçlar ise:

1- Dremil gibi el matkabı.

2- Matkap için farklı uçlar, çünkü düzleştirme uçları ve kesme uçları kullanacağız.

3- yardım eli.

artı, multimetre ve benzeri gibi olağan elektronik aletler.

Adım 3: Şematik Tasarım

Şematik tasarım
Şematik tasarım

Bu projede kendim kablolamak yerine PCB yapmayı seçtim. Bu yüzden güzel bir deneyim olan iş için EasyEDA çevrimiçi aracını kullandım.

Bu projenin easyEDA web sitesindeki sayfası:

Şematik açıklaması aşağıdaki gibidir:

1- Arduino pro mini'yi programlamak için 6 pinli bir ICSP adaptörü kullandım çünkü on board ile gelmiyor. şematik olarak J2'dir.

2- R2 100 Ohm'dur ve LCD'nin parlaklığını ayarlar. Temel olarak, LCD arka ışığının daha kısık olmasını istiyorsanız 100R'den daha fazla direnç koyabilirsiniz. Ya da daha iyisi, değişken seri direnç olarak işlev görecek bir potansiyometre edinin.

3- JP1, güzel bir PCB ayak izine sahip bir konektördür. Asla gerçek bir terminal koymadım, bunun yerine telleri lehimledim. Sevdiğin gibi yap.

4- U2, akü bağlantı terminalleridir. Burada sağlam bir bağlantı elde etmek için güzel bir vidalı terminal tercih ediyorum. Kabloları lehimleyebilirsiniz, ancak bağlantıyı herhangi bir sarsıntıya dayanacak kadar sağlam hale getirmek için yeterince lehim koyduğunuzdan emin olun.

5- LCD1, easyEDA'daki LCD bileşenidir. Arduino pro mini ile temel bağlantıya sahiptir. Buradaki pinlerin yazılımdaki pinlerle aynı olduğundan emin olun.

6- RV1, LCD kontrastını ayarlamak için 10K'lık bir potansiyometredir. Yalnızca bir kez kullanılmalıdır ve bu, LCD'ye ilk güç verdiğiniz zamandır.

Adım 4: PCB Tasarımı

PCB Tasarımı
PCB Tasarımı
PCB Tasarımı
PCB Tasarımı

Şematik tasarımı bitirdikten ve her şeyin ne anlama geldiğini anladıktan sonra, şimdi bunun için bir PCB yapma zamanı.

PCB düzenleyicide PCB oluşturmak için EasyEDA'da "PCB'ye Dönüştür" seçeneğine basmalısınız. Ardından, parçaları yerleştirmeye ve her zamanki gibi yönlendirme yapmaya başlayın. Yine de otomatik yönlendiriciyi asla kullanmamanızı öneririm.

Alan çok az olduğu için üst katmandan alt katmana geçmek için birçok yol kullandım.

Adım 5: PCB'yi Üretin

Şimdi, PCB tasarımı bitti. Her şeyi kontrol ettik ve bir sorun bulunamadı. Tasarım dosyalarını (gerberler) istediğimiz PCB imalat firmasına göndermemiz gerekiyor ki o da bizim için yapsın.

Tercih ettiğim şirket JLCPCB. Bu tür projeler ve prototipleme için en iyisidirler ve tasarımınızın 10 parçasının tamamı için sadece 2$ fiyat sunarlar!

Şimdi (….)'ye tıklayıp JLCPCB'yi seçiyoruz. EasyEDA ile ortak oldukları için JLCPCB web sitesine yönlendiriliyoruz. Şimdi her şeyi doldurun ve siparişi verin. Şimdi PCB'ler gelene kadar bekleyin.

JLCPCB'nin sadece EasyEDA ile ilişkili olmadığını, aynı zamanda büyük bir bileşen deposuna da sahip olduklarını belirtmekte fayda var! Buradaki avantaj, hem PCB siparişinin hem de bileşen siparişinin birlikte gönderilmesidir! Evet, 2 paketin ayrı ayrı gelmesini beklemenize gerek yok, bunun yerine tek bir pakette birleştirilmiş olarak geliyorlar. Bunu kullanmanızı şiddetle tavsiye ederim.

Adım 6: Montaj

Artık her şeyle birlikte PCB'ler elimizde. Her şeyi bir araya toplamanın zamanı geldi.

Öncelikle elektroniği şematik olarak lehimlememiz gerekiyor. Bu proje için kolay bir iş.

Lehimlemeyi bitirdikten sonra, şimdi plastik muhafazada gerekli delikleri açın ve ardından PCB'yi sıcak tutkal tabancası kullanarak diğer bileşenlerle iyice içeride sabitleyin.

Şimdi LCD kontrastını ayarlamak için potansiyometreyi kullanmalısınız, parlaklık için gerekli direnç valfini seçerken 100R'yi seçtim.

7. Adım: Kod

Bu projenin kodu bu adıma eklenmiştir ve açıklama aşağıdaki gibidir:

// kitaplık kodunu dahil et:#include #include "DHT.h" // DHT Pinini ayarla #define DHTPIN 2

Gerekli kütüphaneleri ekleyin ve sensör için veri pini olarak Arduino pro mini'nin pin 2'sini tanımlayın. Elinizde yoksa bu kitaplıkları kurduğunuzdan emin olun.

// kütüphaneyi LiquidCrystal lcd(9, 8, 7, 6, 5, 4) arabirim pinlerinin numaralarıyla başlat; #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

Şimdi bu pinlerle LCD kütüphanesini şematik olarak başlatın. Ayrıca DHT kitaplığını kullanın ve kullanılacak sensör olarak DHT11'i seçin, bu nedenle DHT22'niz varsa değiştirmelisiniz.

Son satırda DHT11 sensörümüz var diyor ve data pini daha önce tanımladığımız pin 2 olan "DHTPIN" pininde.

void setup() { // LCD'nin sütun ve satır sayısını ayarlayın: lcd.begin(16, 2); dht.begin(); lcd.setCursor(0, 0); lcd.print("Sıcaklık ve"); lcd.setCursor(0, 1); lcd.print("nem sensörü"); gecikme(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("THUNDERTRONICS"); lcd.setCursor(0, 1); lcd.print("Hossam Moghrabi"); gecikme(3000); }

Şimdi kurulum zamanı! ve burada neler oluyor:

LCD, 16'ya 2 tiptir.

Değerleri almak için DHT komutunu çalıştırın.

2 satıra "Sıcaklık ve nem sensörü" yazdırın.

3 saniye geciktirin.

Ekranı temizle

İlk satıra "THUNDERTRONICS" yazdırın, ardından 2. satıra "Hossam Moghrabi" yazdırın.

3 saniye geciktirin.

^ Bunu, değerler görüntülenmeden önce yaklaşık 6 saniye süren bir karşılama ekranı olarak yaptım.

void loop() { // nem oku int h = dht.readHumidity(); // sıcaklığı c cinsinden oku int t = dht.readTemperature(); if (isnan(h) || isnan(t)) { lcd.print("HATA"); dönüş; }

Şimdi kendini tekrar etmeye devam edecek sonsuz döngümüzün içindeyiz.

Nem okumalarını "h" değişkeni içinde ve sıcaklık okumalarını "t" değişkeni içinde saklayın.

Ardından, bir if ifademiz var. Bu temelde bir hata olduğunda bir hata mesajı döndürür. Değiştirmeden bırakın.

Artık ihtiyacımız olan tüm değerlere sahibiz.

lcd.setCursor(0, 0); lcd.print("Sıcaklık = "); lcd.baskı(t); lcd.print(" "); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Nem = "); lcd.print(h); lcd.print ("%"); // lcd.print("Hossam Moghrabi"); gecikme(2000);

Son olarak bu değerleri LCD ekranda gösteriyoruz. "h" ve "t" değişkenlerinin içindeki değerleri yazdırdığı için istediğiniz gibi değiştirebilirsiniz. 2 saniyelik bir gecikme koymak biraz isteğe bağlı ama sensörün kendisi o kadar hızlı olmadığı için daha hızlı yapmaktan pek bir fayda sağlayamazsınız ve olsa bile fiziksel değerler asla o kadar hızlı değişmez. Yani 2 saniye iş için çok çok hızlı!

İşte bu!

Önerilen: