Sisällysluettelo:
- Vaihe 1: Ratkaistavat ongelmat
- Vaihe 2: Laitteisto
- Vaihe 3: Lähestymistapa
- Vaihe 4: Johdotus
- Vaihe 5: Arduino -koodi, pääluonnos
- Vaihe 6: Huomautuksia koodeista
- Vaihe 7: Arduino -koodi, luokat
- Vaihe 8: Järjestelmän valvonta
- Vaihe 9: Python -skripti
- Vaihe 10: Vielä tehtävää…
- Vaihe 11: Päivitä 3/16, "pysyvä" koontiversio
- Vaihe 12: Päivitä 12.1.2018 - Tervetuloa IoT: hen
Video: Crawl Space Monitor (alias: No More Frozen Pipes !!): 12 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Vesi taloon tulee kaivostani lämmittämättömän ryömintätilan kautta. Kaikki keittiön ja kylpyhuoneen putkistot kulkevat myös tämän tilan läpi. (Sisävesijohdot olivat löysä jälkikäteen 70-luvun puolivälissä tässä talossa!) Olen käyttänyt lämpölamppuja "varastosäiliön" termostaattiliittimissä pitämään lämpötila pakkasen yläpuolella. Tässä järjestelyssä oli pari merkittävää ongelmaa: 1 - Ei näkyvyyttä. Ensimmäinen merkki palaneista lampuista on jäätyneet putket! 2 - Joskus pistokkeet eivät sulkeudu. Tämä aiheutti ikäviä yllätyksiä sähkölaskusta. 3 - Ei rakeisuutta. Pidin 3 lamppua "verkossa" (yhteensä 750 wattia) ja se oli kaikki tai ei mitään -ratkaisu. (Kaksi lamppua ei aina käsittele sitä.) Kun olin tutustunut Arduinoon ja nähnyt joitain asioita, joita muut ihmiset tekivät sen kanssa, päätin antaa sille pyörre. Myönnän heti kourusta, että olen häpeämättömästi tarttunut ja säätänyt näytekoodia muiden ihmisten projekteista tämän työn tekemiseksi, vaikka lopulta olen kirjoittanut lähes kaiken uudelleen. Aluksi rakensin tämän "WiFi-sääaseman", jonka löysin Adafruit.com ja muokannut sitä. Verkkosivuston päivittämisen sijasta lähetin Amazon Web Services -palvelulla tekstiviestipäivityksiä. Lisäsin myös joidenkin 110 V: n releiden ohjauksen (https://www.adafruit.com/products/268). Sain sitten "älykkään" ja päätin "karistaa" sen - no - jokin oikosulki jotain ja sain pölyn maagista sinistä savua. Kaikki paistettua… Koska minulla ei ollut toista CC3000 -WiFi -katkaisua, tein asiat tällä kertaa eri tavalla. Rakensin sen seurattavaksi interaktiivisesti sarjaliitännän kautta ja lisäsin sitten EZ-Link Bluetooth FTDI -liitännän. (Ei enää kannettavan tietokoneen vetämistä talon alle ohjelmistopäivityksiä varten!) Rakensin myös Python -käyttöliittymän, joka muodostaa yhteyden laitteeseen Bluetoothin kautta, kyselee sitä säännöllisesti ja näyttää tilatiedot Macissa. (Siellä on myös "ihmisen käyttöliittymä", johon pääsee käsiksi millä tahansa pääte-emulointiohjelmistolla.) Uudelleen kirjoittamisen ja kaiken WiFi- ja RTC-koodin poistamisen seurauksena projekti on pienentynyt yli 29 000: sta tuskin 10 000: een. Se on myös parantanut luotettavuutta siinä määrin, että laitteistovalvonta ei ole käynnistynyt lainkaan parin viikon aikana, kun se on ollut käynnissä ja olen säätänyt.
17.2.16 Päivitys/huomautus: Yritettäessä saada oikea muotoilu joillekin koodille (erityisesti Python -koodin sisennys) asiat muuttuivat rumaista käyttökelvottomiksi. Olen varma, että ongelma on jossain vaiheessa, ja yritän selvittää sen. Siihen asti olen lisännyt linkkejä kooditiedostoihin DropBoxin kautta. Niiden pitäisi olla kaikkien saatavilla. Jos ei, kerro siitä minulle, jotta voin saada ne sinulle toisella tavalla!
Vaihe 1: Ratkaistavat ongelmat
Järjestelmän täytyi tehdä seuraavat asiat: 1 - valvoa indeksointitilan lämpötilaa. 2 - kytke lämpölamput päälle tarpeen mukaan, jotta lämpötila pysyy pakkasen yläpuolella. 4 - anna minulle näkyvyys lämpötilasta ja järjestelmän tilasta, mukaan lukien: - onko järjestelmä käynnissä? - mikä on lämpötila NYT? - mikä on kylmin lämpötila? - kuinka monta polttimoa oli käytössä? - kuinka monta lamppua on hyvä? - mikä on kokonaisaikani "valominuuteina" (alias "palamisaika")? 5 - tee kaikki edellä mainitut asiat ilman, että minun tarvitsee ryömiä talon alle !!! Päätin, että helpoin tapa testata lampun toiminta oli Jotkut muut ongelmat, jotka halusin käsitellä, olivat valojen jaksoaika. Liian hidas ja poltan turhaa sähköä. Liian nopeasti, ja olen vaarassa polttaa ne pois päältä ja pois päältä siihen liittyvän lämmityksen ja jäähdytyksen yhteydessä.
Vaihe 2: Laitteisto
2250 watin lämpölamput 1500 watin työlamppu (yksi lämpölampuistani katosi, joten tämä on valmiustila) Arduino UnoDHT22 Lämpötila-/kosteusanturiGA1A12S202-valotunnistin PowerSwitch 110V -releet Bluefruit EZ-Link-sarjaliitäntä ja ohjelmoija) Kaapelitiiviste 1/2 kokoinen leipälautaAkryylilevy leipälevylle ja ArduinolleErilaisia hyppyjohtimia. Colemanin 5-ulostulinen "työpajaliuska" Käytin myös Adafruit-rihkamaa laitteistovalvojana, mutta se on osoittautunut tarpeettomaksi (jinx, tietysti!) Ja minä kirjoitti siitä erillisen ohjeen, joten en toista sitä täällä. Coleman -letti oli mukava löytö, koska se antoi minulle 4 pistorasiaa lämpölampuilleni PLUS -pistorasian Arduinon virtalähteelle ilman muita jakajia tai jatkojohtoja. Täydellä 15 ampeerilla, jossa on kytkin ja sisäinen katkaisin, se pystyy käsittelemään kaiken, mitä voisin vetää yhden pistorasian kautta.
Vaihe 3: Lähestymistapa
Vaikka järjestelmä on sovellus, joka on rakennettu istumaan odottamaan ja tekemään joitain asioita suhteellisen hitaasti, en halunnut tehdä sellaista järjestelmää, jossa ohjain istui viivästyneissä () sykleissä, koska ne eivät vastanneet. Halusin myös pystyä muuttamaan kokoonpanoparametreja niin lähellä lennossa kuin mahdollista-en todellakaan tavalla, joka edellyttäisi koodin uudelleen kirjoittamista tai massan etsintä- ja korvaustoimintoja lähteestä. löysi Bill Earlin erinomaisimmat artikkelit aiheesta "Multitasking the Arduino" (aloita täältä: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) ja kiirehti. Luomalla "ajastin" ja "lämmitin" luokat pystyin suorittamaan kaikki haluamani ajoitustoiminnot ilman viivettä () (vain muutamaa poikkeusta lukuun ottamatta) ja konfiguroimaan lamput ("lämmittimet") yhdellä koodirivillä kullekin yksi.
Vaihe 4: Johdotus
Fritzing-kaavio ei sisällä Bluefruit EZ-LinkArduino 5V & Ground -leipälevyyn busGA1A12S202 OUT -nasta Arduino A0: een Arduino 3V -nasta Arduino -AREF -nastaan. Ainoa kriittinen asia on, että valoanturin OUT -johto on siirrettävä analogiseen nastaan. Tämä pin-out toimii koodillani sellaisena kuin se on kirjoitettu.
Vaihe 5: Arduino -koodi, pääluonnos
CrawlSpace_monitor.ino
Vaihe 6: Huomautuksia koodeista
Seuraavat koodirivit luovat lämmittimen ilmentymät ja määrittävät toimintaparametrit: // Lämmitin (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minutes), luxDelta) Lämmitin1 = Lämmitin (A1, 38, 43, 20, 1440, 5); Lämmitin 2 = Lämmitin (A2, 36, 41, 20, 1440, 5); Lämmitin 3 = Lämmitin (A3, 34, 39, 20, 1440, 5); Lämmitin 4 = Lämmitin (A4, 32, 37, 20, 1440, 5); (Ja kyllä, määritin kaikki 4 lämmitintä, vaikka minulla on tällä hetkellä käytössä vain 3. Tarvitsen silti uuden releen, mutta sitten neljännen lämmittimen lisääminen olla yhtä yksinkertainen kuin kytkemällä se.) Porrastan niiden laukaisulämpötiloja, alkaen 38 asteesta ensimmäiseen ja päättyen 32: een olemattomalle neljännelle. Yksi niistä asioista, jotka löysin, kun aloin ensin harrastaa tätä yhdessä, oli se, että minun oli annettava lämpötila -alue ja määritettävä vähimmäis "paloaika", tai pyöräilin valoja päälle ja pois kuin hullu. Tässä annan jokaiselle niistä 5 asteen hajonnan sekä vähintään 20 minuutin paloajan. Asetin testijaksoksi 24 tuntia ja asetin 5 luxin vähimmäisvalolukemaksi, jota tarvitsin määrittämään, että lamppu toimii edelleen. Melkein kaikki, mikä tarvitsee konfigurointia, on täällä näillä 4 koodirivillä.
Vaihe 7: Arduino -koodi, luokat
Olen luonut 3 kurssia tätä projektia varten. Ne olivat "ajastin", "lämmitin" ja "akku". Hieman enemmän ajattelemalla minun pitäisi pystyä taittamaan akku ajastimeksi, mutta en ole vielä. Tässä ne ovat kokonaisuudessaan: lämmitin. H
ajastin. h
akku. h
Vaihe 8: Järjestelmän valvonta
Tein yhden käyttöliittymän kahdelle erilliselle näytölle. Se on vuorovaikutteinen istunto sarjakonsolin kautta. Minun tapauksessani käytän Bluefruit EZ-Link -laitetta, jotta pääsen järjestelmään ryömiilemättä talon alle tai yrittämättä liittää USB-kaapelia lattiapalkkien väliin! EZ-Linkin lisäetu on, että voin ladata uuden ohjelmakoodin Arduinolle myös Bluetoothin kautta. "Ihmisen" käyttöliittymää voidaan käyttää (Bluetooth tai fyysinen kaapeli) millä tahansa pääteemulointiohjelmistolla, mukaan lukien Arduino IDE: n sarja monitori. Kun muodostat yhteyden ensimmäisen kerran, vastausta ei tule, mutta näppäimen "u" ("päivitys") ja "t" ("testi") painalluksella saat näyttökuvassa näytetyn tuloksen. "m" ("monitori") ja "s" ("sys check") saavat samat tiedot, mutta paljon vähemmän luettavassa muodossa. Ne on tarkoitus "kaavata" toisella ohjelmalla automaattista näyttöä varten. Kokosin Python -käsikirjoituksen, joka tekee juuri niin. Mikä tahansa muu näppäin saa näkyviin virheilmoituksen. Näet "paloaika" -arvon - ajattele tätä kuten "polttimo minuuttia" - 1 lamppu 10 minuuttia = 10 minuuttia, 3 lamppua 10 minuuttia = 30 minuuttia.
Vaihe 9: Python -skripti
crawlspace_gui.py
Vaihe 10: Vielä tehtävää…
Se ei ehkä ole kaunis tai täydellinen, mutta se on tehokas ja osoittautuu luotettavaksi. JA, minulla ei ole ollut jäätyneiden putkien ongelmia vielä tänä talvena! Tietenkin, nyt kun se toimii, saatan tai en ehkä koskaan pääse toteuttamaan suurinta osaa näistä kohteista: Hanki Bluetooth -yhteys yhteen Raspberry Pi -laitteistani, jotta voin luoda erillisen näytön. käyttöliittymä. Tämä elementtien erottaminen ei ole tarkoituksellista, enkä ymmärrä, miksi se on olemassa. Lisää käyttöliittymä esimerkiksi Adafruitin IO -palveluun, jotta voin seurata sitä mistä tahansa. Lisää tekstiviestihälytys Siirry pienempään ohjaimeen (mahdollisesti Metro Mini tai Trinket Pro?), Halvemmat releet ja parempi pakkaus. Ota se leipälevyltä ja "Perma Proto" -levylle. Kokoonpanoparametrit EEPROMissa. mahdollisesti jopa polttamisaika yksittäisille polttimoille. Kun saan ne valmiiksi, tulen takaisin ja päivitän tämän ohjeen.
Vaihe 11: Päivitä 3/16, "pysyvä" koontiversio
Hyvän tauon saamiseksi kylmällä säällä olen hakenut yksikön ja siirtänyt sen pienempään ohjaimeen (olin aikonut käyttää Trinket Prota, mutta Adafruit Metro Mini istui ympärillä ilman minkään muun projektin vaatimusta), juotin sen Perma-Proto-levyn ja laita kaikki parempaan koteloon. Sen luotettavuuden perusteella en asettanut laitteistovalvontakokoa takaisin siihen. Käytän edelleen vain kolmea lamppua/relettä, joissa järjestelmä käsittelee 4. Bluetooth -moduuli on juotetussa otsikossa, joten se voidaan poistaa, jos sitä tarvitaan muualla. Koodimuutoksia ei tarvinnut siirtyä uuteen ohjaimeen - yksinkertainen uudelleen kääntäminen ja lataus saivat minut toimimaan muutamassa minuutissa. (Metro Minillä on sama pinout kuin Arduino Unolla ja se on myös ATMega328 -prosessori.)
Vaihe 12: Päivitä 12.1.2018 - Tervetuloa IoT: hen
Järjestelmä on toiminut meillä moitteettomasti. Kahden melko ankaran talven jälkeen EI jäätyneitä putkia. Itse asiassa järjestelmä pystyi ylläpitämään putket polttamatta koskaan yli kahta polttimoa. Kolmas polttimo verkossa oli mukava vakuutus, mutta emme ole koskaan tarvinneet sitä tähän mennessä.
Järjestelmän vuoden 3 jälkeen Bluetooth -moduuli epäonnistui. Rakensimme myös uuden talon, joten valvontajärjestelmä on selvästi Bluetooth -alueen ulkopuolella. (Vanha talo pysyy pystyssä jonkin aikaa, mutta ei ikuisesti.) Välillä olen tehnyt paljon ESP8266 WiFi -prosessorilla; sekä Adafruit Feather -muodossa että avoimen lähdekoodin "NodeMCU" -muodossa. NodeMCU löytyy yleensä Amazonista noin 5 dollarilla - paljon vähemmän, jos ostat irtotavarana ja/tai AliExpressin kaltaiselta henkilöltä.
Tämä uusi versio ylläpitää sarjaliitäntää, joten sitä voidaan edelleen käyttää Bluetooth-moduulin tai suoran USB-sarjayhteyden ja edellisen python-komentosarjan kanssa, mutta uudessa versiossa on verkkosivuliitäntä. Kuten kirjoitettu, se sisältää seuraavat ominaisuudet:
WiFi-verkonhallinta poistaa kovakoodatut WiFi-tunnistetiedot.
Mahdollisuus päivittää laiteohjelmisto langattomasti Arduino IDE: n avulla (niin kauan kuin olet samassa WiFi-verkossa-huomaa, että USB-latauksen jälkeen laitteelle on palautettava, ennen kuin OTA-päivitykset toimivat). Muuta rivin 6 OTA -salasana yksilölliseksi sinulle !!
Verkkosivu, joka näyttää samat tiedot kuin python -skripti, ja päivittyy automaattisesti joka minuutti. En asettanut sivulle minkäänlaista suojausta, koska se on vain näyttö.
Löydät uuden koodin täältä. Huomaa, että nastan nimet muuttuvat siirryttäessä NodeMCU -laitteeseen.
Suositeltava:
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuussa 2019 **: 6 vaihetta (kuvilla)
O-R-A RGB Led Matrix Wall Clock and More ** päivitetty heinäkuuta 2019 **: Hei. Tässä olen uuden projektin nimeltä O-R-AIt on RGB LED Matrix -seinäkello, joka näyttää: tunti: minuutti lämpötila kosteus nykyinen säätilakuvake Google-kalenterin tapahtumat ja 1 tunnin muistutusilmoitukset tiettynä ajankohtana, jolloin se näyttää:
Do More -ajastin, Casey Neistatin innoittama: 4 vaihetta (kuvilla)
Do More -ajastin, Casey Neistatin innoittama: Kesä, ihana vuodenaika, kun asioita tapahtuu. Mutta joskus meillä on tapana unohtaa aika. Joten muistuttaaksemme meitä jäljellä olevasta ajasta, suunnittelin tämän Casey Neistatin 'Do More' DIY arduino -ohjatun ajastimen, joka voidaan ohjelmoida näyttämään jäljellä oleva aika parillisesta
Space Invaders Clock (budjetilla!): 6 vaihetta (kuvilla)
Space Invaders Clock (budjetissa!): Äskettäin näin GeckoDioden hienon rakenteen ja halusin heti rakentaa sen itse. Instructable on Space Invaders -työpöytäkello, ja suosittelen katsomaan sitä tämän lukemisen jälkeen. Projekti rakennettiin lähes yksinomaan osista, jotka on hankittu
Aloita sissisyöttö (alias MobMov): 6 vaihetta (kuvilla)
Aloita sissisyöttö (alias MobMov): Oletko koskaan halunnut johtaa ulkoilmateatteria ala MobMov.org tai Santa Cruzin sissien ajamista? Cyberpunk -kaupunkiteatteri, täältä tullaan
Korjaa Frozen Zune 30 !!: 4 vaihetta
Korjaa jäädytetty Zune 30 !!: Jos kaltaiseni kaltainen, rakkaasi Zune lukkiutui eilen illalla etkä vain malta odottaa, että Microsoft julkaisee virallisen korjauksen, niin tämä on sinua varten! Voi ja hyvää uutta vuotta! Kiitos Surbon i -hacked.com suurimmalle osalle töistä. VASTUUVAPAUSLAUSEKE: En hyväksy vastuuta