Sisukord:
- Samm: lahendatavad probleemid
- Samm: riistvara
- 3. samm: lähenemine
- Samm: ühendage see kokku
- Samm: Arduino kood, põhiskeem
- 6. samm: märkused koodeksi kohta
- Samm: Arduino kood, klassid
- 8. samm: süsteemi jälgimine
- Samm: Pythoni skript
- Samm: veel teha…
- 11. toiming: värskendage 3/16, "püsivat" ehitust
- 12. samm: värskendage 01.02.2018 - Tere tulemast asjade internetti
Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Vesi mu majja tuleb minu kaevust läbi soojendamata roomamisruumi. Sellest köögist läbib ka kogu köögi ja vannitoa torustik. (Siseveetorustik oli selle maja 70-ndate aastate keskel järelemõtlemine!) Olen kasutanud soojuslampe "varumahuti" termostaatpistikutel, et hoida temperatuuri üle külmumise. Selle paigutusega oli paar olulist probleemi: 1 - nähtavus puudub. Põlenud pirnide esimene märk on külmunud torud! 2 - Mõnikord ei lülitu pistikud välja. See tekitas vastikuks üllatuseks elektriarve. 3 - Üksikasjalikkus puudub. Ma hoidsin 3 pirni "võrgus" (kokku 750 vatti) ja see oli kõik või mitte midagi lahendust. (2 pirni ei saaks sellega alati hakkama.) Pärast Arduinoga tutvumist ja nähes mõningaid asju, mida teised inimesed sellega tegid, otsustasin, et annan sellele keerise. Tunnistan otse korstnast välja, et olen selle töö tegemiseks häbematult teiste projektide näidiskoodi näpistanud ja kohendanud, kuigi lõpuks olen enamiku kõik ümber kirjutanud. Esialgu ehitasin selle "WiFi ilmajaama", mille leidsin Adafruit.com ja muutis seda. Veebisaidi värskendamise asemel kasutasin SMS -i olekuvärskenduste saatmiseks Amazoni veebiteenuseid. Lisasin ka mõne 110V relee juhtimise (https://www.adafruit.com/products/268). Sain siis "targaks" ja otsustasin selle "karmiks muuta" - noh - miski lühendas midagi ja sain maagilise sinise suitsu. Kõik praetud … Kuna mul ei olnud teist CC3000 WiFi -katkestust, tegin seekord asju teisiti. Ehitasin selle interaktiivseks jälgimiseks jadaliidese kaudu ja lisasin seejärel EZ-Link Bluetooth FTDI liidese. (Enam ei tohi sülearvutit tarkvarauuenduste jaoks maja alla tirida !!!) Ehitasin ka Pythoni liidese, mis ühendub seadmega Bluetoothi kaudu, esitab selle kohta regulaarselt päringuid ja kuvab olekuteavet minu Macis. (Samuti on olemas "inimliides", millele pääseb juurde iga terminali emuleerimise tarkvaraga.) Kogu WiFi ja RTC-koodi ümberkirjutamise ja eemaldamise tulemusena on projekti maht kahanenud üle 29K-lt vaevalt 10K-ni. See on parandanud ka töökindlust sel määral, et riistvara valvekoer pole paari nädala jooksul üldse käivitunud ja ma olen kohendanud.
17.02.16 Värskendus/märkus: Püüdes saada mõningatele koodidele (eriti Pythoni koodi taandele) korralikku vormingut, muutusid asjad koledast kasutuskõlbmatuks. Olen kindel, et probleem on kusagil minu otsas ja püüan selle välja mõelda. Seni olen lisanud DropBoxi kaudu linke koodifailidele. Need peaksid olema kõigile kättesaadavad. Kui ei, siis palun andke mulle sellest teada, et saaksin need teile muul viisil kätte!
Samm: lahendatavad probleemid
Süsteemil oli minu jaoks vaja teha järgmisi asju: 1 - jälgida roomamisruumi temperatuuri. 2 - lülitada soojuslambid sisse vastavalt vajadusele, et hoida temperatuuri üle külmumise. 3 - kui see ei tööta, katsetage perioodiliselt pirne ja andke mulle nähtavus 4 - andke mulle nähtavus temperatuuri ja süsteemi oleku kohta, sealhulgas: - kas süsteem töötab? - mis temperatuur on praegu? - mis on kõige külmem temperatuur? - mitu pirni jooksis? - mitu pirni on hea? - mis on minu koguaeg "valgusminutites" (teise nimega "põlemisaeg")? 5 - tehke kõik ülaltoodud, ilma et oleksin pidanud maja alla roomama !!! Otsustasin, et lihtsaim viis pirnide töö testimiseks oli valgusandur. Mõned muud probleemid, mida tahtsin käsitleda, olid tulede tsükliaeg. Liiga aeglane ja põletan tarbetut elektrit. Liiga kiiresti ja mul on oht neid kogu sisselülitamisel ja väljalülitamisel põletada koos sellega seotud kuumutamise ja jahtumisega.
Samm: riistvara
2 250 vatti soojuslampi 1 500 vatti töölampi (üks minu soojuslampidest kadus, nii et see on stand-in) Arduino UnoDHT22 Temperatuuri/niiskuse andurGA1A12S202 valgusandur PowerSwitch 110V releed Bluefruit EZ-Link jadaliides ja programmeerija Kõrgtehnoloogiline ümbris (võileivamõõduga Rubbermaid vann)) Kaablitihend 1/2 suurune leivaplaatAkrüülplaat leivaplaadi ja Arduino jaoksSorteeritud hüppajajuhtmed. Colemani 5-väljalaskega "töökoja riba" Kasutasin ka riistvara valvurina Adafruit Trinket, kuid see on osutunud mittevajalikuks (jinx, muidugi!) Ja mina kirjutas selle kohta eraldi juhendi, nii et ma ei hakka seda siin kordama. Colemani pats oli tore leid, sest see andis mulle 4 soojuslampide pistikupesa ja lisaks Arduino toiteallika pistikupesa ilma täiendavate jaoturite või toiteplokkideta. Lüliti ja sisemise kaitselülitiga täisvõimsusel 15 amprit suudab see hakkama saada ühe pistikupesaga.
3. samm: lähenemine
Kuigi süsteem on loodud rakenduseks, et istuda ootamise ajal ja teha mõnda asja suhteliselt aeglaselt, ei tahtnud ma luua süsteemi, kus kontroller istus viivitatud () tsüklitega, mis ei reageerinud. Samuti soovisin, et saaksin muuta konfiguratsiooniparameetreid nii lennult kui võimalik-kindlasti mitte viisil, mis nõuaks koodi ümberkirjutamist või allika massotsingu- ja asendustoimingute tegemist. I leidis Bill Earli suurepärasemad artiklid teemal "Multitasking the Arduino" (alusta siit: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) ja asus tööle. "Taimeri" ja "kütteseadme" klasside loomisega suutsin teha kõik soovitud ajastamisfunktsioonid ilma viivituseta () (ainult paari erandiga) ja konfigureerida pirnid ("kütteseadmed") iga koodirea jaoks üks.
Samm: ühendage see kokku
Fritzing diagramm ei sisalda Bluefruit EZ-LinkArduino 5V & Ground leivaplaadi külge DHT22 pin 1 kuni 5V bussi DHT22 pin 2 to Arduino pin 7DHT22 pin 4 to Ground bus10K takisti DHT22 tihvtide 1 ja 2GA1A12S202 VCC pin kuni 5V bussiGA1A12S202 GN BusGA1A12S202 OUT pin kuni Arduino A0Arduino 3V pin to Arduino AREF pin. Ainus, mis on kriitiline, on valgusanduri OUT -juhe, mis peab minema analoogpinnile. See pin-out töötab minu koodiga nii, nagu see on kirjutatud. Kui kasutate riistvara valvekoera, näete, et minu kood paneb Arduino pin 2 südamelöögi välja.
Samm: Arduino kood, põhiskeem
CrawlSpace_monitor.ino
6. samm: märkused koodeksi kohta
Järgmised koodirid loovad küttekeha eksemplarid ja määravad tööparameetrid: // Heater (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minutes), luxDelta) Kütteseade1 = Heater (A1, 38, 43, 20, 1440, 5); Küttekeha2 = kütteseade (A2, 36, 41, 20, 1440, 5); Küttekeha (A4, 32, 37, 20, 1440, 5); (Ja jah, ma määratlesin kõik 4 kütteseadet, kuigi ma töötan praegu ainult 3. Ma peaksin ikkagi teise relee hankima, kuid siis lisaks 4. kütteseade olla sama lihtne kui selle ühendamine.) Ma jahmatan nende vallandustemperatuure, alustades esimesest 38 kraadi juures ja lõpetades olematu 4. puhul 32 juures. Üks asi, mille leidsin, kui esimest korda seda koos müttama hakkasin, oli see, et mul oli vaja anda temperatuuri vahemik ja määratleda minimaalne põlemisaeg, või rattasin tuled hullult sisse ja välja. Siin annan igaühele neist 5 -kraadise leviku ja 20 -minutilise minimaalse põlemisaja. Seadsin testimisintervalli 24 tunniks ja seadsin 5 luksi minimaalseks valgusnäiduks, mida vajan, et teha kindlaks, kas pirn töötab. Peaaegu kõik, mis vajab konfigureerimist, on siin nendes neljas koodireas.
Samm: Arduino kood, klassid
Selle projekti jaoks lõin 3 klassi. Need olid "taimer", "kütteseade" ja "aku". Pisut rohkem mõeldes peaksin suutma akumulaatori taimeriks voltida, kuid ma pole seda veel teinud. Siin on need täies ulatuses: küttekeha.h
taimer.h
akumulaator.h
8. samm: süsteemi jälgimine
Lõin ühe liidese kahele eraldi monitorile. See on interaktiivne seanss jadakonsooli kaudu. Minu puhul kasutan Bluefruit EZ-Linki, et saaksin süsteemile juurde pääseda ilma maja alla roomamata või proovimata põranda talade vahele USB-kaablit lüüa! EZ-Linki täiendav eelis on see, et saan uue programmikoodi Arduinole ka Bluetoothi kaudu üles laadida. Inimese liidesele pääseb juurde (Bluetooth või füüsiline kaabel) mis tahes terminali emuleerimistarkvaraga, sealhulgas Arduino IDE jadaga monitor. Esialgsel ühenduse loomisel ei reageerita, kuid klahvivajutus "u" ("värskendamiseks") ja "t" ("test") annab teile ekraanipildil näidatud väljundi. "m" ("monitor") ja "s" ("sys check") annavad teile samad andmed, kuid palju vähem loetavas vormingus. Need on mõeldud automaatseks kuvamiseks mõne muu programmiga "kraapima". Panin kokku Pythoni skripti, mis just seda teeb. Mis tahes muu klahv kogub kuvatud veateate. Näete väärtust "põlemisaeg" - mõelge sellele nagu "pirniminutid" - 1 pirn 10 minutit = 10 minutit, 3 pirni 10 minutit = 30 minutit.
Samm: Pythoni skript
crawlspace_gui.py
Samm: veel teha…
See ei pruugi olla ilus ega täiuslik, kuid see on tõhus ja osutub usaldusväärseks. JA, mul pole sel talvel veel külmunud torudega probleeme olnud !!! Mul on tegemiste nimekiri. Muidugi, nüüd, kui see töötab, ei pruugi ma enamikku neist üksustest täita või mitte kunagi: hankige Bluetooth minu ühel Raspberry Pi -l, et saaksin luua spetsiaalse monitori. Lugege veel mõnda Pythoni - seejärel puhastage Python liides. See elementide eraldamine ei ole tahtlik ja ma ei saa aru, miks see nii on. Lisage liides Adafruit'i IO -teenusele, et saaksin seda igal pool jälgida. Lisage tekstisõnumi hoiatus. Liikuge väiksemale kontrollerile (võib -olla metroole) Mini või Trinket Pro?), Odavamad releed ja parem pakend. Võtke see leivaplaadilt ja "Perma Proto" tahvlile. EEPROM -i konfiguratsiooniparameetrid. Teravam liides, mis näitab, millised pirnid on head ja võib -olla isegi üksikute pirnide põlemisaeg. Kui ma need valmis saan, tulen tagasi ja värskendan seda juhendit.
11. toiming: värskendage 3/16, "püsivat" ehitust
Külma ilmaga korralikku puhkust tehes olen seadme kätte saanud ja selle väiksemale kontrollerile viinud (kavatsesin kasutada Trinket Pro -d, kuid Adafruit Metro Mini istus ümberringi, kui ükski teine projekt seda ei nõudnud), joodin selle üles Perma-Proto plaat ja pange see kõik paremasse ümbrisesse. Selle põhjal, kui usaldusväärne see on olnud, ei pannud ma riistvara valvekoera tagasi. Ma kasutan endiselt ainult kolme lampi/releed, kus süsteem saab hakkama 4. Bluetooth -moodul on joodetud päises, nii et kui vaja seda kuskil mujal, saab selle eemaldada. Uuele kontrollerile üleminekuks ei olnud vaja koodimuudatusi - lihtne ümberkompileerimine ja laadimine pani mind mõne minutiga tööle. (Metro Minil on identne pistikupesa nagu Arduino Unol ja see on ka ATMega328 protsessor.)
12. samm: värskendage 01.02.2018 - Tere tulemast asjade internetti
Süsteem on meie jaoks laitmatult töötanud. Pärast kahte üsna karmi talve EI külmunud torusid. Tegelikult suutis süsteem torusid hooldada, ilma et oleks kunagi põletanud rohkem kui 2 pirni. Kolmanda pirni võrgus leidmine oli tore kindlustus, kuid me pole seda siiani vajanud.
Süsteemi kolmandal aastal jõudis Bluetooth -moodul ebaõnnestuda. Ehitasime ka uue maja, nii et seiresüsteem jääb Bluetoothi levialast kaugele välja. (Vana maja püsib mõnda aega üleval, kuid mitte igavesti.) Vahepealsel ajal olen teinud palju tööd ESP8266 WiFi -toega protsessoriga; nii Adafruit Featheri vormingus kui ka avatud lähtekoodiga "NodeMCU" vormingus. NodeMCU -d võib Amazonist üldiselt leida umbes 5 dollari eest - palju vähem, kui ostate hulgi ja/või kelleltki AliExpressilt.
See uus versioon säilitab jadaliidese, nii et seda saab siiski kasutada koos Bluetooth-mooduli või otsese USB-jadaühenduse ja eelmise pythoni skriptiga, kuid uuel versioonil on veebilehe liides. Nagu kirjutatud, sisaldab see järgmist funktsiooni:
WiFi-võrguhaldur, et kõrvaldada raskelt kodeeritud WiFi-mandaadid.
Võimalus värskendada püsivara õhu kaudu, kasutades Arduino IDE-d (kui olete samas WiFi-võrgus-pange tähele, et pärast seadmesse USB-üleslaadimist tuleb enne OTA värskenduste toimimist lähtestada). PALUN muutke OTA parool 6. real, et see oleks teile ainulaadne !!
Veebileht, mis kuvab samu andmeid, mida pythoni skript, värskendades automaatselt iga minut. Ma ei pannud lehele mingit turvalisust, sest see on ainult kuva.
Uue koodi leiate siit. Pange tähele, et tihvtide nimed muutuvad NodeMCU -sse liikumisel.
Soovitan:
Sputnik 1 Aka - esimene satelliit, mille Nõukogude Liit orbiidile viis 1957. aastal: 5 sammu (koos piltidega)
Sputnik 1 Aka - esimene satelliit, mille Nõukogude Liit orbiidile seadis 1957. aastal: olen alati olnud lummatud Sputnik 1 loost, sest see on käivitanud kosmosesõidu. 4. oktoobril 2017 tähistasime 60. aastapäeva selle Vene satelliidi käivitamisest, kes tegi ajalugu, sest see oli esimene
Parimad RGB LED -id iga projekti jaoks (WS2812, Aka NeoPixels): 6 sammu (koos piltidega)
Parimad RGB -valgusdioodid iga projekti jaoks (WS2812, Aka NeoPixels): Kui töötame LED -idega, meeldib meile sageli kontrollida nende olekut (sisse/välja), heledust ja värvi. Selleks on palju -palju erinevaid viise, kuid ükski pole nii kompaktne lahendus kui WS2812 RGB LED. Oma pisikeses 5 mm x 5 mm pakendis
Space Invaders Clock (eelarvega!): 6 sammu (koos piltidega)
Space Invaders Clock (eelarvega!): Hiljuti nägin GeckoDiode'i lahedat ehitust ja tahtsin seda kohe ise ehitada. Instructable on Space Invaders Desktop Clock ja ma soovitan teil seda pärast selle lugemist vaadata. Projekt ehitati peaaegu ainult osadest, mis on hangitud
Isetehtud mullaniiskuse monitor koos Arduino ja Nokia 5110 ekraaniga: 6 sammu (koos piltidega)
Isetehtud mullaniiskuse monitor koos Arduino ja Nokia 5110 ekraaniga: selles juhendis näeme, kuidas luua Arduino abil suure kasuliku mullaniiskuse monitor suure Nokia 5110 LCD -ekraaniga. Arduino abil saate hõlpsalt mõõta oma taime mulla niiskustaset ja ehitada huvitavaid seadmeid
KerbalController: raketimängu kohandatud juhtpaneel Kerbal Space Program: 11 sammu (koos piltidega)
KerbalController: raketimängu kohandatud juhtpaneel Kerbal Space Program: miks ehitada KerbalController? Noh, sest nuppude vajutamine ja füüsiliste lülitite viskamine tundub palju olulisem kui hiire klõpsamine. Eriti kui see on suur punane kaitselüliti, kus peate esmalt kaane avama, libistage lülitit