İçindekiler:

Açık Kaynak Veri Kaydedici (OPENSDL): 5 Adım (Resimlerle)
Açık Kaynak Veri Kaydedici (OPENSDL): 5 Adım (Resimlerle)

Video: Açık Kaynak Veri Kaydedici (OPENSDL): 5 Adım (Resimlerle)

Video: Açık Kaynak Veri Kaydedici (OPENSDL): 5 Adım (Resimlerle)
Video: Teknik: Adem İlter ile Video İçerik Üretimi ve Product Designer / Frontend Dev Olmak 2024, Kasım
Anonim
Açık Kaynak Veri Kaydedici (OPENSDL)
Açık Kaynak Veri Kaydedici (OPENSDL)
Açık Kaynak Veri Kaydedici (OPENSDL)
Açık Kaynak Veri Kaydedici (OPENSDL)
Açık Kaynak Veri Kaydedici (OPENSDL)
Açık Kaynak Veri Kaydedici (OPENSDL)

Bu projenin amacı, en az sıcaklık, bağıl nem, aydınlık düzeyi içeren ve ek sensörlere genişletilebilen Bina Performans Değerlendirme çalışmaları için düşük maliyetli bir ölçüm sistemi tasarlamak, inşa etmek, test etmek ve bu cihazların prototipini geliştirmektir..

Bu, paydaşların aynı anda birden fazla çevresel parametreyi günlüğe kaydederek verimli ve uygun maliyetli bir şekilde bina performans değerlendirmesi için gerekli ölçümleri yapmalarını sağlayan özelleştirilmiş ve uygun maliyetli bir sistemle sonuçlanır. Geliştirilen Açık Kaynak Veri Kaydedici (OPENSDL), bir HOBO U12-012 veri kaydedici ile karşılaştırıldı. Bu ticari olarak temin edilebilen muadil sistem, sıcaklık, bağıl nem ve aydınlık olmak üzere 3 parametreyi ve diğer sensör tipleri için bir harici kanalı ölçebilir. Diğer herhangi bir parametrenin ölçümü için farklı bir algılama cihazı gerekli olacaktır. Ölçülecek parametrelerin özellikleri, sistemi belirli parametreleri belirli doğruluklarla ölçmekle sınırlayan tescilli donanım ve yazılımla sınırlıdır. Bir HOBO U12-012'nin maliyeti yaklaşık 13.000 Yen (185 ABD Doları), OPESDL'nin fiyatı ise 4, 605 Yen (66 ABD Doları) olup, bu da ticari muadilinin neredeyse üçte biri kadardır.

Arduino Uno yardımıyla sıcaklık, bağıl nem ve ışık seviyelerini (aydınlık) izlemek için açık kaynaklı bir veri kaydedici Bu, OPENSDL veri kaydedicisini geliştirmek için bir DIY'dir.

Gereken süre: Lehimleme için 2-3 saat, paketleme için 5 saat (4 saat - 3D baskı ve 1 saat lazer kesim) Gerekli beceriler: Lehimleme, programlama ve elektronik konusunda çok az bilgi veya hiç bilgi yok

Gerekli parçalar:

  1. Kablolu Arduino Uno
  2. Veri kaydedici kalkanı
  3. CR1220 düğme pil
  4. BME280 sıcaklık nem basınç sensörü devre kartı
  5. TSL2561 ışık sensörü devre kartı
  6. ESP01-8266 Wi-Fi modülü
  7. RJ-9 erkek ve dişi konnektör
  8. Arduino için kalkan istifleme başlıkları
  9. SD hafıza kartı (herhangi bir kapasite)
  10. Vektör panosu (26 x 18 delik)
  11. 8 AA pil Pil tutucu

Gerekli araçlar:

  • Havya (35W)
  • lehim teli
  • Tel makası
  • kıvırma aracı
  • multimetre

Gerekli yazılım: Arduino IDE (1.0.5 veya üstü)

Kullanılan Arduino kütüphaneleri:

  • Tel kitaplığı
  • SparkFun TSL2561 kitaplığı
  • Kaktüs BME280 çoklu sensör kitaplığı
  • SD kart kitaplığı
  • SPI kitaplığı
  • RTC kitaplığı

Not: BME280 sensörü, Bosch'un çok hassas bir sıcaklık, bağıl nem ve basınç sensörüdür. Benzer şekilde, DS1307, Maxim'in doğru bir gerçek zamanlı saatidir ve TSL2561, doğru bir ışık sensörüdür. Bu ürünler için daha ucuz ve daha az doğru alternatifler vardır, ancak bu eğitim, yüksek hassasiyet ve doğruluk gerektiren bina performans değerlendirmesi ve bina izleme uygulamaları için veri toplamakla ilgilenen kişilere yöneliktir. Bu, herhangi bir özel donanım kurulumunun ve yazılım kurulumunun (kütüphaneler, program kodu) kesinlikle yalnızca belirtilen ürünlere yönelik olduğu anlamına gelir.

Adım 1: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Veri kaydedici kalkanı, Arduino Uno kartının üzerine kolayca istiflenebilir. Bu kalkan, veri kaydı yetenekleri sağlar (zaman tutma ve veri depolama). Kalkan istiflenmeliydi. Arduino kapalıyken bile saatin çalışmaya devam etmesi için sağlanan yuvarlak yuvaya bir CR1220 düğme pil takılması gerekiyordu. SD bellek kartı, sağlanan yerleşik kart yuvasına takılmalıdır. RJ-9 konnektör dişi pimleri ve Arduino shield stacking header'ları kullanılarak benzersiz bir özelleştirilmiş shield geliştirilmiştir. Kalkan Arduino kartına tam olarak oturması için uygun başlıklar uygun yerlere lehimlenmiştir. Arduino'nun bir tarafında 18, diğer tarafında 14 pin bulunmaktadır. Aynı sayıda pinli başlıklar, Arduino'da olduğu gibi aynı aralıkta (18 pin aralıklı) kullanıldı. Başlıklara bitişik kalan fazladan boşluk, RJ-9 konektörünü yerleştirmek için kullanıldı.

Başlıklar, gerekli pinleri kullanmanın en iyi yoluydu ve diğer bileşenler tarafından kullanılmaya devam etmelerini sağlıyordu. Kullanılan sensörler, Arduino'dan 4 pin gerektiren I2C iletişim protokolünü takip eder, yani: SDA (A4 olarak da mevcuttur), SCL (A5 olarak da mevcuttur), 3.3V ve GND. RJ-9 konektöründen çıkan dört kablo, bu dört başlık pimine lehimlenmiştir. Gerekli RJ-9 konektörlerinin sayısı, sensörlerin sayısına bağlıdır. Bu projede 3 adet RJ-9 konnektör kullanılmıştır (ikisi BME280 için, biri TSL2561 için). RJ-9 konektöründen çıkan dört kablo renk kodluydu ve her renkli kablo, tüm RJ-9 konektörleri için özel bir pin olarak belirlendi. Renk kodunun farklı RJ-9 parçalarına göre değişebileceğine dikkat edilmelidir. Böyle bir durumda kablonun konnektör üzerindeki yeri not edilmelidir. RJ-9 konektörü, lehimlemeden sonra, yüzeye sabitlenmesi için bir Feviqwik kullanılarak vektör kartına yapıştırıldı. Bu bağlantılar, multimetredeki süreklilik modu kullanılarak doğrulanabilir. Süreklilik modundayken multimetre sıfır direnç göstermelidir. Multimetrenin sondalarından birini lehimli pime ve diğer sondayı RJ-9 konektörünün içindeki pime bağlayın. Multimetre, lehim bağlantılarının uygun olduğu ve bağlantıların doğru yapıldığı anlamına gelen bir ses çıkarmalıdır. Ton çıkmıyorsa, lehim bağlantılarını kontrol edin. Benzer şekilde, RJ-9 konektörünü, sensör devre kartları üzerindeki aynı iğne deliklerine bağlanan aynı teller, yani A4, A5, 3.3V ve GND ile lehimleyin. BME280 sensörü, iki I2C adresini destekler; bu, iki BME280 sensörünün aynı kontrol cihazına aynı anda bağlanabileceği anlamına gelir. Bunu yaparken sensör üzerindeki lehim pedleri köprülenerek sensörlerden birinin adresi değiştirilmelidir. Bir ESP-01 kablosuz bağlantı yongası, Arduino ile aşağıdaki bağlantıları gerektiriyordu.

ESP-01 ---------Arduino Uno

10 --------------------TX

11 --------------------RX

Vcc ----------------CH_PD

Vcc -------------------Vcc

GND -----------------GND

Not: - Pil ömrünü uzatmak için Arduino Uno'daki çoklu LED'ler kaldırıldı. Güç göstergesi LED'i, RX ve TX LED'leri, lehim bağlantılarının ısıtılması ve LED'in forseps ile itilmesiyle çıkarıldı.

2. Adım: IDE'leri ve Kitaplıkları Ayarlayın

Herhangi bir programlama yapmadan önce Arduino IDE (Integrated Development Environment) indirilmelidir. Programlama bu platformda yapılmıştır. OPENSDL'nin farklı bileşenleriyle etkileşim kurmak için farklı kitaplıklar gerekiyordu. Verilen bileşenler için aşağıdaki kütüphaneler kullanılmıştır.

Bileşen ------------------------------------------------- --------------Kütüphane

BME280 sıcaklık ve RH sensörü ---------------------------------Cactus_io_BME280_I2C.h

Işık sensörü------------------------------------------------ ----------------SparkFun TSL2561.h

Gerçek zamanlı saat -------------------------------------------------- -------------RTClib.h

SD kart yuvası -------------------------------------------------- -------------SD.h

I2C bağlantısı------------------------------------------------ -------------Tel.h

Arduino'ya yüklenen kod, ESP-01'in talimatları aldığı seri monitöre gönderilen AT komutlarına sahip olduğundan, ESP01 ile iletişim için ayrı bir kitaplık gerekli değildir. Bu nedenle, temel olarak, ESP01'in çalıştığı AT komutları, ESP-01 tarafından giriş komutu olarak alınan Seri Monitöre yazdırılır. Bu kütüphaneleri kurmak için indirdikten sonra Arduino IDE'yi açın, Sketch -> Include Library -> Add. Zip library'e gidin ve indirilen kütüphaneleri seçin.

Adım 3: Sistemi Programlama

Sistemin Programlanması
Sistemin Programlanması

OPENSDL'yi programlamadan önce Arduino'yu bir dizüstü bilgisayara bağlayın. Bağlandıktan sonra Araçlar -> Bağlantı Noktası'na gidin ve OPENSDL'nin bağlı olduğu COM bağlantı noktasını seçin. Ayrıca Araçlar -> Panolar altında Arduino Uno'nun seçili olduğundan emin olun.

OPENSDL 2 modda çalışacak şekilde geliştirilmiştir. Birinci modda, SD karttaki verileri datalogger kalkanında saklar. İkinci modda ise verileri bir ESP-01 Wi-Fi çipi kullanarak internet üzerinden bir web sitesine gönderir. Her iki modun programı farklıdır. Bu kod satırları doğrudan Arduino IDE düzenleyicisine kopyalanıp yapıştırılabilir ve doğrudan kullanılabilir. Kodu girdikten sonra, ihtiyaçlarımıza göre birkaç özelleştirme yapmamız gerekiyor:

  1. Kayıt aralığını değiştirmek için kodun sonundaki gecikme (1000) değerini manuel olarak değiştirin. 1000 değeri milisaniye cinsinden aralığı temsil eder.
  2. mySensorData = SD.open("Logged01.csv", FILE_WRITE); yazan kod satırını düzenleyin. ve Logged01'i istenen dosya adının dosya adıyla değiştirin. Dosyanın uzantısı, dosya adından hemen sonra.csv uzantısı değiştirilerek de değiştirilebilir.
  3. Ana/referans sensör ile BME280 arasındaki korelasyonu bularak elde edilen kalibrasyon denklemi, her sensöre göre değişecektir. Bu kod satırını sensörleri kalibre etme denklemiyle değiştirin: Serial.print((1.0533*t2)-2.2374) – varsayılan adrese sahip sensör için (0x77), burada t2 sıcaklık sensöründen okunan değerdir.

OPENSDL'nin ikinci kullanılabilir modu olan kablosuz sistem programlamak için ayrı bir program sağlanmıştır. ESP-01, Adım #2'de açıklanan bağlantılara göre OPENSDL'ye bağlanmalıdır. Bağlantıları tamamladıktan sonra Arduino'yu dizüstü bilgisayara bağlayın ve Arduino'ya boş bir çizim yükleyin. ESP-01'i güncelleme moduna alın ve bellenimi mevcut en son güncellemeye güncelleyin. Güncellemeden sonra, Arduino'nun sıfırlama pinini Arduino bootloader'ı atlayan 3.3V pin ile bağladığınızdan emin olun.

Adım 4: Üretim

Yapılışı
Yapılışı
Yapılışı
Yapılışı
Yapılışı
Yapılışı

OPENSDL için koruma ve estetiği geliştirmek için bir muhafaza oluşturuldu. Muhafazalar PLA malzemesi kullanılarak 3D baskı ile geliştirildi ve mikrodenetleyici için kasa, MDF levhanın lazerle kesilmesi ve parçaların birbirine yapıştırılmasıyla geliştirildi. 3D baskılı modeller SketchUp yazılımı kullanılarak geliştirildi ve lazer kesim için 2D dxf çizimleri AutoCAD kullanılarak oluşturuldu.

3D baskı için SketchUp kullanılarak üretilen STL dosyaları Ultimaker Cura 3.2.1 yazılımında açılarak kontrol edildi. PLA malzemesinin kullanıldığından ve kullanılan yazıcının nozülünün 0,4 mm baskı için olduğundan emin olun. 3B yazıcının yapı plakası, 3B yazdırılan nesneyi yapıştırmak için yapıştırıcı gerektirebilir. Ancak baskı tamamlandığında, yapıştırıcı, basılan nesne ile baskı plakası arasında güçlü bir yapışma oluşturur.

Adım 5: Kod

Kod (.ino dosyaları) Arduino IDE yazılımında çalışacak şekilde yapılmıştır. İşte kod ve diğer ayrıntılar için Github sayfamın bağlantısı.

github.com/arihant93/OPENSDL

Lütfen proje hakkında soru sormaktan çekinmeyin.

Teşekkürler.

Önerilen: