Daftar Isi:

Tweet-A-Temp: 8 Langkah
Tweet-A-Temp: 8 Langkah

Video: Tweet-A-Temp: 8 Langkah

Video: Tweet-A-Temp: 8 Langkah
Video: Tame Impala - The Less I Know The Better (Audio) 2024, Juli
Anonim

Oleh Eksperimen Homebrew Z0tZotIkuti Lainnya oleh penulis:

Magic 8 Beer 8 Sisi Mati
Magic 8 Beer 8 Sisi Mati
Magic 8 Beer 8 Sisi Mati
Magic 8 Beer 8 Sisi Mati

Anak Sulung saya (Minion #1) dan saya mulai membuat Tweet-A-Watt dan gagal mengikuti petunjuk dengan benar, yaitu kami menjadikan kedua Receiver sebagai receiver standar alih-alih hanya satu dan kemudian mengisi setengah receiver XBee kedua. kami memiliki dua pilihan, memotong bagian tambahan, atau sesuatu yang lain. Mengingat bahwa saya belum menemukan Kill-A-Watt secara lokal, dan saya memiliki termometer eksternal/internal yang sudah lama ingin saya komputerisasikan selama 10 tahun, saya tahu apa yang harus saya lakukan: Saya harus menggunakan Termometer untuk mengukur suhu bak mandi air panas saya, dan kemudian tweet! Saya baru-baru ini memberi Minion #1 tugas untuk menggambarkan pengontrol bak mandi air panas tanpa batas. Dia menyebutkan, baik kita bisa membuatnya nirkabel, tapi tidak, itu konyol … Saya suka ketika rencana 10 tahun membuahkan hasil. Lihat di Twitter

Langkah 1: Bangun Penerima Xbee

Bangun Penerima Xbee
Bangun Penerima Xbee

Bangun dua penerima XBEE. Saya menggunakan Receiver dari Lady Ada, receiver apa pun bisa. Anda memerlukan akses ke pin VREF dan AD0 XBee. Trik untuk Tweet-A-Watt adalah konfigurasi. Akibatnya Anda mengatur salah satu perangkat untuk mengulang nilai dari Kill-A-Watt dengan: ATMY=1, SM=4, ST=3, SP=C8, D4=2, D0=2, IT=13, IR=1 Ini mengatur alamat (1), mengatur mode tidur, pengatur waktu, dan periode, dan kemudian mengatur Pin 4 dan 2 ke mode input Analog (2), yang akan mengirim paket 0x13 (19 desimal), 1 ms antar sampel. Triknya disini adalah Analog Input. Anda dapat membaca tegangan kecil (0-5V) langsung oleh XBee. Di Tweet-A-Watt Anda akan mengatur pin 4 dan 0 untuk mengirim Amps dan Volt yang diukur dengan Kill-A-Watt. Pada kenyataannya tidak mengirim itu, ia mengirimkan tegangan kecil yang diukur oleh chip di Kill-A-Watt ke penerima XBee yang terpasang ke komputer. Perangkat lunak di komputer terus-menerus membaca paket yang diterima dan menghitung ulang tegangan dan arus listrik aktual, dan kemudian menghitung Watt.

Langkah 2: Termometer

Termometer
Termometer
Termometer
Termometer
Termometer
Termometer

Saya membeli dua termometer Indoor/Outdoor ini sekitar 10 tahun yang lalu dari home depot. Saya selalu terpesona bahwa "termometer" luar dicolokkan ke unit dasar dengan apa yang tampak seperti colokan audio standar. Saya selalu bertanya-tanya apakah saya bisa mengukur suhu dengan menghubungkannya ke jack mic di komputer.

Ternyata saya mungkin bisa membuatnya bekerja, tetapi itu akan sulit. Colokan sebenarnya adalah jack 3/32 , bukan colokan audio 1/8. Ini adalah colokan standar untuk ponsel untuk mikrofon eksternal. Ini menimbulkan masalah karena saya tidak dapat menemukan colokan mikrofon di tumpukan sampah saya. tidak dipasang di permukaan. Saya harus membeli satu set Radio Shack ($2), yang menambah penundaan besar pada proyek (mencapai gubuk tidak mudah). Saya membongkar satu unit sebelum saya tiba-tiba menyadari bagaimana benda itu bekerja, itu adalah pembagi tegangan! Jelas sekali saya memikirkannya. Itu membuat hidup sangat mudah.

Langkah 3: Apa itu Pembagi Tegangan?

Apa itu Pembagi Tegangan?
Apa itu Pembagi Tegangan?

Salah satu tempat terbaik untuk belajar tentang Elektronik adalah Wisconsin Online, pembagi dijelaskan di halaman itu (kanan bawah), atau Anda dapat mengunjungi Halaman Wikipedia Tegangan. Singkatnya, jika Anda memiliki dua resistor secara seri, penurunan tegangan pada setiap resistor adalah sebanding dengan ukuran resistor. Jika Anda memiliki Tegangan V pada rangkaian R(1) + R(2), maka V = V(1) + V(2). Jadi jika V=3V dan V(2) = 2V, Anda tahu bahwa V(1) = 1V. Sekarang dasar Hukum Ohm adalah bahwa arus (I) adalah V/R. Dalam rangkaian seri, arusnya sama di seluruh, sehingga arus yang melalui A dan B adalah sama untuk seluruh rangkaian. Oleh karena itu I = V1/R1 = V2/R2. Kita tahu V2 = V - V1, Memasukkan, kita melihat V1/R1 = (V-V1)/R2. Pemecahan kita mendapatkan R2 = R1*(V-V1)/V1 Jadi jika kita tahu jika kita tahu V(1), V, dan R(2), kita dapat menyelesaikan R2. Jika kita memiliki R2, kita tahu nilai dari Termistor!

Langkah 4: Apa itu Termistor?

Apa itu Termistor?
Apa itu Termistor?

Termistor adalah resistor yang mengubah resistansi dengan suhu. Menggunakan teknik dari Pembagi Tegangan untuk menentukan Resistansi, kita dapat mengetahui suhunya. Masalahnya adalah saya memiliki termistor murah dalam casing dari produk berusia 10 tahun. Bagaimana saya bisa membuat fungsi untuk beralih dari resistensi ke suhu? Yah, saya punya Termometer yang dicolokkan! Jadi saya mengukur banyak. Saya menyalin suhu ke bawah dan kemudian mengukur resistansi Termistor. Saya menaruhnya di lemari es, lalu saya memasukkannya ke dalam air hangat. Kemudian saya akan mengambil suhu kamar karena saya punya waktu. Saya kira saya bisa membaca Wikipedia plage dapat mencoba menebak faktor a dan b, tetapi saya berasumsi saya menggunakan non-linear, komponen yang mungkin gagal yang tidak lagi cocok dengan pembuatannya spesifikasi. Oh dan saya malas. Jadi saya membuang semua nilai ke dalam Excel, dan kemudian membuat grafiknya. Awalnya saya khawatir bahwa saya harus mengingat matematika gelap yang dalam dari sesuatu seperti "kecocokan kuadrat terkecil" ketika saya menemukan bahwa Excell akan melakukan ini untuk saya! Jelas saya kehilangan celah pada grafik, tetapi saya mendapat banyak data bagus tentang suhu bak mandi air panas (100-105F). Saat memeriksa rentang suhu ruangan, saya melihat sesuatu, yang hampir membuat pekerjaan saya tidak berharga. Termometer "Suhu Tepat" melaporkan kesalahan 3-7 derajat antara "dalam ruangan" dan "luar ruangan" ketika Termistor berjarak beberapa inci! Sekarang ini mungkin karena saya mencampur dan mencocokkan termistor antar unit, tetapi saya bertaruh itu lebih disebabkan oleh kualitas barang berusia 10 tahun, $ 10&Terlepas dari "akurasi" suhu, saya membutuhkan presisi dan beberapa tes yang sama rentang menunjukkan hasil yang sangat dekat selama berhari-hari. Dalam jangka panjang saya mungkin akan memasang termistor ke pipa yang mengarah ke bak mandi air panas, jadi saya akan tetap membutuhkan offset. Jadi dengan mendapatkan Excel untuk menampilkan persamaan, saya kemudian memasukkannya ke dalam kode, dan sejauh ini " Menutup."

Langkah 5: Sirkuit Pemancar

Sirkuit Pemancar
Sirkuit Pemancar

Rangkaian pemancar sederhana. Saya memilih resistor 100 kOhm untuk R2 karena sepertinya cocok dengan kisaran dari grafik, dan saya memiliki cadangan untuk mematri berbagai hal dengan Minion. Saya menghubungkan ini secara seri dengan Termistor melalui konektor. Kemudian saya menambahkan paket baterai. Saya Menjalankan 3 V ke VREF dan Bagian Atas pembagi Tegangan dan ke input Xbee +3V. Saya meletakkan GND (Battery Negative) ke input GND, dan ke bagian bawah pembagi. Saya kemudian menghubungkan AD0 (Volts in) ke tengah Rangkaian Pembagi Tegangan.

AD0 akan membaca tegangan relatif dari VREF ke V(1). Jadi saat baterai menurun, tegangan relatif harus turun sama. Akhirnya saya akan menyalakan unit dengan sumber listrik lokal. Unit yang sudah jadi berfungsi dengan baik, kami menghubungkan semuanya dengan klip buaya, yang membuatnya rapuh. Setelah saya mendapatkan koneksi 3/32 perempuan, saya menempatkan pemancar di bak plastik acak yang kami miliki (bekas wadah hummus). Ini harus melindunginya dari cuaca. Karena saya membeli konektor "panel mount", itu sesederhana seperti mengebor lubang di plastik untuk menambahkan konektor ke luar dengan sambungan yang cukup kedap air. Setelah kami memilikinya, saatnya untuk menguji.

Langkah 6: Rumah, Rumah, Tidak Memiliki Jangkauan

Rumah, Rumah, Tidak Memiliki Jangkauan
Rumah, Rumah, Tidak Memiliki Jangkauan
Rumah, Rumah, Tidak Memiliki Jangkauan
Rumah, Rumah, Tidak Memiliki Jangkauan
Rumah, Rumah, Tidak Memiliki Jangkauan
Rumah, Rumah, Tidak Memiliki Jangkauan

Salah satu hal pertama yang kami perhatikan, adalah bahwa jangkauan itu mati dengan kematian yang mengerikan segera setelah kami keluar dari kantor dengan pemancar. Kami mencoba dari ruangan yang berbeda, dan hasilnya mengerikan. 1 kaki jauhnya itu hancur. Saatnya untuk melihat solusi. Terpikir oleh saya bahwa di mana kami menguji kami memiliki 4 sumber Wi Fi dalam jarak 5 kaki, semuanya dalam kisaran 2,5 Ghz seperti Xbee. Kami juga tidak "membidik Xbee sama sekali. Setelah meneliti, saya memutuskan bahwa saya dapat membeli radio Xbee yang lebih kuat (sekitar $23) atau menambahkan antena. Salah satu hal yang saya butuhkan adalah tes Jangkauan yang baik. Perangkat lunak X-CTU dari Digi memiliki "Tes Jangkauan" bawaan, tetapi tidak melakukan apa-apa. Saya menghabiskan beberapa waktu mencoba mencari cara untuk membuatnya bekerja. Sebenarnya ini lebih mudah dilakukan daripada yang dikatakan. Saya tidak benar-benar membutuhkan tes X-CTU, hanya Nilai "RX Signal Strength Indicator" (RSSI). Saya melihat di xbee.pyTweet-A-Watt menggunakan dan di sana, baris 39: [code]self.rssi = p[3][/code]Yang berarti itu adalah bagian dari nilai pengembalian Xbee! (xb.rssi dalam wattcher), jadi saya memodifikasi baris debug untuk peretasan saya: print str(counter) +": RSSI: " + str(xb.rssi) + " | " + time.strftime("%Y %m %d, %H:%M")+ ", " + ": Tegangan: " + str(CalcualtedVolts) + " avgv " + str(avgv) + " Termistor: " + str(x) + " Suhu: " + str(Suhu) Yang menghasilkan garis seperti ini: 373: RSSI: 82 | 2009 04 26, 11:18,: Tegangan: 1.80100585938 avgv 593 Thermistor: 71.2276559865 Suhu: 78.6813444881 Anda dapat lihat juga RSSI dengan pemrosesan, dari halaman Tom's Igoe. Meskipun Anda ingin mengubah panjang paket (di atas), karena Pemrosesan mengeluh tentang penulisan melewati akhir ukuran buffer paket. Saya yakin Anda harus lebih besar dari 2 * yang diharapkan paket panjang. Kode Tom melihat ke belakang untuk paket sebelumnya yang berarti jika melewatkan indikator paket Ox7E, itu bisa berjalan untuk sementara. Mengingat saya berada di dekat tepi luar rentang pengukuran, itu bisa terjadi untuk sementara waktu. Saya mengatur milik saya ke 600 dan itu berhenti memberi saya pesan "kesalahan, menonaktifkan serialEvent()". Kode Tom hanya mencetak pengaturan terbaru, yang tidak terlalu berguna bagi saya. Baris debug saya, mari saya lacak berubah ketika Minion #1 bertanya-tanya. Sekarang kami memiliki cara yang baik untuk mengukur, lebih dari "hey dad we have a packet" sudah waktunya untuk mencoba beberapa ide antena buatan rumah! Menggunakan ide dari https://www.usbwifi.orconhosting.net.nz/ Saya telah menemukan bahwa Corner Cube mengukur penurunan dB, meskipun dalam praktiknya tampaknya tidak membantu menghubungkan pasangan yang terputus. The Vegatible Steamer sebenarnya adalah yang terbaik dalam membidik dan menghubungkan kembali. Pengaturan USB Wifi jauh berbeda dari beberapa orang lain. Kapal uap memiliki batang di tengah yang memudahkan penempatan XBee. Mangkuk pho dengan kertas timah juga terlihat menjanjikan (meskipun kami baru saja melepas kertas timahnya nanti dan menahannya di tempatnya). Kami juga mencoba membuat parabola dengan sepotong "track" roda panas yang ditekuk, tetapi tampaknya tidak membantu. Salah satu masalahnya adalah kami menguji di tepi luar jangkauan. Sebagian besar radio 2.5Ghz, khususnya XBee, menggunakan spread Spectrum yang berarti mereka dapat mengambil waktu untuk "menyinkronkan" dan kemudian perangkat lunak XBee mencari awal dari paket XBee sebelum memicu. Ini berarti jika Anda mendapatkan efek semua atau tidak sama sekali. Entah radio mengunci satu sama lain, atau tidak. Terkadang sepertinya keberuntungan, tetapi sebenarnya Anda adalah antena pada rentang ini dan dapat memengaruhi hasilnya. Saya pergi untuk membeli dua kapal uap tetapi kemudian menemukan bahwa harga sebuah kapal uap dari supermarket lokal adalah $10, dan dengan harga 2 kapal uap, saya bisa mendapatkan XBee yang lebih bertenaga. Jadi saya melihat beberapa tempat lagi dan menemukan saringan yang cukup dalam yang ternyata lebih baik. Itu $7. Saya percaya kedalaman itu penting, karena saya berada di ujung transmisi, itu mencerminkan lebih banyak sinyal (sesuai catatan di https://www.usbwifi.orconhosting.net.nz/number13.jpg). Hasil akhir, adalah bahwa dengan pengukus sayuran di satu ujung (untuk diganti) dan saringan di sisi lain, saya mendapat sinyal sekitar 20-30m, dari kantor interior, melalui 3-4 dinding, keluar ke bak mandi air panas!Pro tip: Ingat untuk membawa saringan jika Anda ingin 1) Pasangan Anda tinggal, dan/atau 2) Ingin sayuran kukus nanti. Secara pribadi saya suka tampilan kukusan sayuran yang seperti kelopak.

Langkah 7: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Dimulai dengan Tweet-A-Wattsoftware saya mulai meretas kode python. Sebagian besar saya perlu menghapus konversi Watt, fungsi histori, dan kemudian saya perlu menambahkan sejumlah perlindungan bagi dengan 0 (paket Tweet-A-Watt menganggap akan memiliki data). Saya kemudian menambahkan rumus dari Excel ke dalam program dan diuji. Saya mengaturnya untuk mencetak setiap paket dan saya memiliki banyak debug dalam kode untuk menangkap masalah. Saya mencoba membuat bagian grafik berfungsi, tetapi saya menyerah yang membawa saya ke: Python Rant: Ini adalah kedua kalinya saya mencoba melakukan proyek besar dengan Python. Saya tidak bisa mendapatkan semua dependensi perpustakaan dan paket dasar untuk bekerja di bawah 20 jam di Windows, Windows 64, Ubuntu dan Fedora. Saya akhirnya harus membangun hampir semuanya dari awal dan bahkan beberapa fungsi tidak berfungsi. Saya mencoba 2.4, 2.5, 2.6 dan berbagai versi 3. X, dan kemudian versi masing-masing perpustakaan, yang pada gilirannya memiliki ketergantungan pada paket lain. Sementara orang lain mungkin memiliki kata-kata kasar terhadap bahasa, saya menemukan hanya menginstal, bahkan menggunakan banyak "installer mudah" untuk menjadi menakutkan di terbaik! Setelah saya menghitung suhu, saya membuat penyesuaian 1 derajat, karena saya tidak percaya bak mandi air panas berada di 106F. Saya benar-benar tidak percaya itu juga di 105. Saya kemudian mengubah logika pelaporan dan twitter. Karena saya tidak yakin apakah saya akan mendapatkan paket, atau paket yang bagus, saya memilih untuk melaporkan suhu satu jam sekali. Saya berasumsi saya akan memotongnya sebentar lagi. Saat ini skrip berjalan sebagai pengguna biasa. Saya ingin memindahkannya ke layanan pada akhirnya.

Langkah 8: Langkah Selanjutnya

Ada beberapa langkah selanjutnya yang jelas:

1) Ganti Saringan Sayuran a. Minion membutuhkan sayuran mereka! B. Lagipula yang itu sudah tua. 2) Tempatkan antena Hot Tub di bawah dek a. Dek mungkin membuatnya lebih "lebih jauh" tetapi akan memungkinkan pengaturan yang lebih buruk. B. Saya kemudian dapat menjalankan termistor ke bagian bawah dan menemukan tempat yang lebih baik. 3) Tambahkan lebih banyak sensor a. Yang mudah adalah sensor suhu luar. B. Tetapi tidak ada alasan kami tidak dapat mendeteksi keadaan panel kontrol, terutama sensor panas yang secara ajaib disentuh ketika anak-anak selesai. C. Sensor cuaca lainnya (angin, kelembaban, dll) d. Akan menyenangkan untuk mengontrol bak mandi air panas dan saya bisa mematikan pemanas untuk sebagian besar siang dan malam. 4) Saya dapat menyesuaikan perangkat lunak a. Minion sudah menginginkan pesan yang lebih baik per suhu. B. Kami harus dapat menanggapi balasan dan DM. C. Saya harus men-tweet lebih cerdas (kurang dari sekali dalam satu jam). D. Saya memiliki beberapa hal menyenangkan lainnya yang direncanakan.

Direkomendasikan: