Mundarija:

Crawl Space Monitor (boshqa muzlatilgan quvurlar yo'q!): 12 qadam (rasmlar bilan)
Crawl Space Monitor (boshqa muzlatilgan quvurlar yo'q!): 12 qadam (rasmlar bilan)

Video: Crawl Space Monitor (boshqa muzlatilgan quvurlar yo'q!): 12 qadam (rasmlar bilan)

Video: Crawl Space Monitor (boshqa muzlatilgan quvurlar yo'q!): 12 qadam (rasmlar bilan)
Video: Хорошо в деревне летом ► 1 Прохождение Resident Evil 4 (Remake) 2024, Noyabr
Anonim
Crawl Space Monitor (aka: Endi muzlatilgan quvurlar yo'q !!)
Crawl Space Monitor (aka: Endi muzlatilgan quvurlar yo'q !!)

Mening uyimga suv quduqdan isitilmaydigan o'rash orqali keladi. Hamma oshxona va hammom sanitariya -tesisatlari bu bo'shliqdan o'tadi. (Uy ichidagi sanitariya-tesisat bu uyning 70-yillari o'rtalarida amalga oshirilgan!) Men haroratni muzlashdan yuqori ushlab turish uchun "zaxirali tank" termostatik vilkalaridagi issiqlik lampalarini ishlatardim. Bu tartibda bir nechta muhim muammolar bor edi: 1 - Ko'rinmaslik. Yonib ketgan lampochkalarning birinchi belgisi muzlatilgan quvurlardir! 2 - Ba'zida vilkalar o'chmaydi. Buning natijasida elektr hisobi yoqimsiz kutilmagan hodisalarga sabab bo'ladi. Men 3 ta lampochkani "onlayn" (jami 750 vatt) ushlab turdim va bu hammasi ham hech narsaga yaramaydi. (2 ta lampochka har doim ham shunday bo'lavermaydi.) Arduino bilan tanishganimdan so'ng, boshqa odamlar u bilan nima qilayotganini ko'rib, men uni aylantirib berishga qaror qildim. Men o'z ishimni bajarish uchun boshqa odamlarning loyihalaridan namuna kodini uyatsiz yig'ib qo'yganimni tan olaman, lekin oxir-oqibat men hamma narsani qayta yozdim. Dastlab men o'zim topgan "WiFi ob-havo stantsiyasini" qurdim. Adafruit.com va uni o'zgartirdi. Veb -saytni yangilash o'rniga, men SMS -xabarlarni yuborish uchun Amazon veb -xizmatlaridan foydalandim. Men, shuningdek, ba'zi 110V o'rni nazoratini qo'shdim (https://www.adafruit.com/products/268). Keyin men "aqlli" bo'ldim va uni "qo'pol" qilishga qaror qildim - yaxshi - nimadir nimanidir qisqartirdi va men sehrli ko'k tutunni oldim. Hammasi qovurilgan … Boshqa CC3000 WiFi uzilishi bo'lmaganida, men bu safar boshqacha ish qildim. Men uni ketma-ket interfeys orqali interaktiv nazorat qilish uchun qurdim va keyin EZ-Link Bluetooth FTDI interfeysini qo'shdim. (Dasturiy ta'minotni yangilash uchun noutbukni uy ostiga sudrab yurishning hojati yo'q !!!) Shuningdek, men qurilmaga Bluetooth orqali ulanadigan, uni muntazam ravishda so'rab turadigan va Mac -dagi holat ma'lumotlarini ko'rsatadigan Python interfeysini qurdim. (Bundan tashqari, "inson interfeysi" mavjud, unga har qanday terminal emulyatsion dasturiy ta'minot kirishi mumkin.) Qayta yozish va barcha WiFi va RTC kodlarini olib tashlash natijasida loyiha 29K dan 10Kgacha oshdi. Bu, shuningdek, bir necha hafta mobaynida apparat kuzatuvchisi umuman ishga tushmagan va men sozlagan bo'lsam, ishonchliligini oshirdi.

17.02.16 Yangilash/eslatma: Ba'zi kodlarni to'g'ri formatlash uchun (ayniqsa, Python kodining cho'zilishi), narsalar yomondan yaroqsiz bo'lib qoldi. Ishonchim komilki, bu masala bir joyda tugadi va men buni tushunishga harakat qilaman. Ungacha men DropBox orqali kodli fayllarga havolalar qo'shganman. Ular hamma uchun ochiq bo'lishi kerak. Agar yo'q bo'lsa, iltimos, menga xabar bering, shunda men ularni sizga boshqa yo'l bilan etkazaman!

1 -qadam: Muammolarni hal qilish

Tizim men uchun quyidagi ishlarni bajarishi kerak edi: 1 - o'rash joyidagi haroratni kuzatish 2 - muzlashdan yuqori haroratni ushlab turish uchun kerak bo'lganda issiqlik lampalarini yoqish.3 - ishlamayotgan paytda lampochkalarni vaqti -vaqti bilan tekshirib turing va menga ko'rinishni bering. Menga harorat va tizim holati to'g'risida ma'lumot bering, shu jumladan: - tizim ishlayaptimi? -Hozir harorat qanday? - Harorat eng sovuq nima? - qancha lampochka yugurdi? - qancha lampochka yaxshi sinovdan o'tgan? - "Yengil daqiqalarda" umumiy vaqtim (aka "kuyish vaqti")? 5 - yuqorida aytilganlarning hammasini uyning tagida emaklamasligim kerakmi? Men lampochkaning ishlashini tekshirishning eng oson usuli bu yorug'lik sensori, men hal qilmoqchi bo'lgan boshqa muammolar - bu chiroqlardagi aylanish vaqti. Juda sekin, va men keraksiz elektrni yoqyapman. Juda tez, va men ularni yoqish va o'chirish bilan bog'liq isitish va sovutish bilan yonib ketish xavfiga duch kelaman.

2 -qadam: Uskuna

Uskuna
Uskuna

2 250 vattli issiqlik lampalari1 500 vattli ishchi chiroq (mening issiqlik lampalarimdan biri g'oyib bo'ldi, shuning uchun bu stend) Arduino UnoDHT22 harorat sensoriGA1A12S202 yorug'lik sensori PowerSwitch 110V o'rni Moviy EZ-Link seriyali interfeysi va dasturchisi Yuqori texnologiyali quti (sendvich o'lchamli Rubbermaid tubub)) Kabel gipsi 1/2 o'lchovli non taxtasi Non paneli va Arduino uchun akril plastinka. Ajratilgan o'tish simlari. Coleman 5-chiquvchi "ustaxona tasmasi" Men Adafruit Trinket-ni apparat qo'riqchisi sifatida ishlatardim, lekin bu kerak emasligini isbotladi (albatta jinx!) Va men Men bu haqda alohida ko'rsatma yozdim, shuning uchun bu erda takrorlamayman. Coleman cho'chqa go'shti juda yaxshi topilma bo'ldi, chunki u menga PLUS issiqlik lampalarim uchun 4 ta rozetkani Arduino quvvat manbai uchun qo'shimcha ajratgichlar yoki elektr tasmalarisiz berdi. To'liq 15 amperli kalit va ichki to'xtatuvchiga ega, u bitta rozetkadan tortib oladigan hamma narsani boshqarishi mumkin edi.

3 -qadam: yondashuv

Tizim kutish va ba'zi narsalarni nisbatan sekin bajarish uchun qurilgan dastur bo'lsa -da, men tekshirishni kechiktiradigan () tsikllarga javob bermaydigan tizimni qurishni xohlamadim. Men, shuningdek, konfiguratsiya parametrlarini imkon qadar tez o'zgartirish imkoniyatiga ega bo'lishni xohlardim-bu, albatta, kodni qayta yozishni yoki manbada ommaviy qidirish va almashtirish operatsiyalarini talab qilmaydigan tarzda. Bill Erlning "Arduino-ni ko'p vazifali qilish" haqidagi eng zo'r maqolalarini topdi (bu erda boshlang: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) va band bo'ldi. "Taymer" va "isitgich" sinflarini yaratish orqali men xohlagan vaqtni belgilash funktsiyalarini kechiktirmasdan ishlatishga muvaffaq bo'ldim () (faqat bir nechta istisnolar bilan) va lampochkalarni ("isitgichlar") har bir kod uchun bitta satr bilan sozladim. bitta

4 -qadam: uni ulash

Uni ulash
Uni ulash
Uni ulash
Uni ulash

Fritzing diagrammasiga Bluefruit EZ-LinkArduino 5V & Ground uchun non avtobusiga DHT22 pin 1 dan 5V gacha avtobus DHT22 pin 2 dan Arduino pin 7DHT22 pin 4 ga Toprak shinasi 10K qarshilik DHT22 pin 1 va 2GA1A12S202 VCC pin 5V dan GGA1A12S202 gacha. BusGA1A12S202 OUT pinli Arduino A0 ga Arduino 3V pinli Arduino AREF piniga Relay Ground Ground avtobusiga olib keladi 1 o'rni Arduino A1Relay 2 quvvat simini Arduino A2Relay 3 ga olib keladi Arduino A3Relay 4 quvvat simini Arduino A4 ga o'zgartiradi.. Yorug'lik sensori OUT simining analog piniga o'tishi juda muhim. Bu pin-out mening kodim bilan yozilgan tarzda ishlaydi, agar siz apparat nazoratidan foydalansangiz, mening kodim Arduino pin 2-da yurak urishini o'chirganini ko'rasiz.

5 -qadam: Arduino kodi, asosiy eskiz

CrawlSpace_monitor.ino

6 -qadam: Kodeks haqida eslatmalar

Quyidagi kod satrlari isitgichning misollarini yaratadi va ish parametrlarini aniqlaydi: // Isitgich (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (daqiqa), luxDelta) Isitgich isitgich1 = Isitgich (A1, 38) Isitgich2 = Isitgich (A2, 36, 41, 20, 1440, 5); Isitgich3 = Isitgich (A3, 34, 39, 20, 1440, 5); Isitgich4 = Isitgich A4, 32, 37, 20, 1440, 5); oddiygina ulang.) Men ularning tetik haroratini birdaniga 38 gradusdan boshlayman va 4-chi uchun 32 bilan tugayman. Men bu narsalarni birlashtira boshlaganimda topgan narsalardan biri shundaki, men harorat oralig'ini berishim kerak, shuningdek minimal "yonish vaqtini" belgilashim kerak edi, yoki men velosipedda xuddi aqldan ozgan kabi o'chib -o'chib turardim. Bu erda men ularning har biriga 5 graduslik tarqalish va 20 daqiqalik minimal yonish vaqtini beraman. Men sinov oralig'ini 24 soatga qo'ydim va 5 lyuksni lampochkaning ishlashini aniqlash uchun kerak bo'lgan minimal yorug'lik ko'rsatkichi sifatida o'rnatdim. Konfiguratsiyaga muhtoj bo'lgan deyarli hamma narsa bu kodning 4 satrida.

7 -qadam: Arduino kodi, sinflar

Men ushbu loyiha uchun 3 ta sinf yaratdim. Ular "taymer", "isitgich" va "akkumulyator" edi. Biroz o'ylab, men akkumulyatorni taymerga aylantirishim kerak edi, lekin hozircha yo'q. Bu erda ular to'liq: isitgich.h

taymer.h

akkumulyator.h

8 -qadam: tizimni kuzatish

Tizim monitoringi
Tizim monitoringi

Men ikkita alohida monitor uchun bitta interfeys yaratdim. Bu ketma -ket konsolda interaktiv sessiya. Mening holatimda men Bluefruit EZ-Link-dan foydalanayapman, shuning uchun men tizim ostida uyning tagida emaklamasdan yoki polga kirgizlar orasiga USB kabelini o'tkazib yubormasdan kira olaman! EZ-Link-ning yana bir afzalligi shundaki, men yangi dastur kodini Arduino-ga Bluetooth orqali yuklay olaman. "Inson" interfeysiga har qanday terminal emulyatsiya dasturi, jumladan Arduino IDE-ning seriyali kirish mumkin (Bluetooth yoki jismoniy kabel). monitor. Dastlab ulanganda, hech qanday javob yo'q, lekin "u" ("yangilash" uchun) va "t" ("sinov" uchun) tugmachalarini bosish sizga ekran tasvirida ko'rsatilgan natijani beradi. "m" ("monitor") va "s" ("sys check") sizga bir xil ma'lumotlarni beradi, lekin juda kam o'qiladigan formatda. Bular avtomatik ko'rsatish uchun boshqa dastur tomonidan "qirib tashlash" uchun mo'ljallangan. Men buni amalga oshiradigan Python skriptini yig'dim. Boshqa har qanday kalit xato xabarini ko'rsatadi. Siz "yonish vaqti" qiymatini ko'rasiz - "lampochka daqiqalari" kabi o'ylab ko'ring - 1 lampochka 10 daqiqa = 10 daqiqa, 3 lampa 10 daqiqa = 30 daqiqa.

9 -qadam: Python skript

Python skript
Python skript

crawlspace_gui.py

10 -qadam: Hali ham qilish kerak …

Bu chiroyli yoki mukammal bo'lmasligi mumkin, lekin u samarali va o'zini ishonchli ekanligini isbotlamoqda. VA, bu qishda menda muzlatilgan quvur muammosi yo'q edi !!! Menda bajariladigan ishlar ro'yxati bor. Albatta, endi u ishlayotganda, men bu elementlarning ko'pchiligiga erisha olaman yoki bo'lmasligim mumkin: Bluetooth -ni Raspberry Pi -ning birida ishga tushiring, shunda men maxsus monitorni yarata olaman. interfeys. Bu elementlarni ajratish maqsadga muvofiq emas va men nima uchun u erda ekanligini tushunmayapman. Adafruit -ning IO xizmatiga interfeysni qo'shish uchun uni istalgan joydan kuzatishim mumkin. Matnli xabarni ogohlantirishni qo'shish. Mini yoki Trinket Pro?), Arzonroq rölelar va yaxshi qadoqlash. Uni taxtadan olib, "Perma Proto" taxtasiga qo'ying. EEPROM -da konfiguratsiya parametrlari. Qaysi lampochkalarning yaxshi ekanligini ko'rsatadigan yanada aniqroq interfeys. Ehtimol, hatto alohida lampalar uchun vaqtni ham yoqib yuborishim mumkin, men ularni tugatgandan so'ng, men qaytib kelaman va bu ko'rsatmani yangilayman.

11 -qadam: 3/16 yangilang, "doimiy" Build

Yangilanish 3/16,
Yangilanish 3/16,
Yangilanish 3/16,
Yangilanish 3/16,
Yangilanish 3/16,
Yangilanish 3/16,

Sovuq havoda yaxshi tanaffus qilib, men qurilmani oldim va uni kichikroq boshqaruvchiga o'tkazdim (men Trinket Pro -ni ishlatmoqchi edim, lekin boshqa loyiha talab qilmagan Adafruit Metro Mini -da o'tirgan edim), uni lehimlab qo'ydim. Perma-Proto taxtasi va hamma narsani yaxshiroq holatda joylashtiring. Bu qanchalik ishonchli ekanligiga asoslanib, men apparatni qo'riqchi kuchini unga qayta qo'ymadim. Men hali ham faqat tizimni boshqaradigan 3 lampa/o'rni ishlataman. Bluetooth moduli lehimli sarlavhada, shuning uchun agar boshqa joyga kerak bo'lsa, uni olib tashlash mumkin. Yangi boshqaruvchiga o'tish uchun hech qanday kod o'zgarishi kerak emas edi - oddiy qayta kompilyatsiya qilish va yuklash meni bir necha daqiqada ishga tushirdi. (Metro Mini Arduino Uno bilan bir xil pinoutga ega va ATMega328 protsessoridir.)

12 -qadam: 2018 yil 1 -dekabrni yangilash - IoTga xush kelibsiz

Tizim biz uchun mukammal ishladi. Ikki qattiq qishdan keyin muzlatilgan quvurlar yo'q. Aslida, tizim hech qachon 2 ta lampochkadan ortiq yoqilmasdan quvurlarga xizmat ko'rsatishga qodir edi. Uchinchi lampochkaning Internetda bo'lishi yaxshi sug'urta edi, lekin biz hech qachon unga muhtoj bo'lmaganmiz.

Tizim uchun 3 -yilga kelib, Bluetooth moduli muvaffaqiyatsiz tugadi. Biz yangi uy ham qurdik, shuning uchun monitoring tizimi Bluetooth diapazonidan ancha tashqarida. (Eski uy bir muncha vaqt turibdi, lekin abadiy emas.) O'tgan vaqt ichida men ESP8266 WiFi yoqilgan protsessor bilan ko'p ish qildim; ham Adafruit Feather formatida, ham ochiq manbali "NodeMCU" formatida. NodeMCU -ni odatda Amazonda taxminan 5 dollarga topish mumkin - agar siz katta hajmda va/yoki AliExpress kabi birovdan sotib olsangiz.

Bu yangi versiya ketma-ket interfeysni saqlaydi, shuning uchun uni Bluetooth moduli yoki to'g'ridan-to'g'ri USB ketma-ket ulanishi va oldingi python skriptida ishlatish mumkin, biroq yangi versiyada veb-sahifa interfeysi mavjud. Yozilganidek, u quyidagi xususiyatlarni o'z ichiga oladi:

Wi-Fi tarmoq menejeri qattiq kodli WiFi ma'lumotlarini yo'q qiladi.

Arduino IDE yordamida dasturiy ta'minotni havoda yangilash qobiliyati (agar siz bir xil Wi-Fi tarmog'ida bo'lsangiz-shuni esda tutingki, qurilmaga USB orqali yuklagandan so'ng, OTA yangilanishlari ishlamasdan oldin sozlamalarni tiklash kerak bo'ladi). Iltimos, sizga xos bo'lishi uchun 6 -satrdagi OTA parolini o'zgartiring !!

Python skriptida xuddi shu ma'lumotlarni ko'rsatadigan veb -sahifa, har daqiqada avtomatik yangilanadi. Men sahifaga hech qanday xavfsizlik qo'ymadim, chunki u faqat displeyda.

Siz bu erda yangi kodni topishingiz mumkin. NodeMCU -ga o'tishda pin nomlari o'zgarishini unutmang.

Tavsiya: