Mündəricat:
- Addım 1: Həll ediləcək problemlər
- Addım 2: Hardware
- Addım 3: yanaşma
- Addım 4: Kabel bağlayın
- Addım 5: Arduino Kodu, Əsas Eskiz
- Addım 6: Kod haqqında qeydlər
- Addım 7: Arduino Kodu, Dərslər
- Addım 8: Sistemin monitorinqi
- Addım 9: Python Script
- Addım 10: Hələ də…
- Addım 11: 3/16 yeniləyin, "daimi" qurun
- Addım 12: 12/1/2018 yeniləyin - IoT -a xoş gəldiniz
Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Evimə su, qızdırılmamış bir tarama sahəsindən quyumdan gəlir. Bütün mətbəx və vanna otağı santexnika bu yerdən keçir. (Bağlı santexnika bu evdə 70-ci illərin ortalarında bir şapka vurdu!) Dondurma temperaturunu qorumaq üçün "stok tankı" termostatik tıxaclarında istilik lampalarından istifadə edirəm. Bu tənzimləmədə bir neçə əhəmiyyətli problem var idi: 1 - Görünüş yoxdur. Yanan lampaların ilk əlaməti donmuş borulardır! 2 - Bəzən fişlər bağlanmazdı. Elektrikli faktura gəlir. 3 ampulü "onlayn" saxladım (cəmi 750 vat) və ya heç bir şey yox idi. (2 ampul həmişə bunu idarə edə bilməz.) Arduino ilə tanış olduqdan və digər insanların bununla etdiyini gördükdən sonra ona bir fırtına verəcəyimə qərar verdim. Bu işi yerinə yetirmək üçün digər insanların layihələrindən həyasızcasına örtüldüyümü və çimdiklədiyimi çuxurdan dərhal etiraf edəcəyəm, amma nəticədə hər şeyi yenidən yazmışam. Adafruit.com və onu dəyişdirdi. Bir veb saytı yeniləmək əvəzinə mənə SMS status yeniləmələri göndərmək üçün Amazon Web Services -dən istifadə etdim. Bəzi 110V rölelərinin nəzarətini də əlavə etdim (https://www.adafruit.com/products/268). Sonra "ağıllı" oldum və onu "möhkəmləndirmək" qərarına gəldim - yaxşı - bir şey qısaldı və sehrli mavi tüstüdən nəfəs aldım. Hər şey qızardı… Başqa bir CC3000 WiFi qırılması olmadığından, bu dəfə fərqli şeylər etdim. Serial interfeysi ilə interaktiv olaraq izlənmək üçün qurdum və sonra EZ-Link Bluetooth FTDI interfeysi əlavə etdim. (Proqram yeniləmələri üçün noutbuku evin altına sürükləməyə ehtiyac yoxdur !!!) Mən də Bluetooth vasitəsilə qurğuya qoşulan, mütəmadi olaraq sorğu -sual edən və Mac -da status məlumatlarını göstərən bir Python interfeysi qurdum. (Hər hansı bir terminal emulyasiya proqramı ilə əldə edilə bilən "insan interfeysi" də var.) Bütün WiFi və RTC kodlarının yenidən yazılması və silinməsi nəticəsində layihə 29K-dan 10K-a qədər kiçildi. Eyni zamanda, aparat nəzarətçisinin işlədiyi bir neçə həftə ərzində işə salmadığı və düzəltdiyim qədər etibarlılığı da artırdı.
17.02.16 Yeniləmə/qeyd: Bəzi kodlarda (xüsusən Python kodunun girintisi) düzgün formatlaşdırmaq üçün işlər çirkindən yararsız hala düşdü. Əminəm ki, məsələ bir yerdə mənim sonumdadır və bunu anlamağa çalışacağam. O vaxta qədər DropBox vasitəsilə kod fayllarına bağlantılar əlavə etdim. Hər kəs üçün əlçatan olmalıdır. Yoxdursa, zəhmət olmasa mənə bildirin ki, onları sizə başqa yolla çatdırım!
Addım 1: Həll ediləcək problemlər
Sistem mənim üçün aşağıdakıları etməli idi: 1 - tarama sahəsindəki istiliyi izləmək 2 - donmanın üstündəki temperaturu qorumaq üçün lazım olduqda istilik lampalarını yandırmaq 3 - işləmədikdə ampulləri vaxtaşırı yoxlamaq və mənə görünmə imkanı vermək statusu haqqında 4 - mənə temperatur və sistemin vəziyyəti haqqında məlumat verin, o cümlədən: - sistem işləyirmi? - indi temperatur necedir? - İstiliyin ən soyuqu nədir? - neçə ampul qaçdı? - neçə ampul yaxşı test edir? - "yüngül dəqiqələrdə" ümumi vaxtım nə qədərdir (aka "yanma vaxtı")? 5 - yuxarıda göstərilənlərin hamısını evin altında sürünməyə ehtiyacım olmadan et !!! Mən qərar verdim ki, lampa işini yoxlamağın ən asan yolu İşıq sensoru. Həll etmək istədiyim digər məsələlər işıqlardakı dövr dövrü idi. Çox yavaş və lazımsız elektrik yandırıram. Çox sürətli və əlaqədar istiləşmə və soyutma ilə birlikdə bütün açma və söndürmə işlərindən yanma riski daşıyıram.
Addım 2: Hardware
2 250 vatlıq istilik lampaları1 500 vatlıq iş lampası (mənim istilik lampalarımdan biri yoxa çıxdı, buna görə də bu dayanıqlıdır) Arduino UnoDHT22 Temperatur/Humitidy sensor) Kabel kəməri 1/2 ölçülü çörək taxtası Çörək taxtası və Arduino üçün akril plaka. Asorted tullanan tellər. Coleman 5 çıxışlı "atelye zolağı" Mən də Adafruit Bibloyu aparat nəzarətçisi kimi istifadə etdim, amma bunun lazımsız olduğunu sübut etdi (əlbəttə ki jinx!) Və mən bu barədə ayrıca bir təlimat yazdı, buna görə burada təkrarlamayacağam. Coleman pigtail gözəl bir tapıntı idi, çünki mənə istilik lampalarım üçün PLUS Arduino enerji təchizatı üçün heç bir əlavə ayırıcı və ya elektrik şeridi olmadan 4 çıxış verdi. Bir açar və daxili bir açar ilə tam 15 Amper ilə qiymətləndirilmişdir, tək bir prizdən çəkə biləcəyim hər şeyi idarə edə bilər.
Addım 3: yanaşma
Sistem gözləmə ətrafında oturmaq və bəzi işləri nisbətən yavaş etmək üçün qurulmuş bir tətbiq olsa da, etmək istəmədiyim şey, nəzarətçinin gecikmədə () dövrələrə cavab verməyən vəziyyətdə oturduğu bir sistem qurmaq idi. Həm də konfiqurasiya parametrlərini əldə edə biləcəyim qədər dəyişə bilmək istədim-əlbəttə ki, kodu yenidən yazmaq və ya mənbədə kütləvi axtarış və dəyişdirmə əməliyyatları aparmaq lazım deyil. Bill Earlın "Arduinoya çoxlu vəzifələr" mövzusunda ən mükəmməl məqalələrini tapdı (buradan başlayın: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) və məşğul oldu. "Zamanlayıcı" və "qızdırıcı" sinifləri yaratmaqla gecikmə () istifadə etmədən istədiyim bütün vaxt funksiyalarını yerinə yetirə bildim (yalnız bir neçə istisna olmaqla) və ampulləri ("qızdırıcılar") hər biri üçün bir kod xətti ilə konfiqurasiya edə bildim. bir
Addım 4: Kabel bağlayın
Fritzing diaqramına Bluefruit EZ-LinkArduino 5V & Ground breadboard avtobusuna DHT22 pin 1-dən 5V-dək DHT22 pin 2-dən Arduino pininə 7DHT22 pin 4-ə qədər Yer avtobusuna DHT22 sancaqlar 1 ilə 2GA1A12S202 VCC pinindən 5V-a qədər GG1112 G20-ə qədər busGA1A12S202 OUT pin Arduino A0Arduino 3V pin Arduino AREF pinRelay Ground Toprağa aparır Ardeino A1Relay 2 güc arduino A2Relay 2 güc ucu Arduino A2Relay 3 güc ucu Arduino A3Relay 4 güc qurğusu Arduino A4 -ə dəyişdirilə bilər. Əhəmiyyətli olan tək şey, işıq sensoru üzərindəki ÇIXIŞ qurğusunun bir analog pinə getməsidir. Bu pin çıxışı mənim kodumla yazıldığı kimi işləyəcək. Əgər hardware nəzarətçisindən istifadə edirsinizsə, mənim kodumun Arduino pin 2-də ürək döyüntüsünü çıxardığını görəcəksiniz.
Addım 5: Arduino Kodu, Əsas Eskiz
CrawlSpace_monitor.ino
Addım 6: Kod haqqında qeydlər
Aşağıdakı kod xətləri qızdırıcının nümunələrini yaradır və iş parametrlərini təyin edir: // Qızdırıcı (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (dəqiqə), luxDelta) Qızdırıcı qızdırıcısı1 = Qızdırıcı (A1, 38), 43, 20, 1440, 5); Qızdırıcı qızdırıcısı2 = Qızdırıcı (A2, 36, 41, 20, 1440, 5); Qızdırıcı qızdırıcısı3 = Qızdırıcı (A3, 34, 39, 20, 1440, 5); Qızdırıcı qızdırıcısı4 = Qızdırıcı (A4, 32, 37, 20, 1440, 5). bağlamaq qədər sadə olsun.) Tətik temperaturlarını birincisi üçün 38 dərəcədən başlayaraq 32-də bitməyən 4-cü hissədə heyrətləndirirəm. Bunu ilk dəfə bir araya gətirməyə başladığım zaman tapdığım şeylərdən biri, temperaturun bir aralığını verməli olduğum və minimum "yanma müddəti" ni təyin etməyim və ya dəli kimi velosiped sürməyim idi. Burada hər birinə 5 dərəcə bir yayılma və 20 dəqiqəlik minimum yanma müddəti verirəm. Test aralığını 24 saata təyin etdim və ampulün hələ də işlədiyini təyin etmək üçün lazım olan minimum işıq oxunuşu olaraq 5 lüks təyin etdim. Konfiqurasiyaya ehtiyacı olan hər şey bu 4 kod sətirindədir.
Addım 7: Arduino Kodu, Dərslər
Bu layihə üçün 3 sinif yaratdım. Bunlar "taymer", "qızdırıcı" və "akkumulyator" idi. Bir az düşünsəm də, akkumulyatoru taymerə qatlaya bilməli idim, amma hələlik yox. Budur tam olaraq: qızdırıcı.h
taymer.h
akkumulyator.h
Addım 8: Sistemin monitorinqi
İki ayrı monitor üçün tək bir interfeys yaratdım. Serial konsol üzərində interaktiv bir sessiyadır. Mənim vəziyyətimdə, Bluefruit EZ-Link-dən istifadə edirəm ki, evin altında sürünmədən və ya döşəmə kirişləri arasında bir USB kabel çəkməyə çalışmadan sistemə daxil olum! EZ-Link-in əlavə bir üstünlüyü, yeni proqram kodunu Bluetooth üzərindən Arduino-ya yükləyə bilməyimdir. "İnsan" interfeysinə Arduino IDE-nin seriyası daxil olmaqla istənilən terminal emulyasiya proqramı ilə (Bluetooth və ya fiziki kabel) daxil olmaq mümkündür. ekran. Əvvəlcə qoşulduqda heç bir cavab yoxdur, ancaq "u" ("yeniləmə" üçün) və "t" ("test" üçün) düymələrinə basmaqla ekran görüntüsündə göstərilən nəticəni əldə edəcəksiniz. "m" ("monitor") və "s" ("sys check") eyni məlumatları əldə edir, lakin daha az oxunan formatda. Bunlar avtomatik göstərmə üçün başqa bir proqram tərəfindən "cızılmaq" üçün nəzərdə tutulmuşdur. Bunu edən Python skriptini bir araya gətirdim. Başqa hər hansı bir düymə səhv mesajını göstərir. "Yanma vaxtı" üçün bir dəyər görəcəksiniz - bunu "ampul dəqiqələri" kimi düşünün - 10 dəqiqə üçün 1 ampul = 10 dəqiqə, 10 ampul üçün 30 ampul = 30 dəqiqə.
Addım 9: Python Script
crawlspace_gui.py
Addım 10: Hələ də…
Gözəl və ya mükəmməl olmaya bilər, amma təsirli və etibarlı olduğunu sübut edir. Və bu qışda hələ heç bir donmuş boru problemi yaşamadım !!! Etməli olduğum işlərin siyahısına sahibəm. Əlbəttə ki, indi işlədiyi üçün bu maddələrin çoxunu yerinə yetirə bilərəm və ya etməyəcəyəm: Xüsusi bir monitor yaratmaq üçün Raspberry Pi -dən birində Bluetooth işləyin. Daha çox Python öyrənin - sonra Python -u təmizləyin. interfeys. Elementlərin bu ayrılması məqsədli deyil və niyə olduğunu anlamıram. Adafruit -in IO xidməti kimi bir şeyə bir interfeys əlavə edin ki, onu hər yerdən izləyə bilim. Mətn mesajı əlavə edin. Kiçik bir nəzarətçiyə (bəlkə də bir Metroya) keçin. Mini və ya Trinket Pro?), Daha az bahalı rölelər və daha yaxşı qablaşdırma. Çörək taxtasından çıxarın və "Perma Proto" lövhəsinə qoyun. EEPROM -da konfiqurasiya parametrləri. Hansı lampaların yaxşı olduğunu və bəlkə də ayrı -ayrı ampüller üçün vaxt yandıra bilərəm. Mən onları bitirdikcə geri qayıdacağam və bu Təlimatı yeniləyəcəyəm.
Addım 11: 3/16 yeniləyin, "daimi" qurun
Soyuq havada yaxşı bir fasilə əldə edərək, vahidi götürüb daha kiçik bir idarəediciyə köçürdüm (Trinket Pro istifadə etmək niyyətindəydim, amma başqa bir layihə tərəfindən tələb olunmayan bir Adafruit Metro Mini oturmuşdu), onu lehimlə bir Perma-Proto taxtası və hamısını daha yaxşı bir vəziyyətdə qoyun. Nə qədər etibarlı olduğuna əsaslanaraq, hardware nəzarətçisini yenidən yerinə qoymadım. Hələ sistemin idarə edəcəyi 3 lampa/röle 4 -dən istifadə edirəm. Bluetooth modulu lehimli bir başlıqdadır, buna görə başqa bir yerə ehtiyacım olarsa sökülə bilər. Yeni nəzarətçiyə keçmək üçün heç bir kod dəyişikliyi lazım deyildi - sadə bir yığma və yükləmə məni bir neçə dəqiqə ərzində işə saldı. (Metro Mini, Arduino Uno ilə eyni pinouta malikdir və eyni zamanda ATMega328 prosessorudur.)
Addım 12: 12/1/2018 yeniləyin - IoT -a xoş gəldiniz
Sistem bizim üçün qüsursuz işləyib. İki olduqca qışdan sonra donmuş borular YOXDUR. Əslində, sistem heç vaxt 2 -dən çox ampul yandırmadan boruları saxlaya bildi. Üçüncü ampulün onlayn olması gözəl bir sığorta idi, amma bu günə qədər buna ehtiyac duymamışıq.
Sistemin 3 -cü ilində Bluetooth modulu uğursuz oldu. Yeni bir ev də tikdik, buna görə də monitorinq sistemi Bluetooth diapazonundan xeyli kənarda. (Köhnə ev bir müddət qaldı, amma əbədi deyil.) Arada keçən müddətdə ESP8266 WiFi effektiv prosessoru ilə çox iş görmüşəm; həm Adafruit Feather formatında, həm də açıq mənbəli "NodeMCU" formatında. NodeMCU ümumiyyətlə Amazon -da təxminən 5 dollara tapıla bilər - toplu və/və ya AliExpress kimi birindən alsanız daha az.
Bu yeni versiya seriyalı interfeysi saxlayır, buna görə də hələ də Bluetooth modulu və ya birbaşa USB serial bağlantısı və əvvəlki python skripti ilə istifadə oluna bilər, lakin yeni versiyanın veb səhifəsi var. Yazıldığı kimi, aşağıdakı xüsusiyyətlərə malikdir:
Sərt kodlaşdırılmış WiFi məlumatlarını aradan qaldırmaq üçün bir WiFi şəbəkə meneceri.
Arduino IDE-dən istifadə edərək firmware proqramını havada yeniləmək qabiliyyəti (eyni WiFi şəbəkəsində olduğunuz müddətdə-cihaza USB yükləmə etdikdən sonra, OTA yeniləmələrinin işləməməsi üçün sıfırlamanın lazım olduğunu unutmayın). Lütfən, özünəməxsus olmaq üçün 6 -cı sətirdəki OTA şifrəsini dəyişdirin !!
Python skriptinin eyni məlumatları göstərən, hər dəqiqə avtomatik yenilənən bir veb səhifəsi. Səhifəyə heç bir təhlükəsizlik qoymadım, çünki yalnız ekrandır.
Yeni kodu burada tapa bilərsiniz. NodeMCU -ya keçərkən pin adlarının dəyişdiyini unutmayın.
Tövsiyə:
Döyüş Dronları Quadcopters Aka Əsl Dogfight Təcrübəsi: 8 Addım (Şəkillərlə)
Döyüş Dronları Quadcopters Aka Əsl Dogfight Təcrübəsi: Mənim "kitabım" a xoş gəldiniz #37Bazarda mövcud olan döyüş dronlarının bir az qarışıq olduğunu qəbul etməliyik. Kimin qazandığını və kimin məğlub olduğunu başa düşmək çox çətindir. Bir pilotsuz uçan aparat aşağı enəndə, digəri təqib edir (bir -birinə çırpılır
Taxta Venesiyalı Kor Nixie Saat Aka Saranın Kiçik Bacısı: 7 Addım (Şəkillərlə)
Taxta Venesiya Kor Nixie Saatı Aka Saranın Kiçik Bacısı: Bu yaxınlarda istifadə etmək istədiyim pəncərələrə sığmayacaq qədər böyük ikinci əl taxta Venesiya pərdələri tutdum. Ehtiyatlı bir şəkildə yenidən qurulduqdan sonra bir çox kəsilmiş hissə qaldım və gələcəkdə bir müddət saxladım
Space Invaders Saatı (Büdcədə!): 6 Addım (Şəkillərlə)
Space Invaders Clock (Büdcədə!): Bu yaxınlarda GeckoDiode tərəfindən sərin bir bina gördüm və dərhal özüm qurmaq istədim. Instructable Space Invaders Masaüstü Saatıdır və bunu oxuduqdan sonra nəzərdən keçirməyinizi məsləhət görürəm. Layihə demək olar ki, yalnız hissələrdən hazırlanmışdır
KerbalController: Roket Oyunu Kerbal Space Proqramı üçün Xüsusi İdarəetmə Paneli: 11 Addım (Şəkillərlə)
KerbalController: Roket Oyunu üçün Xüsusi İdarəetmə Paneli Kerbal Space Proqramı: Niyə bir KerbalController qurmalısınız? Yaxşı ki, düymələri basmaq və fiziki açarları atmaq siçanınıza basmaqdan daha əhəmiyyətli hiss edir. Xüsusilə böyük bir qırmızı təhlükəsizlik açarı olduqda, əvvəlcə qapağı açmalısınız, açarı vurun
Qaranlıqda parlayan Space Invaders Avizəsi: 16 addım (şəkillərlə)
Qaranlıqda Glow ilə Space İşğalçıları Avizesi: Yüksək üslub və retro sərin məkan istilaçıları çilçıraq və ya lampa etmək üçün 3D modelləşdirmə/çap, lazerlə kəsilmiş akril, qatran tökmə, UV reaktiv piqment, LEDlər və bəzi sadə naqillərdən istifadə edin. Lazer kublarından əyri künclər düzəltmək üçün gözəl bir hiylə daxil etdim