Sadržaj:
- Korak 1: Problemi za rješavanje
- Korak 2: Hardver
- Korak 3: Pristup
- Korak 4: Ožičite ga
- Korak 5: Arduino kôd, glavna skica
- Korak 6: Napomene o Kodeksu
- Korak 7: Arduino kôd, klase
- Korak 8: Nadgledanje sistema
- Korak 9: Python skripta
- Korak 10: Predstoji vam još…
- Korak 11: Ažurirajte 3/16, "stalnu" verziju
- Korak 12: Ažurirajte 1.12.2018 - dobrodošli u IoT
Video: Monitor svemirskog puzanja (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Voda u moju kuću dolazi iz mog bunara kroz neogrevan prostor za puzanje. Ovim prostorom prolazi i sav vodovod u kuhinji i kupaonici. (Unutrašnji vodoinstalaterski radovi su sredinom 70-ih u ovoj kući bili zamišljeni kao pljuska!) Koristio sam toplinske lampe na termostatskim utikačima "rezervoar za skladištenje" za održavanje temperature iznad smrzavanja. Bilo je nekoliko značajnih problema sa ovim aranžmanom: 1 - Bez vidljivosti. Prvi znak izgorelih sijalica su smrznute cijevi! 2 - Ponekad se utikači ne bi mogli isključiti. Računi za struju doveli su do gadnih iznenađenja.3 - Nema detaljnosti. Držao sam 3 sijalice "na mreži" (ukupno 750 vata) i to je bilo rješenje za sve ili ništa. (2 sijalice ne bi uvijek to podnijele.) Nakon što sam se upoznao s Arduinom i vidio neke stvari koje drugi ljudi rade s njim, odlučio sam da ću ga zavrtjeti. Odmah ću priznati da sam besramno ugrabio i dotjerao uzorak koda iz projekata drugih ljudi kako bi ovo uspjelo, iako sam na kraju prepisao gotovo sve. U početku sam izgradio ovu "WiFi vremensku stanicu" koju sam pronašao na Adafruit.com i izmijenili ga. Umjesto ažuriranja web stranice, koristio sam Amazon Web Services za slanje ažuriranja statusa SMS -a. Dodao sam i kontrolu nekih 110V releja (https://www.adafruit.com/products/268). Tada sam postao "pametan" i odlučio da ga "progutam" - pa - nešto je kratko spojilo i dobio sam dašak čarobnog plavog dima. Sve je isprženo … Nemajući još jedan proboj CC3000 WiFi -a, ovaj put sam postupio drugačije. Napravio sam ga za interaktivno nadgledanje putem serijskog sučelja, a zatim dodao EZ-Link Bluetooth FTDI sučelje. (Nema više povlačenja laptopa ispod kuće radi ažuriranja softvera !!!) Takođe sam izgradio Python interfejs koji se povezuje sa jedinicom putem Bluetootha, redovno ga postavlja i prikazuje informacije o statusu na mom Macu. (Postoji i "ljudsko sučelje" kojem se može pristupiti bilo kojim softverom za emulaciju terminala.) Kao rezultat ponovnog pisanja i uklanjanja svih WiFi i RTC koda, projekt se smanjio s preko 29K na jedva 10K. Takođe je poboljšala pouzdanost do te mjere da se nadzornik hardvera uopće nije aktivirao u nekoliko tjedana koliko je radio, a ja sam ga dotjerao.
17.2.2016. Ažuriranje/napomena: U pokušaju da se dobije odgovarajuće oblikovanje nekog koda (posebno uvlačenje Python koda), stvari su postale ružne do neupotrebljive. Siguran sam da je tu negdje moj problem i nastojat ću to riješiti. Do tada sam dodavao veze do datoteka koda putem DropBox -a. Oni bi trebali biti dostupni svima. U suprotnom, obavijestite me kako bih vam ih mogao dostaviti na drugi način!
Korak 1: Problemi za rješavanje
Sistem je za mene trebao učiniti sljedeće: 1 - nadzirati temperaturu u prostoru za puzanje. 2 - uključivati žarulje za grijanje po potrebi za održavanje temperature iznad smrzavanja. 3 - kad ne rade, povremeno testirati žarulje i omogućiti mi vidljivost njihovog statusa.4 - dajte mi prikaz temperature i statusa sistema, uključujući: - radi li sistem? - koja je temperatura SADA? - koja je najhladnija temperatura? - koliko sijalica je ispalo? - koliko sijalica je dobro testirano? - koje je moje ukupno vrijeme u "svjetlosnim minutama" (poznato i kao "vrijeme gorenja")? 5 - učinite sve gore navedeno bez potrebe da se uvlačim ispod kuće !!! Odlučio sam da je najlakši način za testiranje rada žarulje sa senzor svjetla. Neki drugi problemi koje sam htio riješiti je vrijeme ciklusa na svjetlima. Presporo, a sagorijevam nepotrebnu električnu energiju. Prebrzo i riskiram da ih izgorim pri svakom uključivanju i isključivanju s odgovarajućim zagrijavanjem i hlađenjem.
Korak 2: Hardver
2 toplotne lampe od 250 vati 1 radna lampa od 500 vati (jedna od mojih toplotnih svjetiljki je nestala, tako da je ovo stand-in) Arduino UnoDHT22 osjetnik temperature/vlageGA1A12S202 senzor svjetlaPreklopnik 110V releji Bluefruit EZ-Link serijsko sučelje i programatorVisokotehnična kada (gumena kada u sendviču)) Kablovska žica 1/2 "Oglasna ploča" Akrilna ploča za matičnu ploču i ArduinoAssorted kratkospojne žice. Colemanova "traka za radionicu" sa 5 utičnica Također sam koristio Adafruit Trinket kao hardverskog čuvara, ali se pokazao nepotrebnim (jinx, naravno!) I ja napisao zasebnu instrukciju o tome pa to neću ovdje ponavljati. Coleman pigtail je bio lijep nalaz, jer mi je dao 4 izlaza za moje toplinske lampe PLUS izlaz za Arduino napajanje bez ikakvih dodatnih razdjelnika ili razvodnika. Procijenjen na punih 15 ampera s prekidačem i unutarnjim prekidačem, mogao je podnijeti sve što sam mogao izvući kroz jednu utičnicu.
Korak 3: Pristup
Dok je sistem aplikacija napravljena da sjedi i čeka, te da neke stvari radi relativno sporo, ono što nisam htio učiniti je izgraditi sistem u kojem je kontroler sjedio u ciklusima delay () koji ne reagiraju. Takođe sam želeo da mogu da promenim konfiguracijske parametre što je moguće brže u hodu-svakako ne na način koji je zahtevao ponovno pisanje koda ili masovno pretraživanje i zamenu operacija na izvoru. pronašao je izvrsne članke Billa Earla o "Multitasking Arduino" (počnite ovdje: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) i zaposlio se. Kreiranjem klasa "mjerač vremena" i "grijač" uspio sam obaviti sve funkcije mjerenja vremena koje sam htio bez korištenja kašnjenja () (sa samo nekoliko iznimaka) i konfigurirati žarulje ("grijači") s jednim retkom koda za svaki jedan.
Korak 4: Ožičite ga
Dijagram Fritzinga ne uključuje Bluefruit EZ-LinkArduino 5V i uzemljenje na sabirnicu matične pločeDHT22 pin 1 do 5V sabirnicuDHT22 pin 2 na Arduino pin 7DHT22 pin 4 na uzemljenje sabirnice 10K otpornik između DHT22 pinova 1 i 2GA1A12S202 VCC pin na 5V sabirnicuGA1A12S202 busGA1A12S202 OUT pin na Arduino A0Arduino 3V pin na Arduino AREF pinRelay Uzemljenje vodi na uzemljenje busRelay 1 napojni vod na Arduino A1Relay 2 napojni vod na Arduino A2Relay 3 napojni kabel na Arduino A3Relay 4 naponski kabel na Arduino A4Možete li bilo koje od ovih veza stražnje strane želite. Jedini koji je kritičan je da OUT izlaz na svjetlosnom senzoru mora ići na analogni pin. Ovaj pin-out će raditi s mojim kodom kako je napisan. Ako koristite hardverski nadzornik, vidjet ćete da moj kod stavlja srce na Arduino pin 2.
Korak 5: Arduino kôd, glavna skica
CrawlSpace_monitor.ino
Korak 6: Napomene o Kodeksu
Sljedeći redovi koda stvaraju instance grijača i definiraju radne parametre: // Grijač (relejPin, onTemp (f), offTemp (f), minMinute, testInterval (minute), luxDelta) Grijač grijača1 = grijač (A1, 38, 43, 20, 1440, 5); grijač grijača2 = grijač (A2, 36, 41, 20, 1440, 5); grijač grijača3 = grijač (A3, 34, 39, 20, 1440, 5); grijač grijača4 = grijač (A4, 32, 37, 20, 1440, 5); (I da, definirao sam sva 4 grijača iako trenutno koristim samo 3. Još bih trebao nabaviti još jedan relej, ali tada bi dodavanje četvrtog grijača Budite jednostavni poput uključivanja.) Zapanjujem njihove temperature okidača, počevši od 38 stupnjeva za prvi i završavajući na 32 za nepostojeći 4.. Jedna od stvari koje sam otkrio kada sam ovo počeo zajedno kaliti je da sam trebao dati raspon temperature, kao i definirati minimalno "vrijeme gorenja", ili sam palio i gasio svjetla kao lud. Ovdje svakom od njih dajem raspon od 5 stepeni, kao i minimalno vrijeme gorenja od 20 minuta. Postavio sam interval testiranja na 24 sata i postavio 5 luksa kao minimalno očitanje svjetla koje mi je bilo potrebno da utvrdim da li žarulja još radi. Gotovo sve što je potrebno konfigurirati nalazi se upravo ovdje u ove 4 linije koda.
Korak 7: Arduino kôd, klase
Napravio sam 3 klase za ovaj projekat. Bili su to "mjerač vremena", "grijač" i "akumulator". Uz malo više razmišljanja, mogao bih preklopiti akumulator u tajmer, ali još nisam. Evo ih u cijelosti: heater.h
timer.h
akumulator.h
Korak 8: Nadgledanje sistema
Napravio sam jedno sučelje za dva odvojena monitora. To je interaktivna sesija preko serijske konzole. U mom slučaju koristim Bluefruit EZ-Link kako bih mogao pristupiti sistemu bez provlačenja ispod kuće ili pokušaja provlačenja USB kabela između podnih greda! Dodatna prednost EZ-Linka je to što mogu prenijeti novi programski kod na Arduino i putem Bluetootha. "Ljudskom" sučelju se može pristupiti (Bluetooth ili fizički kabel) sa bilo kojim softverom za emulaciju terminala, uključujući serijski Arduino IDE monitor. Kada se prvo povežete, nema odgovora, ali tipka pritiska "u" (za "ažuriranje") i "t" (za "test") i dobit ćete izlaz prikazan na snimku ekrana. "m" ("monitor") i "s" ("sys check") dobivaju iste podatke, ali u mnogo manje čitljivom formatu. Namjerava se da ih "izgrebe" drugi program za automatski prikaz. Sastavio sam Python skriptu koja radi upravo to. Bilo koji drugi ključ prikuplja prikazanu poruku o grešci. Vidjet ćete vrijednost za "vrijeme sagorijevanja" - zamislite ovo kao "minute sijalice" - 1 žarulja 10 minuta = 10 minuta, 3 žarulje 10 minuta = 30 minuta.
Korak 9: Python skripta
crawlspace_gui.py
Korak 10: Predstoji vam još…
Možda nije lijepo ili savršeno, ali je učinkovito i pokazalo se pouzdano. I, još ove zime nisam imao problema sa smrznutim cijevima !!! Imam hit-listu stvari koje trebam obaviti. Naravno, sad kad to radi, možda ću i neću uspjeti postići većinu ovih stavki: Pokrenite Bluetooth na jednom od svojih Raspberry Pi -ja kako bih mogao stvoriti namjenski monitor. Naučite još Python -a zatim očistite Python interfejs. To razdvajanje elemenata nije namjerno i ne razumijem zašto je tu. Dodajte sučelje nečemu poput Adafruit -ove IO usluge kako bih ga mogao pratiti s bilo kojeg mjesta. Dodajte upozorenje tekstualnom porukom. Premjestite na manji kontroler (moguće Metro Mini ili Trinket Pro?), Jeftiniji releji i bolje pakiranje. Sklonite ga s matične ploče i na ploču "Perma Proto". Konfiguracijski parametri u EEPROM -u. Detaljnije sučelje koje će ukazivati na to - koje su žarulje dobre i možda čak i vrijeme sagorijevanja za pojedinačne sijalice. Kako ih završim, vratit ću se i ažurirati ovaj Instructable.
Korak 11: Ažurirajte 3/16, "stalnu" verziju
Kako bih se dobro odmorio po hladnom vremenu, uzeo sam jedinicu i premjestio je na manji kontroler (namjeravao sam koristiti Trinket Pro, ali sam imao Adafruit Metro Mini koji je sjedio okolo bez ikakvog drugog projekta), lemio ga je na ploča Perma-Proto i sve to stavite u bolji slučaj. Na osnovu toga koliko je pouzdan, nisam mu vratio nadzornika hardvera. Još uvijek koristim samo 3 lampe/releja gdje će sistem rukovati sa 4. Bluetooth modul je na lemljenom zaglavlju, pa se može ukloniti ako mi zatreba negdje drugdje. Nisu bile potrebne promjene koda za prelazak na novi kontroler - jednostavno ponovno kompajliranje i učitavanje pokrenuli su me za nekoliko minuta. (Metro Mini ima identičan ispis kao Arduino Uno, a također je i ATMega328 procesor.)
Korak 12: Ažurirajte 1.12.2018 - dobrodošli u IoT
Sistem je kod nas radio besprekorno. Nakon dvije prilično oštre zime, NEMA smrznutih cijevi. U stvari, sistem je mogao održavati cijevi bez da je sagorio više od 2 sijalice. Imati treću sijalicu na mreži bilo je lijepo osiguranje, ali do sada nam to nikada nije trebalo.
Ulaskom u 3. godinu sistema, Bluetooth modul nije uspio. Izgradili smo i novu kuću, tako da je sistem za nadzor izvan Bluetooth dometa. (Stara kuća ostaje budna neko vrijeme, ali ne zauvijek.) U međuvremenu sam dosta radio sa procesorom sa omogućenim WiFi -om ESP8266; i u formatu Adafruit Feather i u formatu otvorenog koda "NodeMCU". NodeMCU se općenito može pronaći na Amazonu za oko 5 USD - mnogo manje ako kupujete na veliko i/ili od nekoga poput AliExpressa.
Ova nova verzija održava serijsko sučelje, pa bi se i dalje mogla koristiti s Bluetooth modulom ili direktnom USB serijskom vezom i prethodnom python skriptom, međutim, nova verzija ima sučelje web stranice. Kako je napisano, ona uključuje sljedeću značajku:
Upravitelj WiFi mreže za uklanjanje vjerodajnica WiFi za šifriranje koje se kodiraju.
Mogućnost ažuriranja firmvera bežičnim putem pomoću Arduino IDE-a (sve dok ste na istoj WiFi mreži-imajte na umu da je nakon postavljanja USB-a na uređaj potrebno resetiranje da bi OTA ažuriranja funkcionirala). MOLIMO vas da promijenite OTA lozinku na liniji 6 kako bi bila jedinstvena za vas !!
Web stranica koja prikazuje iste podatke kao i python skripta, sa automatskim osvježavanjem svake minute. Nisam stavio nikakvu sigurnost na stranicu, jer je samo za prikaz.
Novi kôd možete pronaći ovdje. Imajte na umu da se nazivi pinova mijenjaju pri prelasku na NodeMCU.
Preporučuje se:
Arduino stroj koji daje zadatke (poznat i kao: Kako napraviti vlastiti Bop-it!): 5 koraka
Arduino mašina koja daje zadatke (poznata i kao: Pravljenje sopstvenog Bop-it-a!): Za studij koji trenutno pratim dobio sam zadatak da napravim nešto sa Arduinom. Nabavio sam sebi standardnu zbirku materijala iz škole i smislio nešto što bi im pomoglo, s minimalnom vanjskom prostirkom
IOT BIT (formalno poznat kao PiAnywhere V1.31) 4G i LTE šešir za Raspberry Pi: 10 koraka (sa slikama)
IOT BIT (formalno poznat kao PiAnywhere V1.31) 4G i LTE šešir za Raspberry Pi: IOT BIT 4G & LTE šešir za Raspberry Pi4G (100 mbps prema dolje/ 50 mbps gore) - Izuzetno brzo internetsko povezivanje za vašu malinu pi, izvrsno za velika preuzimanja i streaming videozapisa.TheIOT BIT 4G & LTE šešir za Raspberry Pi Beta provi
Pokrenite gerilski Drive-in (poznat i kao MobMov): 6 koraka (sa slikama)
Pokrenite gerilski Drive-in (poznat i kao MobMov): Jeste li ikada poželjeli voditi kazalište na otvorenom ala MobMov.org ili Santa Cruz Guerrilla Drive-in? Ovaj instruktor će vam reći koja vam je oprema potrebna i kako je postaviti. Cyberpunk urbano kazalište, evo nas
Jeftino (kao u besplatnom [kao u pivu]) postolje sa više metara: 4 koraka
Jeftino (kao u besplatnom [kao i u pivu]) postolje sa više metara: Bio sam iznerviran što moram da iskrivim vrat ili nesigurno izbalansiram svoj jeftini višemetar od 4 USD negdje gdje zaista mogu PROČITATI ekran. Odlučio sam uzeti stvari u svoje ruke! Ovo je ujedno i moja prva 'strukturirana', pa ako neko ima korisne komentare
Tajmer za ledeno piće - nema više toplih ili smrznutih piva!: 24 koraka
Tajmer za ledeno piće - Nema više toplih ili smrznutih piva !: Tajmer za ledeno piće kompanije Gadget Gangster je mjerač vremena koji vas obavještava kada se vaše piće ohladi. Kupite komplet! http://gadgetgangster.com/154Nema više toplih limenki ili eksplodiranih boca, samo recite svom mjeraču vremena za zamrznuta napitka koliko vam se sviđa hladno pivo i