Përmbajtje:
- Hapi 1: Problemet për tu zgjidhur
- Hapi 2: Hardueri
- Hapi 3: Qasja
- Hapi 4: Instaloni atë
- Hapi 5: Kodi Arduino, Skica kryesore
- Hapi 6: Shënime mbi Kodin
- Hapi 7: Kodi Arduino, Klasat
- Hapi 8: Monitorimi i sistemit
- Hapi 9: Shkrimi Python
- Hapi 10: Ende për të bërë…
- Hapi 11: Përditësoni 3/16, Ndërtimi "i përhershëm"
- Hapi 12: Përditësimi 12/1/2018 - Mirë se vini në IoT
Video: Crawl Space Monitor (aka: Jo më shumë tuba të ngrirë !!): 12 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Uji në shtëpinë time vjen nga pusi im përmes një hapësire zvarritëse të pa ngrohur. Të gjitha hidraulikat e kuzhinës dhe banjës kalojnë gjithashtu në këtë hapësirë. (Hidrauliku i brendshëm ishte një shuplakë e mëvonshme në mesin e viteve '70 në këtë shtëpi!) Unë kam përdorur llamba nxehtësie në prizat termostatike "rezervuari i stokut" për të mbajtur një temperaturë mbi ngrirjen. Kishte disa probleme domethënëse me këtë aranzhim: 1 - Pa dukshmëri. Treguesi i parë i llambave të djegura janë tubat e ngrirë! 2 - Ndonjëherë prizat nuk mbyllen. Ajo që bëri për surpriza të këqija vjen fatura elektrike.3 - Pa hollësi. Mbajta 3 llamba "në internet" (gjithsej 750 vat) dhe ishte një zgjidhje gjithçka ose asgjë. (2 llamba nuk do ta trajtonin gjithmonë.) Pasi u prezantova me Arduino dhe pashë disa nga gjërat që njerëzit e tjerë po bënin me të, vendosa që do t'i jepja një rrotullim. Unë do ta pranoj menjëherë nga rryma se kam kapur paturpësisht dhe ndryshuar kodin e mostrës nga projektet e njerëzve të tjerë për ta bërë këtë punë, megjithëse në fund kam rishkruar shumicën e gjithçkaje. Fillimisht, kam ndërtuar këtë "WiFi Weather Station" që gjeta në Adafruit.com dhe e modifikoi atë. Në vend që të përditësoja një faqe në internet, unë përdorja Shërbimet e Uebit të Amazon për të më dërguar përditësime të statusit SMS. Unë gjithashtu shtova kontrollin e disa stafetëve 110V (https://www.adafruit.com/products/268). Atëherë u bëra "i zgjuar" dhe vendosa ta "forcoj" atë - mirë - diçka shkurtoi diçka dhe mora një thithje të tymit magjik blu. Gjithçka e skuqur … Duke mos pasur një tjetër dalje WiFi CC3000, i bëra gjërat ndryshe këtë herë. Unë e ndërtova atë për t'u monitoruar në mënyrë interaktive përmes ndërfaqes serike dhe më pas shtova një ndërfaqe EZ-Link Bluetooth FTDI. (Nuk e tërheq më laptopin nën shtëpi për përditësime të softuerit !!!) Unë gjithashtu ndërtova një ndërfaqe Python që lidhet me njësinë përmes Bluetooth, e pyet atë rregullisht dhe shfaq informacionin e statusit në Mac tim. (Ekziston gjithashtu një "ndërfaqe njerëzore" që mund të arrihet nga çdo softuer terminal emulimi.) Si rezultat i rishkrimit dhe heqjes së të gjithë kodit WiFi dhe RTC, projekti është zvogëluar në madhësi nga mbi 29K në mezi 10K. Ajo gjithashtu ka përmirësuar besueshmërinë deri në atë masë saqë mbikëqyrësi i harduerit nuk është aktivizuar fare në dy javët që po funksionon dhe unë kam ndryshuar.
2/17/16 Përditësim/shënim: Në një përpjekje për të marrë formatimin e duhur në disa nga kodi (veçanërisht vendosja e kodit Python), gjërat shkuan nga e shëmtuara në të papërdorshme. Jam i sigurt se çështja është diku në fundin tim, dhe do të përpiqem ta kuptoj. Deri atëherë, unë kam shtuar lidhje me skedarët e kodit përmes DropBox. Ato duhet të jenë të arritshme për këdo. Nëse jo, ju lutem më tregoni që të mund t’ju marr tek ju në një mënyrë tjetër!
Hapi 1: Problemet për tu zgjidhur
Sistemi duhej të bënte gjërat e mëposhtme për mua: 1 - monitoroni temperaturën në hapësirën e zvarritjes. 2 - ndizni llambat e nxehtësisë sipas nevojës për të ruajtur temperaturën mbi ngrirjen. 3 - kur nuk funksiononi, provoni periodikisht llambat dhe më jepni shikueshmëri të statusit të tyre.4 - më jepni shikueshmëri të temperaturës dhe statusit të sistemit, duke përfshirë: - a po funksionon sistemi? - sa është temperatura TANI? - cila është temperatura më e ftohtë? - sa llamba funksionuan? - sa llamba testohen mirë? - cila është koha ime totale në "minuta të lehta" (aka "koha e djegies")? 5 - bëni të gjitha sa më sipër pa pasur nevojë të zvarritem nën shtëpi !!! Vendosa që mënyra më e lehtë për të testuar funksionimin e llambës ishte me një sensor drite. Disa çështje të tjera që doja të trajtoja ishte koha e ciklit në drita. Shumë ngadalë, dhe po digj energji elektrike të panevojshme. Shumë shpejt, dhe unë rrezikoj t'i djeg ato nga të gjitha ndezjet dhe fikjet me ngrohjen dhe ftohjen përkatëse.
Hapi 2: Hardueri
2 llamba nxehtësie 250 vat 1 Llambë pune 500 vat (një nga llambat e mia të nxehtësisë u zhduk, kështu që kjo është një stand-in) Arduino UnoDHT22 Sensori i temperaturës/lagështisë GA1A12S202 sensor ndriçimi Powerswitch 110V reletë Bluefruit EZ-Link Serial Interface & Programmer Rast i teknologjisë së lartë (gome me madhësi sanduiçi) Gjëndër kabllo 1/2 pjatë buke Pjatë akrilike për breadboard dhe Arduino Tela bluzë të përzgjedhur. "Rripi i punëtorisë" Coleman me 5 dalje Kam përdorur gjithashtu një Adafruit Trinket si një roje hardware, por është vërtetuar se është e panevojshme (natyrisht, natyrisht!) Dhe unë shkroi një udhëzues të veçantë për të, kështu që nuk do ta përsëris këtu. Gripi Coleman ishte një gjetje e bukur, pasi më dha 4 priza për llambat e mia të ngrohjes PLUS një prizë për furnizimin me energji Arduino pa ndonjë ndarës shtesë ose shirita të energjisë të përfshirë. Vlerësuar me plot 15 Amper me një ndërprerës dhe një ndërprerës të brendshëm, ai mund të trajtojë gjithçka që mund të tërheq përmes një prizë të vetme.
Hapi 3: Qasja
Ndërsa sistemi është i aplikuar i ndërtuar për t'u ulur në pritje dhe për të bërë disa gjëra relativisht ngadalë, ajo që nuk doja të bëja ishte të ndërtoja një sistem ku kontrolluesi ishte ulur me cikle të vonuara () duke mos reaguar. Unë gjithashtu doja të isha në gjendje të ndryshoja parametrat e konfigurimit sa më afër fluturimit të mundja-sigurisht jo në një mënyrë që kërkonte rishkrim të kodit ose kryerjen e operacioneve masive të kërkimit dhe zëvendësimit të burimit. gjeti artikujt më të shkëlqyer të Bill Earl mbi "Multitasking the Arduino" (filloni këtu: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) dhe u zë. Duke krijuar klasa "kohëmatës" dhe "ngrohës" unë kam qenë në gjendje të bëj të gjitha funksionet e kohës që doja pa përdorur vonesë () (me vetëm disa përjashtime) dhe të konfiguroja llambat ("ngrohësit") me një linjë të vetme kodi për secilën nje
Hapi 4: Instaloni atë
Diagrami Fritzing nuk përfshin Bluefruit EZ-LinkArduino 5V & Ground në autobusin e bukës DHT22 pin 1 deri në 5V DHT22 pin 2 në Arduino pin 7DHT22 pin 4 në autobusin tokësor 10K rezistencë midis kunjave DHT22 1 dhe 2GA1A12S202 VCC pin 5V në G2 busGA1A12S202 PIN OUT në Arduino A0Arduino 3V pin në Arduino AREF pinRelay Ground çon në autobus GroundRelay 1 fuqia elektrike çon në Arduino A1Relay 2 në fuqinë Arduino A2Relay 3 në fuqinë Arduino A3Relay 4 priza e energjisë në Arduino A4 Me E vetmja që është kritike është lidhja OUT në sensorin e dritës që duhet të shkojë në një kunj analog. Ky pin-out do të funksionojë me kodin tim siç është shkruar. Nëse jeni duke përdorur mbikëqyrësin e harduerit, do të shihni që kodi im vendos rrahjet e zemrës në kunjin Arduino 2.
Hapi 5: Kodi Arduino, Skica kryesore
CrawlSpace_monitor.ino
Hapi 6: Shënime mbi Kodin
Linjat e mëposhtme të kodit krijojnë rastet e ngrohësit dhe përcaktojnë parametrat e funksionimit: // Ngrohës (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minuta), luxDelta) Ngrohës ngrohës 1 = Ngrohës (A1, 38, 43, 20, 1440, 5); Ngrohës ngrohës2 = Ngrohës (A2, 36, 41, 20, 1440, 5); Ngrohës ngrohës3 = Ngrohës (A3, 34, 39, 20, 1440, 5); Ngrohës ngrohës4 = Ngrohës (A4, 32, 37, 20, 1440, 5); (Dhe po, i përkufizova të 4 ngrohësit edhe pse jam duke punuar vetëm 3 për momentin. Do të më duhej të merrja një stafetë tjetër, por pastaj duke shtuar ngrohësin e 4 -të do të të jetë aq e thjeshtë sa ta lidhësh.) Unë i ngre temperaturat e tyre të shkaktimit, duke filluar nga 38 gradë për të parën dhe duke përfunduar në 32 për 4-in joekzistent. Një nga gjërat që gjeta kur fillova të filloj këtë së bashku ishte se më duhej të jepja një diapazon mbi temperaturën, si dhe të përcaktoja një "kohë djegie" minimale, ose isha duke ndezur dhe fikur dritat e biçikletës si i çmendur. Këtu i jap secilës prej tyre një përhapje prej 5 gradë, si dhe një kohë minimale të djegies prej 20 minutash. Vendosa intervalin e provës në 24 orë dhe vendosa 5 lux si leximi minimal i dritës që më duhej për të përcaktuar se një llambë ishte ende duke punuar. Pothuajse gjithçka që kërkon konfigurim është pikërisht këtu në këto 4 rreshta të kodit.
Hapi 7: Kodi Arduino, Klasat
Kam krijuar 3 klasa për këtë projekt. Ata ishin "timer", "ngrohës" dhe "akumulator". Me pak më shumë mendim duhet të jem në gjendje të palos akumulatorin në kohëmatës, por ende nuk e kam bërë. Këtu ata janë të plotë: ngrohës.h
kohëmatësi.h
akumulatori.h
Hapi 8: Monitorimi i sistemit
Kam krijuar një ndërfaqe të vetme për dy monitorë të veçantë. Shtë një sesion interaktiv mbi tastierën serike. Në rastin tim unë jam duke përdorur Bluefruit EZ-Link kështu që mund të hyj në sistem pa u zvarritur nën shtëpi ose duke u përpjekur të kap një kabllo USB në mes të trarëve të dyshemesë! Një përfitim i shtuar i EZ-Link është se unë mund të ngarkoj kodin e ri të programit në Arduino gjithashtu përmes Bluetooth. Ndërfaqja "njerëzore" mund të arrihet (Bluetooth ose kabllo fizike) me çdo softuer terminal emulimi, përfshirë serialin e Arduino IDE monitoron. Kur lidheni fillimisht, nuk ka përgjigje, por shtypja e tastit "u" (për "përditësim") dhe "t" (për "test") do t'ju japë daljen e treguar në pamjen e ekranit. "m" ("monitor") dhe "s" ("sys check") ju japin të njëjtat të dhëna, por në një format shumë më pak të lexueshëm. Këto synohen të "fshihen" nga një program tjetër për shfaqje automatike. Unë bashkova një skenar Python që e bën këtë. Çdo çelës tjetër mbledh mesazhin e gabimit të shfaqur. Ju do të shihni një vlerë për "kohën e djegies" - mendoni për këtë si "minuta llambë" - 1 llambë për 10 minuta = 10 minuta, 3 llamba për 10 minuta = 30 minuta.
Hapi 9: Shkrimi Python
crawlspace_gui.py
Hapi 10: Ende për të bërë…
Mund të mos jetë e bukur, ose e përsosur, por është efektive dhe po dëshmon se është e besueshme. DHE, unë nuk kam pasur ndonjë problem të tubave të ngrirë akoma këtë dimër !!! Unë kam një listë të goditur të gjërave për të bërë. Sigurisht, tani që funksionon, unë mund ose nuk mund të arrij kurrë për të arritur shumicën e këtyre artikujve: Merrni Bluetooth -in në një nga Raspberry Pi -të e mia, në mënyrë që të krijoj një monitor të dedikuar. Mësoni pak më shumë Python - pastaj pastroni Python ndërfaqja. Ajo ndarje e elementeve nuk është me qëllim dhe nuk e kuptoj pse është aty. Shtoni një ndërfaqe në diçka si shërbimi IO i Adafruit, në mënyrë që ta monitoroj nga kudo. Shtoni paralajmërim mesazhi me tekst. Kaloni te një kontrollues më i vogël (ndoshta një Metro Mini apo Trinket Pro?), Stafetë më pak të shtrenjtë dhe paketim më të mirë. Hiqeni nga një dërrasë buke dhe mbi një tabelë "Perma Proto". Parametrat e konfigurimit në EEPROM. Një ndërfaqe më e grimcuar që do të tregojë - cilat llamba janë të mira, dhe ndoshta edhe djeg kohë për llamba individuale. Ndërsa i përfundoj ato do të kthehem dhe do ta përditësoj këtë Udhëzues.
Hapi 11: Përditësoni 3/16, Ndërtimi "i përhershëm"
Duke marrë një pushim të mirë në motin e ftohtë, unë e kam marrë njësinë dhe e kam transferuar në një kontrollues më të vogël (kisha ndërmend të përdorja një Trinket Pro, por kisha një Adafruit Metro Mini ulur përreth pa kërkuar nga ndonjë projekt tjetër), e bashkova atë një tabelë Perma-Proto, dhe vendosini të gjitha në një rast më të mirë. Bazuar në atë se sa i besueshëm ka qenë, unë nuk e ktheva mbikëqyrësin e harduerit në të. Unë jam ende duke përdorur vetëm 3 llamba/stafetë ku sistemi do të trajtojë 4. Moduli Bluetooth është në një kokë të bashkuar, kështu që mund të hiqet nëse më nevojitet diku tjetër. Nuk kishte asnjë ndryshim të kodit të nevojshëm për të kaluar në kontrolluesin e ri - një rikompilim dhe ngarkesë e thjeshtë më bëri të punoja brenda pak minutash. (Metro Mini ka një pinout identik si Arduino Uno dhe është gjithashtu një procesor ATMega328.)
Hapi 12: Përditësimi 12/1/2018 - Mirë se vini në IoT
Sistemi ka funksionuar në mënyrë të përsosur për ne. Pas dy dimrave mjaft të ashpër, JO tuba të ngrirë. Në fakt, sistemi ishte në gjendje të mbante tubat pa djegur më shumë se 2 llamba. Të kesh llambën e tretë në internet ishte një sigurim i mirë, por ne nuk e kemi pasur ndonjëherë nevojë deri më sot.
Duke ardhur në vitin 3 për sistemin, moduli Bluetooth dështoi. Ne gjithashtu ndërtuam një shtëpi të re, kështu që sistemi i monitorimit është jashtë kufijve të Bluetooth. (Shtëpia e vjetër po qëndron zgjuar për një kohë, por jo përgjithmonë.) Në kohën e ndërhyrë, unë kam bërë shumë me procesorin e aktivizuar WiFi ESP8266; si në formatin Adafruit Feather ashtu edhe në formatin me burim të hapur "NodeMCU". NodeMCU në përgjithësi mund të gjendet në Amazon për rreth 5 dollarë - shumë më pak nëse blini me shumicë dhe/ose nga dikush si AliExpress.
Ky version i ri ruan ndërfaqen serike, kështu që mund të përdoret akoma me një modul Bluetooth ose lidhje serike të drejtpërdrejtë USB dhe skriptin e mëparshëm python, megjithatë, versioni i ri ka një ndërfaqe të faqes në internet. Siç është shkruar, ai përfshin veçorinë e mëposhtme:
Një menaxher i rrjetit WiFi për të eleminuar kredencialet WiFi të koduara me vështirësi.
Aftësia për të azhurnuar firmware-in në ajër duke përdorur Arduino IDE (për sa kohë që jeni në të njëjtin rrjet WiFi-vini re se pasi të keni ngarkuar USB në pajisje, nevojitet një rivendosje para se të funksionojnë përditësimet OTA). JU LUTEM ndryshoni fjalëkalimin OTA në linjën 6 për të qenë unik për ju !!
Një faqe në internet që shfaq të njëjtat të dhëna që bën skripti python, me një rifreskim automatik çdo minutë. Unë nuk vendosa asnjë lloj sigurie në faqe, sepse është vetëm për shfaqje.
Kodin e ri mund ta gjeni këtu. Vini re se emrat e pin ndryshojnë kur lëvizni në NodeMCU.
Recommended:
PCB e gjithanshme I/O Extender për të kontrolluar shumë tuba Nixie me I2C: 9 hapa (me fotografi)
PCB e gjithanshme I/O Extender për të kontrolluar shumë tuba Nixie Me I2C: Aktualisht ka shumë interes për të sjellë në jetë tubat e cilësisë së mirë nixie. Shumë komplete të orës së tubit nixie janë në dispozicion në treg. Duket se ka pasur edhe një tregti të gjallë në stokun e vjetër të tubave nixie rusë. Gjithashtu këtu në Instructables atje
Rritja e më shumë marule në më pak hapësirë ose Rritja e marule në hapësirë, (më shumë ose më pak) .: 10 hapa
Rritja e më shumë Marule në Më pak Hapësirë Ose … Rritja e Marule në Hapësirë, (Më shumë ose Më Pak) .: Kjo është një paraqitje profesionale për Konkursin Growing Beyond Earth, Maker, i paraqitur përmes Instructables. Nuk mund të isha më i ngazëllyer që të dizajnoja për prodhimin e të korrave në hapësirë dhe të postoja Instructable -in tim të parë. Për të filluar, konkursi na kërkoi të
Fije përçuese brenda një tubi të paragjykimit të pëlhurës Aka tuba të përcjellshmërisë: 10 hapa
Fije përçuese brenda një tubi të paragjykimit të pëlhurës Aka Tubes of Conductiveness: Një metodë e lidhjes së fijeve përçuese në pëlhurë. Aplikim i shkëlqyeshëm kur nuk mundeni, ose nuk dëshironi, të qepni fijet përçuese në veshjen tuaj. Dëshironi më shumë eTextile How-To DIY video, mësime dhe projekte eTextile? Pastaj vizitoni The eTextile Loun
Si të Fikni Shumë Shumë Një IPod Nano të Gjeneratës së Parë: 6 Hapa
Si të Fikni Shumë Shumë Një IPod Nano të Gjeneratës së Parë: E urrej kur më mbaron jeta e baterisë në nano tim …. kjo do t'ju tregojë se si t'i jepni fund …… gjithashtu ky është udhëzimi im i parë
Rregulloni Zune -n tuaj të ngrirë 30 !!: 4 hapa
Fiksoni Zune -n tuaj të ngrirë 30 !!: Nëse si unë, Zune juaj e dashur u mbyll mbrëmë dhe thjesht nuk mund të prisni që Microsoft të lëshojë një rregullim zyrtar, atëherë kjo është për ju! Oh dhe Gëzuar Vitin e Ri! Faleminderit Surbo në i -hacked.com për pjesën më të madhe të punës. Mospranimi: Unë nuk pranoj asnjë përgjegjësi