İçindekiler:

Tweet-A-Temp: 8 Adım
Tweet-A-Temp: 8 Adım

Video: Tweet-A-Temp: 8 Adım

Video: Tweet-A-Temp: 8 Adım
Video: Elon Musk ve Cumhurbaşkanı Erdoğan'ın samimi anları! #elonmusk #shorts #erdoğan #twitter #qatar2022 2024, Kasım
Anonim

Z0tZot's Homebrew Experiments tarafındanYazarın daha fazlasını izleyin:

Magic 8 Bira 8 Taraflı Kalıp
Magic 8 Bira 8 Taraflı Kalıp
Magic 8 Bira 8 Taraflı Kalıp
Magic 8 Bira 8 Taraflı Kalıp

En Büyük Oğlum (Minyon #1) ve ben bir Tweet-A-Watt oluşturmaya başladık ve yönergeleri doğru bir şekilde takip edemedik, yani ikinci XBee alıcısını yalnızca bir ve daha sonra yarısını doldurmak yerine her iki Alıcıyı da standart alıcılar yaptık. iki seçeneğimiz vardı, ya fazla parçaları kes ya da başka bir şey. Henüz yerel olarak bir Kill-A-Watt bulamadığım ve 10 yıldır bilgisayara aktarmak istediğim bu harici/dahili termometreye sahip olduğum göz önüne alındığında, ne yapmam gerektiğini biliyordum: Termometreyi ölçmek için kullanmam gerekiyordu. jakuzimin sıcaklığını ve ardından tweet'i at! Kısa bir süre önce Minion #1'e sınırsız bir jakuzi denetleyicisini tanımlaması için bir görev vermiştim. Kablosuz yapabileceğimizi söyledi, ama hayır, bu aptalca…10 yıllık bir planın gerçekleşmesine bayılıyorum. Twitter'da görün

Adım 1: Xbee Alıcılarını Oluşturun

Xbee Alıcılarını Oluşturun
Xbee Alıcılarını Oluşturun

İki XBEE alıcısı oluşturun. Lady Ada'nın Alıcılarını kullandım, herhangi bir alıcı yapacaktır. XBee'nin VREF ve AD0 pinine erişmeniz gerekecek. Tweet-A-Watt'ın püf noktası yapılandırmadır. Gerçekte, cihazlardan birini Kill-A-Watt'tan gelen değerleri şu şekilde tekrarlayacak şekilde ayarladınız: ATMY=1, SM=4, ST=3, SP=C8, D4=2, D0=2, IT=13, IR=1 Bu, adresi (1) ayarlar, uyku modunu, zamanlayıcıyı ve periyodu ayarlar ve ardından Pin 4 ve 2'yi Analog giriş moduna (2) ayarlar, 0x13 (19 ondalık) paketler, örnekler arasında 1 ms gönderir. Buradaki hile Analog Giriştir. Küçük voltajları (0-5V) doğrudan XBee ile okuyabilirsiniz. Tweet-A-Watt'ta, Kill-A-Watt tarafından ölçülen Amper ve Voltları göndermek için 4 ve 0 pinlerini ayarlarsınız. Gerçekte bunu göndermez, Kill-A-Watt'taki çipler tarafından ölçülen küçük voltajı bir bilgisayara bağlı olan XBee alıcısına gönderir. Bilgisayardaki yazılım, alınan paketleri sürekli olarak okur ve gerçek voltaj ve amperi yeniden hesaplar ve ardından Watt'ı hesaplar.

Adım 2: Termometre

Termometre
Termometre
Termometre
Termometre
Termometre
Termometre

Yaklaşık 10 yıl önce bu İç Mekan/Dış Mekan termometrelerinden ikisini Home Depot'tan satın aldım. Dış "termometrenin" standart bir ses fişi gibi görünen bir şeyle ana üniteye takılması beni her zaman büyüledi. Bunu bilgisayardaki bir mikrofon jakına takarak sıcaklığı ölçebilir miyim diye hep merak etmişimdir.

Muhtemelen çalıştırabileceğim ortaya çıktı, ama zor olurdu. Fiş aslında 1/8 ses fişi yerine 3/32 jaktır. Bu, harici mikrofonlar için cep telefonları için standart fiştir. Çöp yığınlarımda herhangi bir mikrofon fişi bulamadığım için bu bir sorun oluşturdu. Yüzeye monte değildiler. Radyo Kulübesi (2$) satın almam gerekti, bu da projeye büyük bir gecikme ekledi (bir kulübeye gitmek kolay değildi.) Birdenbire kimin nasıl çalıştığını anlamadan önce bir üniteyi parçalara ayırdım., voltaj bölücüydü, düşününce bariz belliydi, hayatı çok kolaylaştırdı.

Adım 3: Gerilim Bölücü Nedir?

Gerilim Bölücü Nedir?
Gerilim Bölücü Nedir?

Elektronik hakkında bilgi edinmek için en iyi yerlerden biri Wisconsin Çevrimiçi bölücüler o sayfada açıklanmıştır (sağ altta) veya Voltaj Wikipedia Sayfasını ziyaret edebilirsiniz. Kısacası, seri olarak iki direnciniz varsa, her bir dirençteki voltaj düşüşü direncin büyüklüğü ile orantılıdır. Bir R(1) + R(2) devresinde Voltaj V varsa, o zaman V = V(1) + V(2). Yani V=3V ve V(2) = 2V ise, V(1) = 1V olduğunu bilirsiniz. Şimdi Ohm Yasasının temeli, akımın (I) V/R olmasıdır. Seri bir devrede, akım baştan sona aynıdır, bu nedenle A ve B'den geçen akım tüm devre için aynıdır. Bu nedenle I = V1/R1 = V2/R2. V2 = V - V1'i biliyoruz. Takarken V1/R1 = (V-V1)/R2 görüyoruz. Çözerek R2 = R1*(V-V1)/V1 elde ederiz. Yani eğer V(1), V ve R(2)'yi biliyorsak, R2 için çözebiliriz. R2'ye sahipsek, değerini biliyoruz. Termistör!

Adım 4: Termistör Nedir?

Termistör Nedir?
Termistör Nedir?

Bir termistör, sıcaklıkla direnci değiştiren bir dirençtir. Direnci belirlemek için Voltaj Bölücü tekniklerini kullanarak, hangi sıcaklığın olduğunu söyleyebiliriz. Sorun şu ki, 10 yıllık bir üründen bir kasada ucuz bir termistör var. Dirençten sıcaklığa geçecek bir işlevi nasıl yaratmam gerekiyordu? Takıldığı bir Termometrem var! Bu yüzden çok ölçtüm. Sıcaklığı kopyaladım ve ardından Termistör direncini ölçtüm. Buzdolabına koydum, sonra ılık suya koydum. Daha sonra zamanım olduğu için oda sıcaklıklarını ölçecektim. Wikipedia sayfasını okuyabileceğimi sanıyordum a ve b faktörlerini tahmin etmeye çalışabilirdim, ancak artık üretimle eşleşmeyen, doğrusal olmayan, olası bir arızalı bileşen kullandığımı varsaydım. özellikler. Oh ve ben tembelim. Bu yüzden tüm değerleri Excel'e döktüm ve sonra grafiğini çizdim. Excell'in bunu yapacağını keşfettiğimde, "en küçük kareler uyumu" gibi bir şeyin derin karanlık matematiğini hatırlamak zorunda olduğumdan endişeliydim. Ben! Açıkçası grafikte boşluklar eksik, ama jakuzi sıcaklıkları (100-105F) hakkında çok sayıda iyi veriye sahibim. Oda sıcaklığı aralıklarını kontrol ederken bir şey fark ettim, bu neredeyse işimi değersiz kılıyor. "Hassas Sıcaklık" termometresi, Termistör inç uzaktayken "iç mekan" ve "dış mekan" arasında 3-7 derecelik bir hata bildirdi! Şimdi bunun nedeni, termistörü birimler arasında karıştırıp eşleştirdiğim için olabilir, ancak bahse girerim 10 yıllık, 10 dolarlık bir öğenin kalitesiyle daha fazlasına sahiptir ve sıcaklığın "doğruluğuna" bakılmaksızın, hassasiyete ve aynı çoklu testlere ihtiyacım vardı. aralığı günler içinde çok yakın sonuçlar gösterdi. Uzun vadede, termistörü sıcak küvete giden bir boruya bağlayacağım, bu yüzden yine de bir ofset ihtiyacım olacak. Bu yüzden, Excel'in denklemi göstermesini sağlayarak, kodun içine koydum ve şimdiye kadar " kapat."

Adım 5: Verici Devresi

Verici Devresi
Verici Devresi

Verici devresi basittir. Grafikteki aralığa uyacak gibi göründüğü için R2 için 100 kOhm'luk bir direnç seçtim ve Minyonlarla çeşitli şeyleri lehimlemek için yedek bir direncim vardı. Bunu bir konektör aracılığıyla Termistör ile seri olarak bağlarım. Sonra bir pil takımı ekledim. 3 V'u VREF'e ve Gerilim bölücünün Tepesine ve Xbee +3V girişine koştum. GND'yi (Pil Negatif) GND girişine ve bölücünün altına koydum. Daha sonra AD0'ı (Volt girişi) Voltaj Bölücü Devresinin ortasına bağladım.

AD0, VREF'den V(1)'e göreli bir voltaj okuyacaktır. Pil azaldıkça, bağıl voltaj da aynı şekilde düşmelidir. Sonunda üniteye yerel bir güç kaynağı ile güç vereceğim. Bitmiş ünite iyi çalıştı, her şeyi timsah klipsleriyle bağladık, bu da onu kırılgan hale getirdi. Dişi 3/32" bağlantısını aldıktan sonra, vericiyi elimizdeki rastgele bir plastik küvete (eski bir humus kabı) yerleştiriyorum. Bu onu hava koşullarından korumalıdır. "Panel montajlı" konektörler aldığım için bu kadar basitti. oldukça su geçirmez bir bağlantı ile dışarıya konektör eklemek için plastikte bir delik açmak gibi.

Adım 6: Ev, Ev, Menzil Yok

Ev, Ev, Menzil Yok
Ev, Ev, Menzil Yok
Ev, Ev, Menzil Yok
Ev, Ev, Menzil Yok
Ev, Ev, Menzil Yok
Ev, Ev, Menzil Yok

Fark ettiğimiz ilk şeylerden biri, biz vericiyle birlikte ofisten çıkar çıkmaz menzilin korkunç bir şekilde öldüğü oldu. Farklı bir odadan denedik ve sonuçlar korkunçtu. 1 metre ötede patladı. Çözümlere bakmanın zamanı geldi. Test ettiğimiz yerde, hepsi Xbee gibi 2,5 Ghz aralığında, 5 fit içinde 4 Wi Fi kaynağımız olduğu aklıma geldi. Ayrıca Xbee'yi hiç hedef almamıştık. Araştırmadan sonra daha güçlü bir Xbee radyosu (yaklaşık 23 $) satın alabileceğime veya anten ekleyebileceğime karar verdim. İhtiyacım olan şeylerden biri iyi bir Menzil testiydi. Digi'den X-CTU yazılımı yerleşik bir "Menzil Testi" var, ama hiçbir şey yapmadı. Nasıl çalışacağını bulmak için biraz zaman harcadım. Aslında bu, söylendiğinden daha kolaydı. Gerçekten X-CTU testine ihtiyacım yoktu, sadece "RX Sinyal Gücü Göstergesi" (RSSI) değeri.xbee.pyTweet-A-Watt kullanımlarına baktım ve tam orada, 39. satır: [code]self.rssi = p[3][/code]Bu, bunun bir parçası olduğu anlamına geliyor (watcher'da xb.rssi), bu yüzden hack'im için bir hata ayıklama satırını değiştirdim: print str(counter) +": RSSI: " + str(xb.rssi) + " | " + time.strftime("%Y %m %d, %H:%M")+ ", " + ": Voltaj: " + str(HesaplanmışVolts) + " avgv " + str(ortgv) + " Termistör: " + str(x) + " Sıcaklık: " + str(Sıcaklık) Şu şekilde bir çizgi oluşturan: 373: RSSI: 82 | 2009 04 26, 11:18,: Voltaj: 1.80100585938 avgv 593 Termistör: 71.2276559865 Sıcaklık: 78.6813444881 ayrıca Tom's Igoe'nin sayfasından işleme ile RSSI'ye bakın. Paket uzunluğunu (üstte) değiştirmek isteyecek olsanız da, İşleme paket arabellek boyutunun sonunu yazmaktan şikayet ettiğinden.2 * beklenenden büyük olmanız gerektiğine inanıyorum paket uzunluğu. Tom'un kodu önceki bir paketi arar, yani Ox7E paket göstergesini kaçırırsa, bir süre çalışabilir. Ölçüm aralığının dış kenarına yakın olduğum düşünülürse, bir süreliğine olabilir. 600 ve bana "hata, serialEvent() devre dışı bırakılıyor" mesajını vermeyi bıraktı. Tom'un kodu yalnızca en son ayarı yazdırıyor, ki bu benim için pek kullanışlı değil. Hata ayıklama satırım izlememe izin veriyor 1 numaralı Minion harikası olarak değişir. Şimdi ölçmek için iyi bir yolumuz vardı, "hey baba bir paketimiz var"dan daha fazlası, bazı ev yapımı anten fikirlerini denemenin zamanı gelmişti! https://www.usbwifi.orconhosting.net.nz/ adresindeki fikirleri kullanarak Köşe Küpünün dB'de bir düşüş ölçtüğünü buldum, ancak pratikte bağlantısız bir çifti birbirine bağlamaya yardımcı olmadı. Vegatible Steamer aslında nişan alma ve yeniden bağlantı kurma konusunda en iyisiydi. USB Wifi kurulumu diğer bazı insanlardan çok farklıdır. Vapurların ortasında, XBee'nin kolay yerleştirilmesini sağlayan bir sap bulunur. Kalay folyolu bir pho kase de umut verici görünüyor (ancak daha sonra kalay folyoyu çıkardık ve yerinde tuttuk). Ayrıca, bükülen bir parça sıcak tekerlek "iz" ile bir parabol yapmayı denedik, ancak yardımcı olmadı. Sorunlardan biri, aralığın dış kenarında test ediyor olmamızdı. Çoğu 2.5Ghz radyo, özellikle XBee, yayılmış Spectrum'u kullanır, bu da "senkronize etmek" için ancak alabilecekleri anlamına gelir ve ardından XBee yazılımı, tetiklemeden önce bir XBee paketinin başlangıcını arar. Bu, bir ya hep ya hiç etkisi elde ederseniz anlamına gelir. Telsizler ya birbirine kilitlenir ya da kilitlenmez. Bazen şans gibi görünebilir, ancak aslında bu mesafelerde bir antensiniz ve sonuçları etkiliyor olabilirsiniz. İki vapur almaya gittim ama sonra yerel süpermarketten bir vapurun maliyetinin 10 dolar olduğunu ve 2 vapur fiyatına daha güçlü bir XBee alabileceğimi öğrendim. Bu yüzden birkaç yere daha baktım ve daha da iyi olan oldukça derin bir süzgeç buldum. 7 dolardı. Derinliğin önemli olduğuna inanıyorum, çünkü işlerin iletim tarafındayım, sinyalin çoğunu yansıtıyor (https://www.usbwifi.orconhosting.net.nz/number13.jpg'deki notlara göre). bir ucunda sebze buharlı pişirici (değiştirilecek) ve diğer ucunda bir süzgeç varken, bir iç ofisten 3-4 duvardan jakuziye kadar yaklaşık 20-30m sinyal alıyorum! Profesyonel ipucu: Unutmayın isterseniz süzgeci getirmek için 1) Eşinizin kalmasını ve/veya 2) Daha sonra buğulanmış sebze ister.

7. Adım: Yazılım

Yazılım
Yazılım

Tweet-A-Wattsoftware ile başlayarak python kodunu hacklemeye başladım. Çoğunlukla Watt dönüşümünü, geçmiş işlevlerini kaldırmam gerekiyordu ve ardından bir dizi 0'a bölme koruması eklemem gerekiyordu (Tweet-A-Watt paketlerin veriye sahip olacağını varsayar). Daha sonra formülü Excel'den programa ekledim. ve test ettim. Her paketi yazdıracak şekilde ayarladım ve sorunları yakalamak için kodda çok sayıda hata ayıklama var. Grafik bölümünü çalıştırmaya çalıştım, ancak vazgeçtim ve bu da beni şuraya getirdi: Python Rant: Bu ikinci kez Python'da büyük bir proje yapmaya çalıştım. Windows, Windows 64, Ubuntu ve Fedora'da tüm kitaplık bağımlılıklarının ve temel paketlerin 20 saatin altında çalışmasını sağlayamadım. Sonunda neredeyse her şeyi sıfırdan inşa etmek zorunda kaldım ve o zaman bile bazı işlevler çalışmadı. 2.4, 2.5, 2.6 ve çeşitli 3. X sürümlerini ve ardından her kitaplığın diğer paketlere bağımlılıkları olan sürümlerini denedim. Başkaları dile karşı kin besleyebilse de, ben sadece kurulum yapmayı, hatta "kolay kurulum programlarının" birçoğunu kullanmanın bile göz korkutucu olduğunu gördüm! Sıcaklıkları hesapladıktan sonra 1 derecelik bir ayar yaptım çünkü jakuziye inanamadım. 106F'deydi. Ben de gerçekten 105 olduğuna inanmıyorum. Daha sonra raporlama ve twitter mantığını karıştırdım. Paketler mi yoksa iyi paketler mi alacağımdan emin olmadığımdan, sıcaklığı saatte bir bildirmeyi seçtim. Sanırım bunu bir süre sonra keseceğim. Şu anda script normal bir kullanıcı olarak çalışıyor. Sonunda bir servise taşımak isteyeceğim.

8. Adım: Sonraki Adımlar

Bazı belirgin sonraki adımlar vardır:

1) Sebze Süzgecini değiştirin a. Minyonların sebzelere ihtiyacı var! B. Zaten o eskiydi. 2) Jakuzi antenini güverte altına yerleştirin a. Güverte onu daha da "daha ileri" yapabilir, ancak daha çirkin bir kuruluma izin verecektir. B. Daha sonra termistörü alt tarafa çalıştırabilir ve daha iyi bir yer bulabilirim. 3) Daha fazla sensör ekleyin a. Kolay olanı bir dış sıcaklık sensörüdür. B. Ancak kontrol panellerinin, özellikle de çocuklar bittiğinde sihirli bir şekilde dokunulan ısı sensörünün durumunu tespit edemememiz için hiçbir neden yok. C. Diğer hava sensörleri (rüzgar, nem vb.) d. Jakuziyi kontrol etmek güzel olurdu ve gece ve gündüzün çoğunda ısıtmayı kapatabilirdim. 4) Yazılımı ayarlayabilirim a. Minyonlar zaten sıcaklık başına daha iyi mesajlar istiyor. B. Cevaplara ve DM'lere cevap verebilmeliyiz. C. Daha akıllıca tweet atmalıyım (saatte birden az). NS. Planladığım başka eğlenceli şeyler var.

Önerilen: