Isi kandungan:

Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!): 12 Langkah (dengan Gambar)
Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!): 12 Langkah (dengan Gambar)

Video: Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!): 12 Langkah (dengan Gambar)

Video: Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!): 12 Langkah (dengan Gambar)
Video: Stress, Portrait of a Killer - Full Documentary (2008) 2024, Disember
Anonim
Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!)
Crawl Space Monitor (aka: Tiada Lagi Pipa Beku !!)

Air ke rumah saya datang dari telaga saya melalui ruang merangkak yang tidak dipanaskan. Semua paip dapur dan bilik mandi juga melalui ruang ini. (Paip dalam rumah adalah renungan tamparan pada pertengahan tahun 70an di rumah ini!) Saya telah menggunakan lampu haba pada palam termostatik "tangki stok" untuk mengekalkan suhu di atas beku. Terdapat beberapa masalah yang ketara dengan pengaturan ini: 1 - Tidak dapat dilihat. Petunjuk pertama mentol habis adalah paip beku! 2 - Kadang-kadang palam tidak akan mati. Yang dibuat untuk kejutan jahat datang bil elektrik.3 - Tanpa butiran. Saya menyimpan 3 mentol "dalam talian" (jumlah 750 watt) dan itu adalah penyelesaian semua atau tidak sama sekali. (2 mentol tidak akan selalu mengatasinya.) Setelah diperkenalkan dengan Arduino, dan melihat beberapa perkara yang dilakukan orang lain dengannya, saya memutuskan untuk memberikannya pusaran. Saya akan mengaku keluar dari pelacur bahawa saya tanpa malu-malu menyisipkan dan mengubah kod sampel dari projek orang lain untuk membuat karya ini, walaupun akhirnya saya telah menulis semula semuanya. Pada mulanya, saya membina "WiFi Weather Station" ini yang saya dapati Adafruit.com dan mengubahnya. Daripada mengemas kini laman web, saya menggunakan Perkhidmatan Web Amazon untuk menghantar kemas kini status SMS kepada saya. Saya juga menambah kawalan beberapa relay 110V (https://www.adafruit.com/products/268). Saya kemudian menjadi "pintar" dan memutuskan untuk "mengotak-atiknya" - dengan baik - sesuatu yang memendekkan sesuatu dan saya mendapat asap biru sihir. Semuanya digoreng … Tidak mempunyai pelarian WiFi CC3000 yang lain, kali ini saya melakukan perkara yang berbeza. Saya membuatnya untuk dipantau secara interaktif melalui antara muka bersiri dan kemudian menambahkan antara muka EZ-Link Bluetooth FTDI. (Tidak perlu lagi menyeret komputer riba ke rumah untuk kemas kini perisian !!!) Saya juga membina antara muka Python yang menghubungkan ke unit melalui Bluetooth, bertanya secara berkala, dan memaparkan maklumat status pada Mac saya. (Ada juga "antaramuka manusia" yang dapat diakses oleh perangkat lunak emulasi terminal apa pun.) Sebagai hasil daripada menulis semula dan menghapus semua kod WiFi dan RTC, ukuran proyek ini telah menyusut dari lebih dari 29K menjadi hampir 10K. Ia juga meningkatkan kebolehpercayaan sejauh mana pengawas perkakasan sama sekali tidak tercetus dalam beberapa minggu ia berjalan dan saya telah melakukan tweak.

2/17/16 Kemas kini / nota: Dalam usaha untuk mendapatkan format yang tepat pada beberapa kod (terutama pengekalan kod Python), semuanya berubah dari jelek hingga tidak dapat digunakan. Saya pasti masalahnya ada di suatu tempat, dan saya akan berusaha untuk menyelesaikannya. Sehingga itu, saya telah menambahkan pautan ke fail kod melalui DropBox. Mereka mesti dapat diakses oleh sesiapa sahaja. Sekiranya tidak, beritahu saya supaya saya dapat menghantarkannya kepada anda dengan cara lain!

Langkah 1: Masalah yang perlu diselesaikan

Sistem perlu melakukan perkara-perkara berikut untuk saya: 1 - memantau suhu di ruang merangkak.2 - menyalakan lampu haba seperti yang diperlukan untuk mengekalkan suhu di atas beku.3 - ketika tidak beroperasi, uji secara berkala mentol dan beri saya penglihatan status mereka.4 - beri saya penglihatan suhu dan status sistem, termasuk: - adakah sistem berjalan? - berapakah suhu SEKARANG? - berapakah suhu yang paling sejuk? - berapa banyak mentol yang habis? - berapa banyak mentol yang baik? - berapakah jumlah masa saya dalam "minit cahaya" (aka "waktu bakar")? 5 - melakukan semua perkara di atas tanpa saya perlu merangkak di bawah rumah !!! Saya memutuskan bahawa kaedah termudah untuk menguji operasi mentol adalah dengan sensor cahaya. Beberapa masalah lain yang ingin saya tangani adalah masa kitaran lampu. Terlalu lambat, dan saya membakar elektrik yang tidak perlu. Terlalu cepat, dan saya menghadapi risiko membakarnya dari semua pengaktifan & pemadaman dengan pemanasan dan penyejukan yang berkaitan.

Langkah 2: Perkakasan

Perkakasan
Perkakasan

2 lampu haba 250 watt1 Lampu kerja 500 watt (salah satu lampu panas saya hilang, jadi ini adalah stand-in) Arduino UnoDHT22 Sensor suhu / kelembapan Sensor cahayaGA1A12S202PowerSwitch 110V relayBluefruit EZ-Link Serial Interface & ProgrammerCasing berteknologi tinggi (bak mandi Rubbermaid bersaiz sandwic) Cable gland1 / 2 size breadboardAcrylic plate for breadboard and ArduinoAsorted sort jumper wire. Coleman 5-outlet "strip workshop" Saya juga menggunakan Adafruit Trinket sebagai pengawas perkakasan, tetapi terbukti tidak diperlukan (jinx, tentu saja!) Dan saya menulis arahan yang berasingan mengenainya sehingga saya tidak akan mengulanginya di sini. Pigtail Coleman adalah penemuan yang bagus, kerana ia memberi saya 4 outlet untuk lampu haba saya. Dinilai pada 15 Amps penuh dengan suis dan pemutus dalaman, ia dapat menangani semua yang saya dapat melalui satu saluran.

Langkah 3: Pendekatan

Walaupun sistem ini dibuat aplikasi untuk duduk menunggu, dan untuk melakukan beberapa perkara dengan agak perlahan, apa yang saya tidak mahu lakukan adalah membina sistem di mana pengawal duduk dalam keadaan tertunda () kitaran tidak responsif. Saya juga ingin dapat mengubah parameter konfigurasi sedekat mungkin dalam perjalanan seperti yang saya dapat - pastinya bukan dengan cara yang memerlukan penulisan semula kod atau melakukan operasi pencarian dan penggantian secara besar-besaran pada sumbernya. menjumpai artikel Bill Earl yang paling baik mengenai "Multitasking the Arduino" (mulakan di sini: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) dan sibuk. Dengan membuat kelas "pemasa" dan "pemanas" saya dapat melakukan semua fungsi pemasaan yang saya mahukan tanpa menggunakan penundaan () (dengan hanya beberapa pengecualian) dan mengkonfigurasi mentol ("pemanas") dengan satu baris kod untuk setiap satu.

Langkah 4: Pendawaiannya

Pendawaiannya
Pendawaiannya
Pendawaiannya
Pendawaiannya

Gambar rajah Fritzing tidak merangkumi Bluefruit EZ-LinkArduino 5V & Ground to busboard busDHT22 pin 1 to 5V busDHT22 pin 2 to Arduino pin 7DHT22 pin 4 to Ground bus10K resistor antara pin DHT22 1 dan 2GA1A12S202 pin VCC ke 5V busGA1A12S202 GND pin ke pin GGA1A12S202 GND busGA1A12S202 pin OUT ke Arduino A0Arduino pin 3V ke pin Arduino AREFRelay Ground menuju ke Ground groundRelay 1 memimpin kuasa ke Arduino A1Relay 2 memimpin ke Arduino A2Relay 3 memimpin kuasa ke Arduino A3Relay 4 membawa ke Arduino A4Banyak sambungan anda boleh dibuat semula. Satu-satunya yang kritikal ialah plumbum OUT pada sensor cahaya perlu pergi ke pin analog. Pin-out ini akan berfungsi dengan kod saya seperti yang ditulis. Sekiranya anda menggunakan pengawas perkakasan, anda akan melihat kod saya meletakkan degup jantung pada pin Arduino 2.

Langkah 5: Kod Arduino, Lakaran Utama

CrawlSpace_monitor.ino

Langkah 6: Catatan mengenai Kod

Garis kod berikut membuat contoh pemanas dan menentukan parameter operasi: // Pemanas (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minit), luxDelta) Pemanas pemanas1 = Pemanas (A1, 38, 43, 20, 1440, 5); Pemanas pemanas2 = Pemanas (A2, 36, 41, 20, 1440, 5); Pemanas pemanas3 = Pemanas (A3, 34, 39, 20, 1440, 5); Pemanas pemanas4 = Pemanas (A4, 32, 37, 20, 1440, 5); (Dan ya, saya menentukan semua 4 pemanas walaupun saya hanya menjalankan 3 pada masa ini. Saya masih perlu mendapatkan geganti lain, tetapi kemudian menambahkan pemanas ke-4 akan semudah memasangkannya.) Saya mengejutkan suhu pencetus mereka, bermula pada 38 darjah untuk yang pertama dan berakhir pada 32 untuk 4 yang tidak ada. Salah satu perkara yang saya dapati ketika mula-mula bermain bersama adalah bahawa saya perlu memberi julat suhu dan juga menentukan "masa pembakaran" minimum, atau saya menghidupkan dan mematikan lampu seperti gila. Di sini saya memberikan masing-masing spread 5 darjah dan masa pembakaran minimum 20 minit. Saya menetapkan selang ujian hingga 24 jam dan menetapkan 5 lux sebagai bacaan cahaya minimum yang saya perlukan untuk menentukan bahawa mentol masih berfungsi. Hampir semua perkara yang perlu dikonfigurasi ada di sini dalam 4 baris kod ini.

Langkah 7: Kod Arduino, Kelas

Saya membuat 3 kelas untuk projek ini. Mereka adalah "pemasa", "pemanas" dan "penumpuk". Dengan sedikit pemikiran, saya seharusnya dapat melipat penumpuk ke pemasa, tetapi saya belum melakukannya. Di sini mereka lengkap: heater.h

pemasa.h

penumpuk.h

Langkah 8: Memantau Sistem

Memantau Sistem
Memantau Sistem

Saya membuat satu antara muka untuk dua monitor yang berasingan. Ini adalah sesi interaktif melalui konsol bersiri. Dalam kes saya, saya menggunakan Bluefruit EZ-Link sehingga saya dapat mengakses sistem tanpa merangkak di bawah rumah atau cuba merapatkan kabel USB di antara balok lantai! Manfaat tambahan dari EZ-Link ialah saya dapat memuat naik kod program baru ke Arduino melalui Bluetooth juga. Antara muka "manusia" dapat diakses (Bluetooth atau kabel fizikal) dengan perisian emulasi terminal, termasuk siri Arduino IDE memantau. Semasa anda mula-mula menyambung, tidak ada respons, tetapi menekan butang "u" (untuk "kemas kini") dan "t" (untuk "ujian") akan memberi anda output yang ditunjukkan dalam tangkapan skrin. "m" ("monitor") dan "s" ("sys check") memberi anda data yang sama tetapi dalam format yang lebih kurang dibaca. Ini dimaksudkan untuk "dikikis" oleh program lain untuk paparan automatik. Saya menyusun skrip Python yang melakukan itu. Mana-mana kunci lain mengumpulkan mesej ralat yang ditunjukkan. Anda akan melihat nilai untuk "masa bakar" - fikirkan seperti "mentol minit" - 1 mentol selama 10 minit = 10 minit, 3 mentol selama 10 minit = 30 minit.

Langkah 9: Skrip Python

Skrip Python
Skrip Python

crawlspace_gui.py

Langkah 10: Masih Perlu Dilakukan…

Mungkin tidak cantik, atau sempurna, tetapi berkesan dan membuktikan dirinya boleh dipercayai. DAN, saya tidak mempunyai masalah paip beku pada musim sejuk ini !!! Saya mempunyai senarai perkara yang perlu dilakukan. Sudah tentu, sekarang ia berfungsi, saya mungkin atau tidak pernah dapat mencapai sebahagian besar item ini: Dapatkan Bluetooth berjalan di salah satu Raspberry Pi saya supaya saya dapat membuat monitor khusus. Ketahui lebih banyak lagi Python - kemudian bersihkan Python antara muka. Pemisahan elemen tidak sengaja dan saya tidak faham mengapa ada. Tambahkan antara muka ke sesuatu seperti perkhidmatan IO Adafruit supaya saya dapat memantau dari mana saja. Tambahkan amaran pesanan teks. Pindah ke pengawal yang lebih kecil (mungkin Metro Mini atau Trinket Pro?), Geganti yang lebih murah, dan pembungkusan yang lebih baik. Dapatkan dari papan roti dan ke papan "Perma Proto". Parameter konfigurasi di EEPROM. Antara muka yang lebih terperinci yang akan menunjukkan -apa-mentol itu bagus, dan mungkin juga membakar masa untuk mentol individu. Semasa saya menyelesaikannya, saya akan kembali dan mengemas kini Arahan ini.

Langkah 11: Kemas kini 3/16, Bina "kekal"

Kemas kini 3/16,
Kemas kini 3/16,
Kemas kini 3/16,
Kemas kini 3/16,
Kemas kini 3/16,
Kemas kini 3/16,

Mendapat rehat yang baik dalam cuaca sejuk, saya telah mengambil unit itu dan memindahkannya ke alat kawalan yang lebih kecil (saya bermaksud menggunakan Trinket Pro, tetapi Adafruit Metro Mini duduk di sekitar tidak dituntut oleh projek lain), memasangnya papan Perma-Proto, dan meletakkan semuanya dalam keadaan lebih baik. Berdasarkan sejauh mana ia boleh dipercayai, saya tidak meletakkan pengawas perkakasan di atasnya. Saya masih hanya menggunakan 3 lampu / relai di mana sistem akan mengendalikan 4. Modul Bluetooth berada di header yang dipateri, jadi boleh dikeluarkan jika saya memerlukannya di tempat lain. Tidak ada perubahan kod yang diperlukan untuk beralih ke pengawal baru - kompilasi dan muat yang mudah membuatkan saya dapat berjalan dan berjalan dalam beberapa minit. (Metro Mini mempunyai pinout yang sama dengan Arduino Uno dan juga pemproses ATMega328.)

Langkah 12: Kemas kini 12/1/2018 - Selamat datang ke IoT

Sistem ini berfungsi dengan sempurna untuk kami. Selepas dua musim sejuk yang teruk, TIADA paip beku. Sebenarnya, sistem ini dapat mengekalkan paip tanpa membakar lebih daripada 2 mentol. Mendapatkan mentol ke-3 dalam talian adalah insurans yang bagus, tetapi kita tidak memerlukannya sehingga kini.

Menjelang tahun 3 untuk sistem ini, modul Bluetooth gagal. Kami juga membina rumah baru, jadi sistem pemantauan berada di luar jangkauan Bluetooth. (Rumah lama tinggal sebentar, tetapi tidak selamanya.) Pada masa yang sama, saya telah banyak melakukan dengan pemproses WiFi ESP8266; baik dalam format Adafruit Feather dan dalam format "NodeMCU" sumber terbuka. NodeMCU secara amnya boleh didapati di Amazon dengan harga sekitar $ 5 - lebih kurang jika anda membeli secara pukal dan / atau dari seseorang seperti AliExpress.

Versi baru ini mengekalkan antara muka bersiri, sehingga masih dapat digunakan dengan modul Bluetooth atau sambungan bersiri USB langsung dan skrip python sebelumnya, namun, versi baru ini mempunyai antara muka halaman web. Seperti yang ditulis, ia merangkumi ciri berikut:

Pengurus rangkaian WiFi untuk menghilangkan kelayakan WiFi yang dikodkan keras.

Keupayaan untuk mengemas kini firmware melalui udara menggunakan Arduino IDE (selagi anda berada di rangkaian WiFi yang sama - perhatikan bahawa setelah melakukan muat naik USB ke peranti, tetapan semula diperlukan sebelum kemas kini OTA berfungsi). HARAP menukar kata laluan OTA pada baris 6 agar unik bagi anda !!

Halaman web yang memaparkan data yang sama dengan skrip python, dengan penyegaran automatik setiap minit. Saya tidak meletakkan apa-apa keselamatan di halaman, kerana hanya paparan.

Anda boleh mendapatkan kod baru di sini. Perhatikan bahawa nama pin berubah ketika berpindah ke NodeMCU.

Disyorkan: