İçindekiler:
- Adım 1: Montaj
- 2. Adım: IDE'leri ve Kitaplıkları Ayarlayın
- Adım 3: Sistemi Programlama
- Adım 4: Üretim
- Adım 5: Kod
Video: Açık Kaynak Veri Kaydedici (OPENSDL): 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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:
- Kablolu Arduino Uno
- Veri kaydedici kalkanı
- CR1220 düğme pil
- BME280 sıcaklık nem basınç sensörü devre kartı
- TSL2561 ışık sensörü devre kartı
- ESP01-8266 Wi-Fi modülü
- RJ-9 erkek ve dişi konnektör
- Arduino için kalkan istifleme başlıkları
- SD hafıza kartı (herhangi bir kapasite)
- Vektör panosu (26 x 18 delik)
- 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
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
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:
- 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.
- 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.
- 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
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:
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır - Proteus'ta DHT11 Veri Kaydedici Simülasyonu: 5 Adım
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır | Proteus'ta DHT11 Veri Kaydedici Simülasyonu: Giriş: merhaba, ben Liono Maker, işte YouTube bağlantısı. Arduino ile yaratıcı projeler yapıyoruz ve gömülü sistemler üzerinde çalışıyoruz
Q-Bot - Açık Kaynak Rubik Küp Çözücü: 7 Adım (Resimlerle)
Q-Bot - Açık Kaynaklı Rubik Küp Çözücü: Karıştırılmış bir Rubik Küpünüz olduğunu hayal edin, herkesin sahip olduğu ama kimsenin gerçekten nasıl çözeceğini bilmediği 80'lerden kalma bulmacayı biliyorsunuz ve onu orijinal kalıbına geri getirmek istiyorsunuz. Neyse ki bu günlerde çözme talimatı bulmak çok kolay
Arduino Öğrenci Kiti (Açık Kaynak): 7 Adım (Resimlerle)
Arduino Öğrenci Kiti (Açık Kaynak): Arduino Dünyasında yeni başlayan biriyseniz ve Arduino'yu biraz uygulamalı deneyime sahip olarak öğrenecekseniz, bu Eğitilebilir Kitaplar ve bu Kit tam size göre. Bu Kit, öğrencilerine Arduino'yu kolay bir şekilde öğretmeyi seven öğretmenler için de iyi bir seçimdir.
PyonAir - Açık Kaynak Hava Kirliliği Monitörü: 10 Adım (Resimlerle)
PyonAir - Açık Kaynaklı Hava Kirliliği Monitörü: PyonAir, yerel hava kirliliği seviyelerini, özellikle de partikül maddeyi izlemek için düşük maliyetli bir sistemdir. Pycom LoPy4 kartına ve Grove uyumlu donanıma dayanan sistem, verileri hem LoRa hem de WiFi üzerinden iletebilir. Ben bu p
OpenLogger: Yüksek Çözünürlüklü, Wi-Fi Etkin, Açık Kaynak, Taşınabilir Veri Kaydedici: 7 Adım
OpenLogger: Yüksek Çözünürlüklü, Wi-Fi Etkin, Açık Kaynaklı, Taşınabilir Veri Kaydedici: OpenLogger, pahalı yazılım veya yazma yazılımı gerektirmeden yüksek kaliteli ölçümler sağlamak üzere tasarlanmış taşınabilir, açık kaynaklı, düşük maliyetli, yüksek çözünürlüklü bir veri kaydedicidir. sıfırdan. Eğer bir mühendis, bilim insanı veya meraklıysanız