İçindekiler:

Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme: 13 Adım (Resimli)
Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme: 13 Adım (Resimli)

Video: Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme: 13 Adım (Resimli)

Video: Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme: 13 Adım (Resimli)
Video: Kendi Sıcaklık Göstergemizi Yaptık! Kendin Yap #5 2024, Temmuz
Anonim
Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme
Arduino İle Sıcaklık ve Nem Göstergesi ve Veri Toplama ve İşleme

Giriş: Bu, bir Arduino kartı, bir Sensör (DHT11), bir Windows bilgisayarı ve bir İşleme (ücretsiz indirilebilir) programı kullanan, Sıcaklık, Nem verilerini dijital ve çubuk grafik biçiminde görüntülemek, saat ve tarihi görüntülemek ve bir sayım çalıştırmak için kullanılan bir projedir. program sırasında zamanlayıcıyı kapatın ve program kapatıldığında tüm verileri bir.csv formatına kaydedin.

Esin:

Öncelikle, tamamen acemi olduğumu ve bu projeden çok şey öğrendiğimi söylemeliyim. Bu nedenle, bu Eğitilebilir Yazıyı tamamen yeni başlayanlar tarafından okunacak ve anlaşılacak şekilde yazmaya çalışıyorum.

Sıcaklık ve nemi ölçmek için çeşitli Arduino projeleri görmüştüm ama şöyle bir program istiyordum:

1) Ölçülen sıcaklık ve nem

2) Verileri hem grafikte (çubuk grafiği seçtim) hem de dijital biçimde gösterdi

3) Saat işlevi vardır

4) "Çalışma Süresi" sayacına sahiptir

5) Bu verileri bir.csv (excel) dosya biçiminde kaydeder.

Sowmith Mandadi, R-B ve aaakash3 tarafından oluşturulan programlardan ilham aldım, ancak bunların hiçbiri tam olarak istediğim şey değildi. Böylece bazı temel kodlar yazmayı öğrendim ve istediğimi yaptım.

Adım 1: İhtiyacınız Olan Şeyler:

Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak

Parçalar ve Malzemeler:*Bilgisayar – Windows bilgisayar Windows 10 işletim sistemi kullandım

(Eminim Linux veya Mac kullanılabilir, bende ikisi de yok, bu yüzden bu işletim sistemlerinin nasıl kullanılacağını anlatmayacağım)

*Arduino Kartı – Bir Arduino Uno Kartı kullandım, ancak USB'li herhangi bir Arduino kartı işinizi görecektir.

*USB Kablosu -USB A/B kablosu -eski tip "yazıcı kablosu" ile aynı (genellikle Arduino Board ile birlikte gelir)

*DHT 11 Sıcaklık / Nem sensörü - 4-8 $ arası ucuz

(Not: 3 pinli versiyonu kullandığım 2 versiyon var, 4 pinli versiyonda bir devre tahtası ve bir 10K rezistör kullanılması gerekecek, 3 pinde 10K rezistör içeren bir baskılı devre kartı var) sonraki adımlarda Fritzing diyagramlarına bakın

* Bağlantı kabloları

Breadboard olmadan 3 pinli DHT11'e bağlanırsa Dupont teller (çift dişi uçlar)

4 pinli DHT11'i bağlamak için standart jumper M/F kabloları (bir uç erkek bir uç dişi) ve M/M jumper kabloları (her iki uç erkek) - daha fazla bilgi için 2. adıma bakın

*Arduino IDE – Arduino programları yazmak için bir program (skeçler denir) ücretsiz @

www.arduino.cc/en/Main/Software

* İşleme - işleme çizimlerini ücretsiz yazmak için bir program @

processing.org/download/

* "DHTLib" dosyası-bir kitaplık dosyası (bu, Arduino IDE programına “Kütüphane” adlı klasör altında giden bir dosyadır, bunun Arduino'nun DHT11'den gelen verileri okuyabilmesi için Arduino taslağına eklenmesi gerekir - bkz. dosya ve yönergeleri indirmek için 5. adım

Adım 2: Arduino'yu DHT11'e bağlayın

Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın
Arduino'yu DHT11'e bağlayın

Önce hangi DHT11'e sahip olduğunuzu belirleyin

3 pini zaten gerekli 10K dirence sahip olduğu için kullandım.

4 pininiz varsa, 10K'lık bir rezistör ve bir breadboard'a ihtiyacınız olacaktır.

DHT11'i Arduino Board'a bağlayın. Bu program, DHT 11 sinyal pininin Arduino pin #7'ye, Pos (+) pininin Arduino'da 5V'a ve Neg (-)'in Arduino'da GND'ye bağlanmasını gerektirir.

Diyagramlara ve Fritzing Diyagramlarına bakın

Adım 3: Arduino IDE'yi indirin

Arduino IDE'yi indirin
Arduino IDE'yi indirin

Arduino IDE'yi indirin ve bilgisayara kurun

www.arduino.cc/en/Main/Software

Adım 4: Arduino'yu Bilgisayara Bağlayın

Arduino'yu Bilgisayara Bağlayın
Arduino'yu Bilgisayara Bağlayın

Arduino USB bağlantısı için sürücüleri olan Arduino IDE'yi kurun.

Arduino'yu USB üzerinden bilgisayara bağlayın.

Bilgisayarın Arduino kartını tanımasını ve tüm sürücüleri kurmasını bekleyin.

IDE programını açın ve seri bağlantı olup olmadığını kontrol edin.

Arduino kartı Araçlar> bağlantı noktasında (kırmızı daire) görünmüyorsa, IDE'yi kapatın ve yeniden açın.

*Önemli* IDE açıldığında ve Arduino kartı USB üzerinden bağlandığında. Arduino kartı doğru seri porta bağlanmalıdır. Windows bilgisayarlarda buna COM Bağlantı Noktası denir. Bunu IDE'de yapmak için Araçlar> Bağlantı Noktası:> Seri bağlantı noktalarına gidin. Şemada görüldüğü gibi, seri bağlantı noktası (kırmızı daire), IDE programının sağ alt köşesinde listelenen bağlantı noktasıyla (sarı daire) eşleşmelidir.

Adım 5: Kitaplığı Yükleyin

Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle
Kitaplığı Yükle

DHT11 için kitaplığı yükleyin. Bu ilk başta benim için kafa karıştırıcıydı ama gerçekten oldukça basit.

“DHTLib” adlı dosyayı indirin ve sıkıştırın. Açılan “DHTLib” dosyasını kopyalayın.

Bu kütüphane ile ilgili referans şu adreste bulunabilir:

playground.arduino.cc/Main/DHTLib

(Başkalarının çalışmalarına dayanarak Rob Tillaart tarafından yazılmıştır)

Bilgisayarınızdaki Arduino klasörünü bulun ve açın. (IDE'yi indirdiğiniz ve bilgisayara yüklediğiniz her yerde olacaktır)

Şemaya bakın

“Libraries” adlı dosyayı bulun ve açın, ardından “DHTLib” klasörünü “libraries” dosyasına yapıştırın. Kapatın ve ardından IDE'yi yeniden başlatın.

Şemaya bakın

IDE yeniden açıldıktan sonra DHT kitaplığının kurulu olup olmadığını kontrol edebilirsiniz. Çizim> Kitaplığı Dahil Et'i seçin.

Şemaya bakın

Not "include library" sekmesinde DHTLib'e tıklamak, kütüphaneyi Arduino koduna "#include dht.h" olarak yerleştirecektir.

Bunu yapmanıza gerek yok çünkü bir sonraki adımda indireceğiniz kodda zaten var.

Adım 6: Arduino Kodunu Alın

Arduino Kodunu Alın
Arduino Kodunu Alın

Temp_Hum_Instructable.zip dosyasını indirin ve sıkıştırmayı açın. Arduino IDE ile Temp_Hum_Instructable.ino'yu açın.

Alternatif olarak aşağıdaki koda bakın ve Arduino IDE'ye kopyalayıp yapıştırın veya tam olarak yazın:

#Dahil etmek

dht DHT; #define DHT11PIN 7// DHT11 sinyal bağlantısı için pin 7'yi ayarlar void setup(){ Serial.begin(9600); // seriyi açar } void loop() { int chk =DHT.read11(DHT11PIN);//DHT11 Serial.print'i okur(DHT.temperature, 0);//seri Serial.print(", "); //seri Serial.print'te virgül yazdırır(DHT.humidity, 0);//serideki nemi yazdırır Serial.println();//satır dönüşü gecikmesi(2000);//2 saniye bekle }

İşiniz bittiğinde yukarıdaki Şema gibi görünmelidir.

Adım 7: Kodu Arduino'ya Yükleyin

Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle
Arduino'ya Kod Yükle

İlk önce taslağı yerine ve hatırlayacağınız bir adla kaydedin, Örnek: Temp_Hum.

Ardından, Sağa bakan ok düğmesine (yükle) basarak çizimi Arduino kartına yüklemeniz gerekir.

Şemaya bakın

Bu birkaç saniye sürecektir; sağ altta bir ilerleme çubuğu göreceksiniz.

Ardından şunu göreceksiniz: Sol altta yükleme tamamlandı mesajı ve IDE'nin alt kısmında size bellek hakkında bilgi veren beyaz metin

Şemaya bakın

Bir hata kodu alırsanız (IDE'nin altındaki turuncu metin), aşağıdakilerden biri olmalıdır.

  1. "DHTlib" kitaplığı doğru şekilde kopyalanmadı
  2. COM bağlantı noktası doğru ayarlanmamış
  3. Sensör doğru bağlanmamış
  4. Kod IDE'ye doğru yüklenmemiş Turuncu metin kaydırılabilir ve neyin yanlış olduğuna dair bir ipucu verecektir. Geri dönün ve muhtemelen basit bir hata olup olmadığını kontrol edin.

Bu yapıldıktan sonra Arduino kartınıza yakından bakın. Her birkaç saniyede bir “TX” harflerinin yanındaki küçük LED yanıp sönecektir. Bu, Arduino'nun bilgisayara bilgi göndermesidir. Bunu kontrol etmek için IDE'nin sağ üst köşesindeki küçük büyüteç sembolüne tıklayın.

Şemaya bakın

Bu, seri monitörü açacak ve virgülle ayrılmış sıcaklık ve nem verilerini görüntüleyecektir. Sıcaklık verilerinin Santigrat cinsinden listelendiğini not edeceksiniz. Sorun değil, daha sonra Fahrenheit'e çevireceğiz (veya seçtiyseniz değil).

Şemaya bakın

Ardından seri monitörü kapatın ve ardından IDE'yi kapatın. (Kaydetmeyi hatırladın, değil mi?). Şimdi Arduino kartına tekrar bakın (güç aldığı ve bilgisayardaki seri bağlantı noktasına veri gönderen USB'den bağlantısını kesmeyin). Hala yanıp sönüyor mu? Evet harika. Program Arduino'ya yüklendikten sonra gücü olduğu sürece çalışacaktır.

Kod hakkında not: “void loop ();” ile başlayan Arduino koduna bakarsanız. Sonraki 5 kod satırı Arduino'ya DHT'den veri okumasını ve virgülle ayırarak seri veri yoluna yazdırmasını söyler. Sonraki satır “gecikme (2000);” Arduino'ya 2 saniye (2000 milisaniye) beklemesini söyler, böylece veriler her 2 saniyede bir alınır. Ardından “void loop (); - Arduino'ya tekrar yapmasını söyleyen bir komuta geri döner. Gecikme satırındaki değeri değiştirmek, verilerin ne sıklıkta alındığını değiştirir. Örnek: (600000) olarak değiştirin 10 dakikaya (600000 milisaniye = 10 dakika) Her 2 saniyede bir veri almak çok fazla veri anlamına gelir, bu yüzden artık verilerin okunma sıklığını nasıl değiştireceğinizi biliyorsunuz. Yeni programı yüklemeniz gerekiyor.

Tamam, arkanıza yaslanın ve bir nefes alın, yolun yarısından fazlasısınız. Evet!!

8. Adım: İşlemeyi İndirin ve Yükleyin

İşlemi İndirin ve Yükleyin
İşlemi İndirin ve Yükleyin
İşlemi İndirin ve Yükleyin
İşlemi İndirin ve Yükleyin

processing.org/download/

Oldukça yalındır, Windows 64bit vs. 32 bit için bilgisayarınıza karşılık gelen programı seçin. Bilmiyorsanız, bilgisayarınızdaki Kontrol panelini açın (kategori görünümü değil simge görünümü) ve sisteme gidin, orada listelenecektir.

Şemaya bakın

Programı indirin ve ardından kurun.

İşlemeyi ilk açtığınızda ve çalıştırdığınızda, muhtemelen bir Java güvenlik mesajı alacaksınız. Özel ağlar için "izin ver"e tıklayın. Java, İşleme (ve Arduino IDE) tarafından kullanılan bilgisayar dilidir. İlginçtir ki, Arduino IDE ile hiç güvenlik mesajı almadım, sadece İşleme.

9. Adım: Kodun İşlenmesi

İşleme Kodu
İşleme Kodu

İşlem kodu için şimdi tamam.

Bu benim için en zorlu kısımdı, aynı zamanda öğrenme için en fırsattı. Arduino kodu yaklaşık 20 satır iken bu kodun ana kodunda +/- 270 satır ve sınıflarda 70 + satırı daha vardır.

Şimdi sormanız gereken ilk şey “Sınıflar nedir?”. İyi soru. Bu, nesne yönelimli programlamayı ifade eder. Kısacası, ana kodda bir sürü şey oluyor: ekranın boyutunu ve rengini tanımlamak, bir saat, bir zamanlayıcı, imleç konumunu göstermek için kod, verileri bir.csv dosyasına kaydetmek için kod ve birkaç satır çubuk grafikleri görüntüleyen kodla ilgilenir. Arduino IDE'de tüm kodlar bir sayfada bulunurken, bu işleme kodunun üç sekmesi vardır. Birincisi ana kod ve sonraki ikisi çubuk grafikleri gösteren koddur. (Bu kod aslında İşleme kodu klasöründe üç ayrı dosyada saklanır.) Ayrı sekmelere "sınıflar" denir ve 48 ve 56 satırlarında tanımlanır ve ardından ana kodun 179-182 satırlarında görüntülenir. Processing programını yazanlar buna nesne yönelimli programlama diyorlar. (kısa bir açıklama için bakınız:https://processing.org/tutorials/objects/).

Temel olarak bu koddaki sınıfların (Recta1, Recta2) yaptığı şey, DHT11'den seri olarak alınan verilere göre yukarı ve aşağı hareket eden dikdörtgenler oluşturmaktır. Eski moda termometreyi düşünün, cıva ne kadar yüksek olursa o kadar sıcak olur, ancak bu cıva değil verilerle yapılır. Gerçekte sınıflar dört dikdörtgen oluşturur, termometrenin arka planını temsil eden iki statik dikdörtgen ve verilere yanıt veren ve yukarı ve aşağı hareket eden iki dinamik dikdörtgen. Kod, dikdörtgenleri hareket ettirmeye ek olarak, seri tarafından alınan verilere bağlı olarak dinamik dikdörtgenin rengini ve Sıcaklık ve Nem dijital ekranının rengini değiştirir.

Adım 10: Kod Dosyalarının İşlenmesi

İşlem koduyla ilgili yalnızca birkaç temel bilgi:

Processing'in kurucuları Casey Reas ve Ben Fry'ın Make: Working Starting withProcessing adlı kitabını okumanızı şiddetle tavsiye ederim.

processing.org/books/#reasfry2

İşleme veya işleme için kod yazmanın tüm yönlerini açıklamaya çalışmayacağım. Daha önce de söylediğim gibi ben acemiyim ve öğrenecek çok daha iyi insanlar olduğunu düşünüyorum. Ancak yazdığım kodu anlıyorum (deneme yanılma iyi öğretmenlerdir).

1. Birincisi, kütüphaneleri içermeli (tıpkı Arduino'da olduğu gibi) ve değişkenleri bildirmeli (Satır 1-25)

2. Ardından ekran kartını kurun (Satır 27-63)

3. Kodun tekrarlanan bir kısmını çalıştırın - demek istediğim, kodun bu kısmı program çalıştığı sürece tekrar edecek. Arduino'da hatırlayacaksınız “void loop();” (Adım 6). İşleme sırasında bu artık “void draw();” şeklindedir. (Satır 65-184)

4. Sırada seri porttan veri almak ve onu değişkenlere atamak (int, float, String)

int-

batmadan yüzmek-

Sicim-

(Satır 185-245)

4. Son olarak programı kapatmanın ve verileri kaydetmenin bir yolu (Satır 246-271)

Tamam: Temp_Hum_F_3_2 dosyasını indirin (Fahrenheit için)

Veya Temp_Hum_C_3_1 (Santigrat için)

ve dosyayı açın. İşleme ile açın.

Adım 11: İşlemedeki Yazı Tipi

İşlemedeki Yazı Tipi
İşlemedeki Yazı Tipi

Önemli: 36-37. satırlara dikkatinizi çekiyorum

36 font =loadFont("SourceCodePro-Bold-48.vlw");//veride depolanan yazı tipini yükler

klasör 37 textFont(font);

Bu "SourceCodePro-Bold-48.vlw" yazı tipi kitaplığı, İşleme dosyaları indirmelerine dahildir ve işlev görmesi için değiştirilmesi gerekmez.

Ancak yazı tipini başka bir şeyle değiştirmek için yeni yazı tipini İşleme çizimine yüklemeniz VE "SourceCodePro-Bold-48.vlw"yi yeni yazı tipiyle değiştirmeniz gerekecektir.

. Neyse ki İşleme ilk kısmı çok kolaylaştırdı.

Önce bir çizimi açın, ardından tıklayın:

Araçlar>Yazı tipi oluştur

bu bir pencere açar

Şemaya bakın

İstediğiniz yeni yazı tipine ilerleyin, Üzerine tıklayın ve ardından Tamam'a tıklayın. Yazı tipi artık eskiz klasörüne yüklenmiştir.

Ardından "SourceCodePro-Bold-48.vlw" metnini yeni yazı tipinin tam adıyla değiştirin (.vlw dosya biçimi dahil)

Bu yapılmazsa, yeni font koda yüklenmeyecek ve kod hata verecektir (Tıpkı Arduino'daki hatalar gibi- programın altındaki kara kutuda).

Adım 12: Bitirme

Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek

İşleme programını başlatmak için oka tıklayın, bir Java uyarısı alabilirsiniz, Tıklayın: Erişime izin ver.

Şemaya bakın

Tamam, program işe yaradı mı? Eğer öyleyse, şemada görüldüğü gibi bir görüntü elde edeceksiniz.

(Hayır? Bir sonraki adımda sorun gidermeye bakın)

Evet? Şimdi DHT11'i avucunuzun içinde tutmayı deneyin veya bir saç kurutma makinesinin sıcak hava akımının altına yerleştirin. Rakamlar değişmeli. Evet? Harika. bu, her şeyin iyi çalıştığı anlamına gelir.

Programı kapatmak ve verileri kaydetmek için “Kapatmak ve Verileri Kaydetmek İçin Buraya Tıklayın” yazan kutuyu tıklayın.

Şimdi kaydedilen verileri bulmak için Temp_Hum_F_3_1 veya Temp_Hum_C_3_1 İşleme klasörüne gidin (bunu şimdiye kadar kendiniz bulabilmelisiniz) açın ve Veri klasörünü bulun. Bunu açın ve programı kapattığınız tarih ve saatten sonra adlandırılan bir.csv dosyası görmelisiniz (Örnek 1-10-18--22-30-16.csv, 10 Ocak 2018 22:30:16 PM anlamına gelir). Bunu Excel (veya Açık ofis elektronik tablosu eşdeğeri) ile açın. Şema gibi bir şey görmelisiniz. Verilerle birlikte Tarih, Saat, çalışma süresi, sıcaklık ve nem sütunları. Artık verileri excel ile veya onunla ne yapmak istiyorsanız grafiğini çizebilirsiniz. (Not: İlk veri girişine bakarsanız Sıcaklık ve Nem verileri doğru değildir, bu normaldir ve program ilk başladığında sadece bir hatadır)

tamam evet!!!!!!

Sen yaptın

Herhangi bir sorunuz varsa lütfen gönderin, yanıtlamak ve yardımcı olmak için elimden geleni yapacağım.

Bununla kaldığınız için teşekkürler ve iyi şanslar. Umarım bu sadece bir başlangıçtır…..

Sıradaki benim için Bluetooth ve muhtemelen Android….

Adım 13: Sorun Giderme

Sorun giderme
Sorun giderme
Sorun giderme
Sorun giderme

Arduino sorunları

Bir hata kodu (IDE'nin altındaki turuncu metin) alırsanız, aşağıdakilerden biri olmalıdır"DHTlib" kitaplığı doğru şekilde kopyalanmadı

COM bağlantı noktası doğru ayarlanmamış

Sensör doğru bağlanmamış

Kod, IDE'ye doğru şekilde yüklenmedi

Tüm Arduino iyi görünüyorsa, Seri Monitörü açmayı ve verilerin görüntülenip görüntülenmediğini kontrol etmeyi unutmayın.

Doğru verileri görürseniz, bu Arduino tarafının tamamen çalıştığı anlamına gelir - Hatırlatma İşleme başlamadan önce Seri Monitörü kapatın, Seri Monitör açıksa İşleme verileri okuyamaz.

İşleme Sorunları:

Bunlar, İşleme programının alt kısmında görüntülenecektir.

"Yazı tipi"ni açıklayan bir hata alırsanız 11. adıma dönün ve yazı tipini açıklandığı gibi yükleyin.

Şuna benzeyen bir hata alırsanız: Hata, COM4 için serialEvent() işlevini devre dışı bırakmak null- 12. adımda olduğu gibi oku tıklatarak İşleme çizimini yeniden başlatmanız yeterlidir.

Şunu belirten bir hata alırsanız: Seri bağlantı noktası açma hatası - 32-34 satırlarını "COM4"ün Arduino çiziminizdeki COM bağlantı noktasıyla eşleştiği bir şeye değiştirmeyi deneyin

myPort = newSerial(this, "COM4", 9600);//Port myPort.bufferUntil('\n')//seri veri alana kadar bekle

Önerilen: