İçindekiler:

Arduino Çoklu Dosyalarla Çalışma (OKU/YAZ): 4 Adım
Arduino Çoklu Dosyalarla Çalışma (OKU/YAZ): 4 Adım

Video: Arduino Çoklu Dosyalarla Çalışma (OKU/YAZ): 4 Adım

Video: Arduino Çoklu Dosyalarla Çalışma (OKU/YAZ): 4 Adım
Video: Arduino'da Butonla Çalışma DigitalRead ve DigitalWrite Komutları Nasıl Çalışır ? 2024, Temmuz
Anonim
Arduino Çoklu Dosyalarla Çalışmak (OKU/YAZ)
Arduino Çoklu Dosyalarla Çalışmak (OKU/YAZ)

selam beyler

Bugün sizlere veri depolayabilen RTC kalkanı ile çalışan Arduino projesini sunuyorum. Bu projenin ana görevi, sc kartında depolanan birden fazla dosya ile çalışmaktır. Bu proje, arduino ve RTC kalkanı ile doğrudan SD kartta saklanan üç dosya ile çalışan kod içerir. Bu proje DataLogger kalkanı ile çalıştığından, bu veriler de bilgisayarınızda olduğu gibi tam olarak aynı anda saklanacaktır.

Bu proje, son projemin yükseltilmiş versiyonudur. Bu proje, talimat sitesinde Arduino Data Logger Shield Small Project adıyla bulunabilir. Bu projeyi anlamakta bazı sorunlarınız varsa, önce daha kolay olanı görmenizi öneririm.

Bu iki proje arasındaki temel fark, bu projenin 3 metin dosyası kullanması, ayrıca bu sefer ikisinden veri okumamız. Verileri okuyabildiğimiz için sd kartta saklanan nem ve sıcaklığın orta değerini alabiliyoruz. Bu, Arduino'ya bağlı LCD'de de gösterilecektir.

Bir kez daha, Arduino'da yeniyseniz ve bu DataLogger kullanan ilk projenizse, bu bağlantıyı https://www.instructables.com/id/Arduino-Data-Logg… ve her şeyi aldığınızda kontrol etmenizi öneririm. Bunun üzerine, buraya gel ve biraz daha eğlen. Hadi başlayalım.

Adım 1: Parçalar

Parçalar
Parçalar
Parçalar
Parçalar
Parçalar
Parçalar

Ne zaman böyle projeler yazsam, bu projede kullandığım tüm parçalarla başlayacağım. Ayrıca kullanılabilecek ve bu projeyi biraz farklı kılabilecek bazı sensörleri önereceğim.

Parçalar:

  • Arduino uno rev3
  • Arduino Veri kaydedici kalkanı
  • SD hafıza kartı
  • I2C'li LCD 1602 yeşil ekran (başka herhangi bir ekranı kullanabilirsiniz)
  • DHT22 (DHT11 de iyi çalışıyor, ancak hassasiyeti dht22 ile aynı değil)
  • Birkaç atlama kablosu
  • ekmek tahtası
  • Pil 9v

Bazı parçaları değiştirebilirsiniz. Bu projenin iyi yanı, başka herhangi bir sensörden veri depolamak için kullanılabilmesidir. Duman sensörü veya kızılötesi sensörle çalışmayı denerdim. Diğer sensörlerle çalışır. Arduino'nuzu da değiştirebilirsiniz, ancak Arduino'nun Veri kaydediciye uyması için en iyisi olduğunu unutmayın.

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 bağlantı kolaydır. Şematik bile daha kolay projeyle aynıdır. Ancak hangi pini kullanacağınıza dikkat etmeniz gerektiğini söyleyebilirim. Hangi pinlerin kullanım için en iyi olduğunu görmek için her zaman Veri kaydedicinin veri sayfasını kontrol edin, çünkü hatırladığım kadarıyla bazı pinler zaten tanımlanmış ve sensörümü tanımlanmış pinlerden birinde kullanmaya çalıştığımda işe yaramadı.

Bu adımın en üstünde fritzing ile yapılan şemayı görebilirsiniz. Kolay olan şey, veri kaydedicinizi arduino'nuzun üstüne bağlamanız gerektiğidir. SD kartınızı veri kaydediciye bağlayın ve yapmanız gereken son şey dht sensör ve lcd'yi bağlamak. Breadboard'da + kısmı için arduino'dan 5V, - kısmı için GND kullanıyoruz ve bu çizgiyi takip ederek + sensörü ve lcd'yi de breadboard'un + hattına bağlarsınız. Aynı şey - parçalar için de geçerlidir, sadece aşağıdaki satıra giderler -. Dht sensörü bu sefer pin 7'ye bağlanır. LCD, A4 ve A5. Easy'ye bağlı, değil mi?

LCD:

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

DHT22:

Kullanılacak üç pimin bulunduğu tahta ile dht kullandım:

  • + ila 5V
  • - GND'ye
  • dijital pin 7'ye çıkış

Adım 3: Kodlama

Bu zaman kodu daha karmaşıktır. Kolaylıkla anlayabilmeniz için iyi bir kısmı yorumlanmıştır.

Bu kodu birkaç kısa bölümde açıklayacağım.

1. Aklınızda bulundurmanız gereken ilk şey, bu kodun PC'nizde kurulu birkaç kitaplığa ihtiyacı olacağını unutmayın. Bunlar: Time(TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Muhtemelen başka kütüphaneler de kullanabilirsiniz ama bu kütüphaneler benim için çalıştı.2. Bundan sonra bu proje için gereken her şeyi tanımlıyoruz. DHT sensörünün tanımlanması kolaydır, sadece sensörün bağlı olduğu pini ve sensör tipini söylemeniz yeterlidir. Daha sonra SD kart ve RTC pini için kullanılacak pinleri tanımlamanız gerekmektedir. Ve bundan sonra bu proje için kullanılan değişkenleri görebilirsiniz.

3. Proje birkaç yöntem kullanır ve bunların tümü DHT sensörü ile çalışmak içindir. Bu tür bir sensörle proje üzerinde çalışıyorsanız, onu kullanabilirsiniz. Bu yöntemler getTemperature(), getMidTemperature(), getHumidity(), getMidHumidity(), readSensorData(), printLcdTemperature(), printHumidity(), printLcdMidTemperature(), printMidHumidity()'dir.

4. Kurulumda yapılması gereken birkaç şey vardır. Her şeyden önce zamanı tanımlamanız gerekir. Burada RTC kullandığımız için Arduino'muz sensörden veri kaydederken uygun zamana sahip olmak istiyoruz. Bu kısım kodda yorumlanacaktır. //RTC.adjust(DateTime(_DATE_, _TIME_)); satırında projenize zaman ayarlayabilirsiniz. Uygun zamanı ayarladıktan sonra o kısmı tekrar yorumlayabilir ve arduino'nuzu bilgisayarsız kullanabilirsiniz. Bu harika çünkü sıcaklık sensörünüzü başka bir odada kullanabilir ve bilgisayarınıza ihtiyaç duymadan sıcaklığı takip edebilirsiniz. Yapılması gereken ikinci kısım, verilerin saklanacağı SD kartınızı kullanmaktır. Kalkan, kart olup olmadığını görmeye ve başlatmaya çalışacaktır. Eğer yoksa Arduino IDE'deki Seri ekranında hata mesajı gösterilecektir.

Kurulumda, hafıza kartına dosya yazma ile çalıştığımız ilk adımdır. Karta ilk yazılan şey datalog.txt dosyasıdır. Bu sefer sadece cihazımızın oturum açma zamanını yazıyoruz ve ayrıca küçük bir isim satırı oluşturuyoruz (kaydetmek için kullanılan değişkenler ve ayrıca zaman)

Kurulumun son kısmı, LCD'yi ve dht sensörünü başlatıyor.

5. Döngü kısmı projenin ana kısmıdır. Sensörle çalışmak bu sefer çok kolay çünkü sensörün aldığı değerleri okuyan tek bir yöntem kullanıyor. LCD kısmı da çok kolay. Bundan sonraki kısım burada açıklamamız gereken kısımdır. Bu proje her dakika bir şey yapıyor. Bir dakika verileri datalog.txt'e depolar. Bu veriler, arduinoları nasıl programlayacağını bile bilmeyen biri tarafından okunabilir. Diğer tarafta. datalogB.txt üzerinde bir dakika ısı, datalogC.txt üzerinde bir dakika nem tasarrufu sağlar. Hafıza kartımızdan okuyabilmemiz için datalogB.txt ve dataLogC.txt'ye ihtiyacımız var. Yani kodumuzu okumaya devam edersek, bu kodun sıcaklık ve nemin orta değerlerini okuduğunu ve bunları bir satırda sakladığını da görebilirsiniz. Dosyada sadece son on haneyi alan bir cihaz yapmak istedim. Yani bu proje her zaman karttaki değerler üzerinden çalışır ve son on haneyi kaydeder. Satırlarda saklanan bu rakamlar, ortalama sıcaklık ve ortalama nem değerini alabilmemiz için kullanılır. Bir süre sonra LCD'mizde de gösterilenler

Adım 4: Ardından Arduino ve SD Kartı Kullanma

Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak
Arduino ve SD Kartı Daha Sonra Kullanmak

Burada LCD'de neyin gösterildiğini ve projenin nasıl çalıştığını görebilirsiniz. Ayrıca kaydettiğim datalogların resimlerini de buraya koyuyorum. Datalog.txt, cihazın her değeri nasıl sakladığını görmek için kullanılabilecek olandır. DatalogB ve datalogC nasıl göründüklerini görebilmeniz için oradadır. Bu şekilde yazılmıştır, böylece ayrıştırma yöntemini kullanabilir ve verileri sorunsuz bir şekilde okuyabilirsiniz.

Bu projenin bütün amacı, sd karttaki dosyaların manipülasyonudur. Bazen hafıza depolayabilen cihazlara ihtiyaç duyarız ve sıcaklık okuma da böyledir. İyi bir şey, bu cihazda kullanılan kalkanın bir RTC modülüne sahip olması, zaman için en iyisi. Cihazımızla gerçek zamanlı okuyabildiğimiz ve veri depolayabildiğimizde, bu taşınabilir olabileceği anlamına gelir.

Bu projeyi okuduğunuz için teşekkürler arkadaşlar. Umarım size yardımcı olur. Teşekkürler.

Sebastian'a saygılarımla

Önerilen: