İçindekiler:
- Adım 1: Çözülmesi Gereken Sorunlar
- Adım 2: Donanım
- Adım 3: Yaklaşım
- Adım 4: Kablolama Yapın
- Adım 5: Arduino Kodu, Ana Eskiz
- Adım 6: Kod Üzerine Notlar
- Adım 7: Arduino Kodu, Sınıflar
- Adım 8: Sistemi İzleme
- 9. Adım: Python Komut Dosyası
- Adım 10: Hala Yapılacak…
- 11. Adım: 3/16 Güncellemesi, "kalıcı" Yapı
- Adım 12: Güncelleme 12/1/2018 - IoT'ye Hoş Geldiniz
Video: Tarama Alanı Monitörü (aka: Artık Donmuş Boru Yok!!): 12 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Evime su, kuyumdan ısıtılmamış bir tarama alanından geliyor. Tüm mutfak ve banyo tesisatı da bu alandan geçmektedir. (İç mekan tesisatı 70'lerin ortalarında bu evde sonradan akla gelen bir şeydi!) Sıcaklığı donma noktasının üzerinde tutmak için "stok tank" termostatik tapalarında ısı lambaları kullanıyorum. Bu düzenlemeyle ilgili birkaç önemli sorun vardı: 1 - Görünürlük yok. Ampullerin yandığının ilk belirtisi donmuş borulardır!2 - Bazen bujiler kapanmıyordu. Kötü sürprizler için yapılan elektrik faturası geliyor.3 - Ayrıntı yok. 3 ampulü "çevrimiçi" tuttum (toplam 750 watt) ve bu ya hep ya hiç bir çözümdü. (2 ampul her zaman bununla başa çıkmaz.) Arduino ile tanıştıktan ve diğer insanların onunla yaptığı bazı şeyleri gördükten sonra, denemeye karar verdim. En sonunda her şeyi yeniden yazmış olmama rağmen, bu işi yapmak için diğer insanların projelerinden utanmadan örnek kodlar taktığımı ve ince ayar yaptığımı hemen itiraf edeceğim. Adafruit.com ve modifiye etti. Bir web sitesini güncellemek yerine, bana SMS durum güncellemeleri göndermek için Amazon Web Servislerini kullandım. Bazı 110V rölelerin kontrolünü de ekledim (https://www.adafruit.com/products/268). Sonra "akıllı" oldum ve onu "sağlamlaştırmaya" karar verdim -- şey -- bir şey kısa devre yaptı ve sihirli mavi dumanı bir nefes çektim. Her şey kızarmış… Başka bir CC3000 WiFi koparma yaşamadım, bu sefer işleri farklı yaptım. Seri arabirim aracılığıyla etkileşimli olarak izlenebilecek şekilde oluşturdum ve ardından bir EZ-Link Bluetooth FTDI arabirimi ekledim. (Yazılım güncellemeleri için artık dizüstü bilgisayarı evin altına sürüklemeye gerek yok!!!) Bluetooth aracılığıyla birime bağlanan, düzenli olarak sorgulayan ve Mac'imde durum bilgilerini görüntüleyen bir Python arayüzü de oluşturdum. (Herhangi bir terminal öykünme yazılımı tarafından erişilebilen bir "insan arayüzü" de vardır.) Tüm WiFi ve RTC kodlarının yeniden yazılması ve kaldırılması sonucunda, proje 29K'dan 10K'ya kadar küçüldü. Ayrıca, donanım bekçisinin çalıştığı birkaç hafta içinde hiç tetiklenmediği ve ince ayar yaptığım ölçüde güvenilirliği artırdı.
2/17/16 Güncelleme/not: Bazı kodlarda (özellikle Python kodunun girintilemesinde) uygun biçimlendirme elde etme girişiminde, işler çirkinden kullanılamaz hale geldi. Sorunun bir yerlerde benim tarafımda olduğundan eminim ve anlamaya çalışacağım. O zamana kadar DropBox üzerinden kod dosyalarına bağlantılar ekledim. Herkes tarafından erişilebilir olmalıdırlar. Değilse, lütfen bana bildirin, böylece onları size başka bir şekilde ulaştırabilirim!
Adım 1: Çözülmesi Gereken Sorunlar
Sistemin benim için aşağıdakileri yapması gerekiyordu:1 - emekleme alanındaki sıcaklığı izleyin.2 - sıcaklığı donma noktasının üzerinde tutmak için gerektiğinde ısı lambalarını açın.3 - çalışmıyorken, ampulleri periyodik olarak test edin ve bana görünürlük sağlayın durumları.4 - aşağıdakiler dahil, sıcaklık ve sistem durumu hakkında bana bilgi verin: - sistem çalışıyor mu? - ŞİMDİ sıcaklık nedir? - sıcaklığın aldığı en soğuk nedir? - kaç ampul koştu? - kaç ampul testi iyi? - "hafif dakika" (diğer adıyla "yanma süresi") cinsinden toplam sürem nedir?5 - evin altında emeklememe gerek kalmadan yukarıdakilerin hepsini yapın!!!Ampul çalışmasını test etmenin en kolay yolunun Bir ışık sensörü. Ele almak istediğim diğer bazı konular da ışıkların döngü süresiydi. Çok yavaş ve gereksiz elektrik yakıyorum. Çok hızlı ve ilgili ısınma ve soğuma ile ilgili tüm açma ve kapamalardan onları yakma riskiyle karşı karşıyayım.
Adım 2: Donanım
2 adet 250 watt ısı lambası1 500 watt çalışma lambası (ısı lambalarımdan biri kayboldu, bu yüzden bu bir stand-in)Arduino UnoDHT22 Sıcaklık/Nem sensörüGA1A12S202 ışık sensörüPowerSwitch 110V rölelerBluefruit EZ-Link Seri Arabirim ve ProgramcıYüksek teknoloji ürünü kasa (sandviç boyutlu Rubbermaid küveti))Kablo rakor 1/2 boyutlu breadboardBreadboard ve Arduino için akrilik plakaÇeşitli jumper teller. Coleman 5 çıkışlı "atölye şeridi"Ayrıca bir Adafruit Biblo'yu donanım bekçisi olarak kullandım, ancak gereksiz olduğu kanıtlandı (elbette uğursuzluk!) ve ben bunun hakkında ayrı bir talimat yazdı, bu yüzden burada tekrarlamayacağım. Coleman örgüsü güzel bir keşifti, çünkü bana ısı lambalarım için 4 çıkış PLUS, Arduino güç kaynağı için herhangi bir ek ayırıcı veya güç şeridi dahil olmayan bir çıkış verdi. Bir anahtar ve dahili bir kesici ile tam 15 Amper olarak derecelendirildi, tek bir çıkıştan çekebileceğim her şeyi halledebilirdi.
Adım 3: Yaklaşım
Sistem, beklemek ve bazı şeyleri nispeten yavaş yapmak için oluşturulmuş bir uygulama olsa da, yapmak istemediğim şey, denetleyicinin gecikme () döngülerinde yanıt vermediği bir sistem oluşturmaktı. Ayrıca, konfigürasyon parametrelerini olabildiğince anında değiştirebilmek istedim -- kesinlikle kodun yeniden yazılmasını veya kaynak üzerinde toplu arama ve değiştirme işlemleri yapılmasını gerektirecek şekilde değil. Bill Earl'ün "Arduino'da Çoklu Görev" üzerine en mükemmel makalelerini buldu (buradan başlayın: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) ve meşgul oldu. "Zamanlayıcı" ve "ısıtıcı" sınıfları oluşturarak, gecikme() kullanmadan (sadece birkaç istisna dışında) istediğim tüm zamanlama işlevlerini yapabildim ve ampulleri ("ısıtıcılar") her biri için tek bir kod satırıyla yapılandırdım. bir.
Adım 4: Kablolama Yapın
Fritzing şeması, Bluefruit EZ-LinkArduino 5V & Ground'u devre tahtası busDHT22 pin 1 ila 5V busDHT22 pin 2 ila Arduino pin 7DHT22 pin 4 ila Ground bus10K direncini DHT22 pin 1 ve 2GA1A12S202 VCC pin ila 5V busGA1A12S202 GND pin to Ground içermez busGA1A12S202 OUT pini Arduino A0Arduino 3V pin Arduino için AREF pinRelay Topraklama kabloları Topraklama busRelay 1 güç kablosu Arduino A1Relay 2 güç kablosu Arduino A2Relay 3 güç kablosu Arduino A3Relay 4 güç kablosu Arduino A4 Bu bağlantıların çoğu istediğiniz gibi yeniden düzenlenebilir. Kritik olan tek şey, ışık sensöründeki ÇIKIŞ kablosunun bir analog pime gitmesi gerektiğidir. Bu pin-out benim kodumla yazıldığı gibi çalışacak. Donanım watchdog kullanıyorsanız, kodumun kalp atışını Arduino pin 2'ye koyduğunu göreceksiniz.
Adım 5: Arduino Kodu, Ana Eskiz
CrawlSpace_monitor.ino
Adım 6: Kod Üzerine Notlar
Aşağıdaki kod satırları ısıtıcının örneklerini oluşturur ve çalışma parametrelerini tanımlar:// Heater(relayPin, onTemp(f), offTemp(f), minMinutes, testInterval(minutes), luxDelta)Heerheater1 = Heater(A1, 38, 43, 20, 1440, 5);Isıtıcı ısıtıcı2 = Isıtıcı(A2, 36, 41, 20, 1440, 5);Isıtıcı ısıtıcı3 = Isıtıcı(A3, 34, 39, 20, 1440, 5);Isıtıcı ısıtıcı4 = Isıtıcı (A4, 32, 37, 20, 1440, 5);(Ve evet, şu anda sadece 3'ünü çalıştırıyor olmama rağmen 4 ısıtıcıyı da tanımladım. Yine de başka bir röle almam gerekecek, ancak 4. ısıtıcıyı eklemek fişe takmak kadar basit olun.) Tetik sıcaklıklarını kademelendiriyorum, ilki için 38 dereceden başlıyor ve olmayan 4. derece için 32'de bitiyor. Bunu bir araya getirmeye başladığımda bulduğum şeylerden biri, minimum bir "yanma süresi" tanımlamanın yanı sıra sıcaklık konusunda bir aralık vermem gerektiğiydi ya da ışıkları deli gibi açıp kapatıyordum. Burada her birine 5 derecelik bir yayılım ve 20 dakikalık minimum yanma süresi veriyorum. Test aralığını 24 saat olarak belirledim ve bir ampulün hala çalıştığını belirlemek için ihtiyaç duyduğum minimum ışık okumasını 5 lux olarak ayarladım. Yapılandırmaya ihtiyaç duyan hemen hemen her şey bu 4 satırlık koddadır.
Adım 7: Arduino Kodu, Sınıflar
Bu proje için 3 sınıf oluşturdum. Bunlar "zamanlayıcı", "ısıtıcı" ve "akümülatör" idi. Biraz daha düşünerek akümülatörü zamanlayıcıya katlayabilirim, ama henüz yapmadım. İşte tam olarak buradalar:heater.h
zamanlayıcı.h
akümülatör.h
Adım 8: Sistemi İzleme
İki ayrı monitöre tek bir arayüz oluşturdum. Seri konsol üzerinden interaktif bir oturumdur. Benim durumumda Bluefruit EZ-Link kullanıyorum, böylece evin altına girmeden veya zemin kirişleri arasına bir USB kablosu sokmaya çalışmadan sisteme erişebiliyorum! EZ-Link'in ek bir avantajı da Bluetooth üzerinden Arduino'ya yeni program kodu yükleyebilmemdir. "İnsan" arayüzüne, Arduino IDE'nin seri dahil olmak üzere herhangi bir terminal öykünme yazılımı ile (Bluetooth veya fiziksel kablo) erişilebilir. monitör. İlk bağlandığınızda yanıt yok, ancak "u" ("güncelleme" için) ve "t" ("test" için) tuşlarına bastığınızda ekran görüntüsünde gösterilen çıktıyı alacaksınız. "m" ("monitör") ve "s" ("sys check") size aynı verileri ancak çok daha az okunabilir bir biçimde sağlar. Bunlar, otomatik görüntüleme için başka bir program tarafından "kazınmaya" yöneliktir. Tam da bunu yapan bir Python betiği hazırladım. Başka herhangi bir anahtar görüntülenen hata mesajını alır. "Yanma süresi" için bir değer göreceksiniz -- bunu "ampul dakikası" gibi düşünün -- 1 ampul için 10 dakika = 10 dakika, 3 ampul için 10 dakika = 30 dakika.
9. Adım: Python Komut Dosyası
tarama alanı_gui.py
Adım 10: Hala Yapılacak…
Güzel veya mükemmel olmayabilir, ancak etkili ve güvenilir olduğunu kanıtlıyor. VE, bu kış henüz donmuş boru sorunu yaşamadım!!!Yapacak bir şeyler listem var. Tabii ki, artık çalıştığına göre, şu öğelerin çoğunu başarabilirim ya da olmayabilirim: Ahududu Pi'lerimden birinde Bluetooth'u çalıştırın, böylece özel bir monitör oluşturabilirim. Biraz daha Python öğrenin - sonra Python'u temizleyin arayüz. Öğelerin bu ayrımı kasıtlı değil ve neden orada olduğunu anlamıyorum. Adafruit'in IO hizmeti gibi bir şeye bir arabirim ekleyin, böylece onu her yerden izleyebilirim. Kısa mesaj uyarısı ekleyin. Daha küçük bir denetleyiciye (muhtemelen bir Metro) geçin Mini mi yoksa Biblo Pro mu?), daha ucuz röleler ve daha iyi paketleme. Bir devre tahtasından bir "Perma Proto" panosuna alın. EEPROM'daki yapılandırma parametreleri. Hangi ampullerin iyi olduğunu gösterecek daha ayrıntılı bir arayüz ve muhtemelen bireysel ampuller için zaman bile yakmak. Onları bitirdikçe geri gelip bu Talimatı güncelleyeceğim.
11. Adım: 3/16 Güncellemesi, "kalıcı" Yapı
Soğuk havada iyi bir mola vererek, üniteyi geri aldım ve daha küçük bir denetleyiciye taşıdım (Bir Trinket Pro kullanmayı düşünmüştüm, ancak etrafta başka hiçbir proje tarafından talep edilmeyen bir Adafruit Metro Mini vardı), lehimledim. bir Perma-Proto kartı ve hepsini daha iyi bir duruma getirin. Ne kadar güvenilir olduğuna bağlı olarak, donanım bekçi köpeğini geri koymadım. Hala sistemin işleyebileceği 3 lamba/röle kullanıyorum. Bluetooth modülü lehimli bir başlık üzerinde olduğundan, başka bir yere ihtiyacım olursa çıkarılabilir. Yeni denetleyiciye geçmek için gerekli hiçbir kod değişikliği yoktu - basit bir yeniden derleme ve yükleme, birkaç dakika içinde çalışmamı sağladı. (Metro Mini, Arduino Uno ile aynı pin çıkışına sahiptir ve aynı zamanda bir ATMega328 işlemcidir.)
Adım 12: Güncelleme 12/1/2018 - IoT'ye Hoş Geldiniz
Sistem bizim için kusursuz çalıştı. Oldukça şiddetli iki kıştan sonra, donmuş boru YOK. Aslında sistem 2'den fazla ampul yakmadan boruların bakımını yapabildi. 3. ampulün çevrimiçi olması güzel bir sigortaydı, ancak bugüne kadar hiç ihtiyacımız olmadı.
Sistem için 3. yıla girerken, Bluetooth modülü başarısız oldu. Ayrıca yeni bir ev inşa ettik, bu nedenle izleme sistemi Bluetooth menzilinin oldukça dışında. (Eski ev bir süre ayakta kalıyor ama sonsuza kadar değil.) Aradan geçen süre içinde ESP8266 WiFi özellikli işlemci ile çok şey yaptım; hem Adafruit Feather formatında hem de açık kaynaklı "NodeMCU" formatında. NodeMCU genellikle Amazon'da yaklaşık 5 ABD Doları karşılığında bulunabilir - toplu olarak ve/veya AliExpress gibi birinden satın alırsanız çok daha ucuza.
Bu yeni sürüm seri arabirimi korur, bu nedenle bir Bluetooth modülü veya doğrudan USB seri bağlantısı ve önceki python betiği ile hala kullanılabilir, ancak yeni sürüm bir web sayfası arabirimine sahiptir. Yazıldığı gibi, aşağıdaki özelliği içerir:
Sabit kodlama WiFi kimlik bilgilerini ortadan kaldırmak için bir WiFi ağ yöneticisi.
Arduino IDE'yi kullanarak aygıt yazılımını kablosuz olarak güncelleme yeteneği (aynı WiFi ağında olduğunuz sürece - cihaza bir USB yüklemesi yaptıktan sonra, OTA güncellemelerinin çalışması için bir sıfırlamanın gerekli olduğunu unutmayın). LÜTFEN 6. satırdaki OTA şifresini size özel olacak şekilde değiştirin!!
Her dakika otomatik olarak yenilenen, python betiğinin yaptığı aynı verileri görüntüleyen bir web sayfası. Sadece görüntülü olduğu için sayfaya herhangi bir güvenlik koymadım.
Yeni kodu burada bulabilirsiniz. NodeMCU'ya taşınırken pin adlarının değiştiğini unutmayın.
Önerilen:
Artık İşeme Yok, Kedilerin Evinizde İşemelerini Durduran Evcil Hayvan Davranışı Ayarlama Cihazı: 4 Adım
Artık İşeme Yok, Kedilerin Evinizde İşemesini Durduran Evcil Hayvan Davranışı Ayarlama Cihazı: Kedimden o kadar rahatsız oldum ki yatağıma işemeyi çok seviyor, ihtiyacı olan her şeyi kontrol ettim ve veterinere de götürdüm. Düşünebildiğim her şeyi düzeltip doktorun sözünü dinledikten sonra, onun bazı kötü davranışları olduğunu fark ettim. Yani
Ikea ENEBY 20 Güç Modu (Artık Otomatik Uyku Yok): 4 Adım
Ikea ENEBY 20 Güç Modu (Artık Otomatik Uyku Yok): Ikea'nın ENEBY hoparlörleri fiyatına göre harika bir sese sahip. Ana dezavantajı, eşleştirilen cihaz hala bağlı olsa bile, yaklaşık 15-20 dakika müzik çalmadıktan sonra kendilerini kapatmalarıdır. Tekrar açtığınızda, ses seviyesi tekrar th
IPod Mini'nizi Flash Bellek ile Yükseltin - Artık Sabit Disk Yok!: 6 Adım (Resimlerle)
IPod Mini'nizi Flash Bellek ile Yükseltin - Artık Sabit Sürücü Yok!: Yeni yükseltilmiş iPod'unuz, bir sabit sürücü yerine, daha hızlı önyükleme için hareketli parçası olmayan flash bellek kullanacaktır & erişim süreleri ve daha düşük güç tüketimi. (iPod'umu tek şarjla 20 saatten fazla sürekli çalıştırdım!). Ayrıca enhan alacaksınız
Ayaz İçecek Zamanlayıcısı - Artık Sıcak veya Donmuş Bira Yok!: 24 Adım
Ayaz İçecek Zamanlayıcısı - Artık Sıcak veya Donmuş Biralar Yok!: Gadget Gangster'ın Ayaz İçecek Zamanlayıcısı, içeceğinizin ne zaman soğuduğunu size bildiren bir zamanlayıcıdır. Kiti satın alın! http://gadgetgangster.com/154Artık sıcak kutular veya patlamış şişeler yok, sadece Frosty İçecek Zamanlayıcınıza demlemenizi ne kadar soğuk sevdiğinizi söyleyin ve
Sıfır Maliyetli Dizüstü Bilgisayar Soğutucu / Standı (Yapıştırıcı Yok, Delme Yok, Somun ve Cıvata Yok, Vida Yok): 3 Adım
Sıfır Maliyetli Dizüstü Bilgisayar Soğutucu / Sehpası (Yapıştırıcı Yok, Delme Yok, Somun ve Cıvata Yok, Vida Yok): GÜNCELLEME: LÜTFEN KENDİM ÖĞRETİMİM İÇİN OY VERİN, TEŞEKKÜRLER ^_^ DİĞER YARIŞMAMA OY VERMEYİ İSTEYEBİLİRSİNİZ GİRİŞ www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ YA DA EN İYİ ARKADAŞLARIMA OY VEREBİLİRSİNİZ