Mündəricat:

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

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

Video: Tweet-A-Temp: 8 addım
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Iyul
Anonim

Z0tZot -un Homebrew Təcrübələri Müəllif tərəfindən daha çoxunu izləyin:

Magic 8 Bira 8 Tərəfli Ölüm
Magic 8 Bira 8 Tərəfli Ölüm
Magic 8 Bira 8 Tərəfli Ölüm
Magic 8 Bira 8 Tərəfli Ölüm

Böyük Oğlum (Minion #1) və mən bir Tweet-A-Watt qurmağa başladıq və təlimatları düzgün yerinə yetirə bilmədik, yəni hər iki Alıcıyı yalnız bir qəbuledici yerinə standart qəbuledici halına gətirdik və sonra ikinci XBee alıcısını yarı doldurduq. iki seçimimiz vardı, ya əlavə hissələri kəsdik, ya da başqa bir şey. Yerli olaraq hələ də bir Kill-A-Watt tapmadığımı və 10 ildir kompüterləşdirmək istədiyim bu xarici/daxili termometrə sahib olduğumu nəzərə alaraq, nə etməli olduğumu bilirdim: Ölçmək üçün Termometrdən istifadə etməli idim. Bu yaxınlarda Minion #1 -ə sərhədləri olmayan bir isti vanna nəzarətçisini təsvir etmək üçün bir tapşırıq vermişdim. Qeyd etdi ki, onu simsiz edə bilərik, amma yox, bu, axmaqlıqdır … 10 illik plan həyata keçəndə onu sevirəm. Twitter-də baxın

Addım 1: Xbee Alıcıları yaradın

Xbee Alıcıları yaradın
Xbee Alıcıları yaradın

İki XBEE qəbuledicisi yaradın. Lady Adanın Alıcılarını istifadə etdim, istənilən alıcı edəcək. XBee-nin VREF və AD0 pininə daxil olmaq lazımdır. Tweet-A-Watt-ın hiyləsi konfiqurasiyadır. Əslində cihazlardan birini Kill-A-Watt dəyərlərini təkrarlamaq üçün təyin etdiniz: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Bu ünvanı (1) təyin edir, yuxu rejimini, taymerini və müddətini təyin edir və sonra 4 və 2 -ci pinləri Analog giriş rejiminə (2) təyin edir, bu da nümunələr arasında 1 ms olan 0x13 (19 ondalık) paket göndərir. Buradakı hiylə Analog Girişdir. Kiçik gərginliyi (0-5V) birbaşa XBee tərəfindən oxuya bilərsiniz. Tweet-A-Watt-da Kill-A-Watt ilə ölçülən Amperləri və Voltları göndərmək üçün 4 və 0 pinləri təyin edərdiniz. Əslində bunu göndərmir, Kill-A-Wattdakı çiplərlə ölçülən kiçik gərginliyi kompüterə qoşulmuş alıcı XBee-yə göndərir. Kompüterdəki proqramlar, alınan paketləri mütəmadi olaraq oxuyur və faktiki gərginliyi və amperi yenidən hesablayır, sonra da Gücünü hesablayır.

Addım 2: Termometr

Termometr
Termometr
Termometr
Termometr
Termometr
Termometr

Təxminən 10 il əvvəl bu Daxili/Açıq termometrlərdən ikisini ev deposundan aldım. Həmişə xaricdəki "termometr" in baza qurğusuna standart bir səs fişinə bənzəyən bir şey bağlaması məni valeh edirdi. Bunu həmişə kompüterdəki mikrofon yuvasına qoşaraq temperaturu ölçə biləcəyimi düşünürdüm.

Məlum oldu ki, yəqin ki, işləyə bilərəm, amma çətin olardı. Fiş əslində 1/8 səs fişinin yerinə 3/32 düymlük bir yuvadır. Bu, xarici mikrofonlar üçün cib telefonları üçün standart bir fişdir. Bu, mənim yığıncaqlarımda lazımsız mikrofon fişləri tapa bilmədiyim üçün problem yaratdı. Layihəyə böyük bir gecikmə əlavə edən Radio Shack (2 dollar) dəsti almaq məcburiyyətində qaldım (bir daxmaya çatmaq asan deyildi). Bir işin necə işlədiyini birdən başa düşməzdən əvvəl bir vahid ayırdım., bu bir gərginlik ayırıcısı idi! Düşündüyüm zaman aydın idi. Həyatı çox asanlaşdırdı.

Addım 3: Gərginlik Bölücü nədir?

Gərginlik Bölücü nədir?
Gərginlik Bölücü nədir?

Elektron haqqında öyrənmək üçün ən yaxşı yerlərdən biri Viskonsin Onlayn bölücülərin bu səhifədə izah edilməsidir (sağ alt) və ya Voltage Wikipedia səhifəsinə daxil ola bilərsiniz. rezistorun ölçüsünə uyğun olaraq. R (1) + R (2) dövrəsində V gərginliyi varsa, V = V (1) + V (2). Beləliklə, əgər V = 3V və V (2) = 2V olarsa, V (1) = 1V olduğunu bilirsiniz. İndi Ohm Qanununun əsası cərəyanın (I) V/R olmasıdır. Bir sıra dövrədə, cərəyan eynidir, buna görə A və B üzərindəki cərəyan bütün dövrə üçün eynidır. Buna görə I = V1/R1 = V2/R2. V2 = V - V1 bilirik, Plugging, biz V1/R1 = (V -V1)/R2 görürük. R2 = R1*(V-V1)/V1 əldə edərək, V (1), V və R (2) bildiyimizi bilsək, R2 üçün həll edə bilərik. Termistor!

Addım 4: Termistor nədir?

Termistor nədir?
Termistor nədir?

Termistor, müqaviməti temperaturla dəyişən bir rezistordur. Müqaviməti müəyyən etmək üçün Gərginlik Bölücüsünün üsullarından istifadə edərək, bunun hansı temperatur olduğunu deyə bilərik. Problem ondadır ki, 10 illik bir məhsulun korpusunda ucuz termistor var. Bir müqavimətdən bir temperatura keçmək üçün bir funksiya necə yaratmalı idim? Yaxşı, daxil etdiyim bir termometr var! Buna görə çox şey ölçdüm. İstiliyi aşağı saldım və sonra Termistorun müqavimətini ölçdüm. Soyuducuya qoydum, sonra isti suya qoydum. Daha sonra vaxtım olduğu üçün otaq temperaturunu tutardım. Vikipediyanı oxuya biləcəyimi düşünürdüm və a və b faktorlarını təxmin edə bilərdim, amma xətaya aid olmayan, mümkün olmayan bir uğursuz komponentdən istifadə etdiyimi zənn etdim. spesifikasiyalar. Oh və mən tənbələm. Buna görə də bütün dəyərləri Excel -ə atdım və sonra qrafiki çəkdim. Əvvəlcə Excell -in bunu edəcəyini kəşf etdiyim zaman "ən kiçik kvadrat uyğunluq" kimi bir şeyin dərin qaranlıq riyaziyyatını xatırlamalı olduğumdan narahat idim. Mənə aydındır ki, qrafikdəki boşluqları əldən verirəm, amma isti vanna istiliyi (100-105F) ətrafında çoxlu yaxşı məlumatlar əldə etmişəm. The "Precise Temp" termometri, Thermistor düym uzaqlıqda olanda "daxili" ilə "açıq" arasında 3-7 dərəcə bir səhv olduğunu bildirdi! İndi bu, vahidlər arasında termistoru qarışdırdığım və uyğunlaşdırdığım üçün ola bilər, amma bahis edirəm ki, 10 yaşındakı məhsulun keyfiyyəti 10 dollardır və temperaturun "dəqiqliyindən" asılı olmayaraq, eyni dəqiqliyə və çoxlu testlərə ehtiyacım var idi. gün ərzində çox yaxın nəticələr göstərdi. Uzun müddətdə çox güman ki, termistoru isti vannaya aparan bir boruya bağlayacağam, buna görə də hər halda ofsetə ehtiyacım olacaq. Buna görə də Excel -in tənliyi göstərməsini təmin edərək onu koda qoydum və indiyə qədər belədir " yaxın."

Addım 5: Verici Dövrü

Verici dövrəsi
Verici dövrəsi

Transmitter dövrəsi sadədir. R2 üçün 100 kOhm müqavimətçi seçdim, çünki qrafikdəki aralığa uyğun gəlir və Minionlarla müxtəlif şeyləri silmək üçün ehtiyat gücüm var idi. Bunu Termistor ilə bir konnektor vasitəsilə ardıcıl olaraq bağlayıram. Sonra bir batareya dəsti əlavə etdim. VREF və Gərginlik bölücüsünün üst hissəsinə və Xbee +3V girişinə 3 V qaçdım. GND (Batareya Negativi) GND girişinə və bölücünün altına qoydum. Daha sonra AD0 (Volt in) gərginlik bölücü dövrəsinin ortasına bağladım.

AD0, VREF -dən V (1) -ə nisbi bir gərginlik oxuyacaq. Batareya azaldıqca nisbi gərginlik də eyni şəkildə azalmalıdır. Nəhayət, vahidi yerli bir enerji mənbəyi ilə təmin edəcəyəm. Bitmiş vahid yaxşı işləyir, hər şeyi timsah klipləri ilə bağlayırıq ki, bu da onu kövrək etdi. Qadın 3/32 "bağlantısını əldə etdikdən sonra, vericini sahib olduğumuz təsadüfi bir plastik çəlləyə yerləşdirirəm (köhnə humus konteyner). Bu onu hava şəraitindən qorumalıdır." Panel montajı "bağlayıcıları aldığım üçün bu qədər sadə idi. bağlayıcıyı kifayət qədər su keçirməyən bir əlaqə ilə xaricə əlavə etmək üçün plastikdən bir delik açmaq kimi.

Addım 6: Ev, Ev, Aralığı yoxdur

Ev, Ev, Menzil yoxdur
Ev, Ev, Menzil yoxdur
Ev, Ev, Menzil yoxdur
Ev, Ev, Menzil yoxdur
Ev, Ev, Menzil yoxdur
Ev, Ev, Menzil yoxdur

Diqqət yetirdiyimiz ilk şey, ötürücü ilə ofisdən çıxan kimi mənzərənin dəhşətli bir şəkildə öldüyü oldu. Fərqli bir otaqdan çalışdıq və nəticələr dəhşətli oldu. 1 metr aralıda çökdü. Çözümlərə baxmağın vaxtı gəldi. Test etdiyimiz yerdə 5 fut məsafədə, hamısı Xbee kimi 2.5 Ghz aralığında 4 Wi -Fi mənbəyinə sahib olduğumuz ağlıma gəldi. Həm də "Xbee-ni ümumiyyətlə hədəfə almadıq. Araşdırdıqdan sonra daha güclü bir Xbee radiosu (təxminən 23 dollar) ala biləcəyimi və ya anten əlavə edə biləcəyimi təyin etdim. Lazım olan şeylərdən biri yaxşı bir Range testi idi. Digi X-CTU proqramı "Sınaq Testi" var, amma heç bir şey etməyib. Bir az vaxt keçirtdim ki, necə işləyəcəyini anlamaq üçün çalışım. Əslində bu dediklərimdən daha asan oldu. X-CTU testinə ehtiyacım yoxdu, sadəcə "RX Siqnal Gücü Göstəricisi" (RSSI) dəyəri. Xbee.pyTweet-A-Watt istifadəsinə baxdım və orada 39-cu sətirdə: [kod] self.rssi = p [3] [/kod] Hansı hissə deməkdir Xbee qaytarma dəyərinin! (gözətçidə xb.rssi), buna görə hack üçün bir hata ayıklama xəttini dəyişdirdim: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Gərginlik: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" Termistor: " + str (x) + "Temperatur:" + str (Temperature) Bu kimi bir xətt çıxaran: 373: RSSI: 82 | 2009 04 26, 11:18,: Gərginlik: 1.80100585938 avgv 593 Termistor: 71.2276559865 Temperatur: 78.6813444881 həmçinin Tom's Igoe səhifəsindəki RSSI -ə baxın. Paket uzunluğunu (yuxarıda) dəyişdirmək istəsəniz də, Processing paket tampon ölçüsünün sonunu yazmaqdan şikayətləndi. İnanıram ki, gözləniləndən 2 * böyük olmalısınız. paket uzunluğu. Tomun kodu əvvəlki bir paket üçün geriyə baxır, yəni Ox7E paket göstəricisini əldən verərsə, bir müddət işləyə bilər. Ölçmə aralığının xarici kənarına yaxın olduğumu nəzərə alsaq, bu bir müddət baş verə bilər. 600 və mənə "səhv, serialEvent () söndürülməsi" mesajını verməyi dayandırdı. Tomun kodu sadəcə mənim üçün o qədər də faydalı olmayan ən son ayarı yazdırır. Debug xəttim izləyək Minion #1 olaraq təəccüblənir. İndi ölçmək üçün yaxşı bir yolumuz var idi, "hey atam bir paketimiz var" dan daha çox ev dəmləmə anten fikirlərini sınamağın vaxtı gəldi! Http://www.usbwifi.orconhosting.net.nz/ fikirlərindən istifadə edərək, Corner Cube -un dB azalmasını ölçdüyünü gördüm, amma praktikada əlaqəsi kəsilmiş bir cütü birləşdirməyə kömək etmədi. Vegetible Steamer əslində nişan almaq və yenidən əlaqə qurmaqda ən yaxşısı idi. USB Wifi quruluşu digər insanlardan çox fərqlidir. Buxar maşınlarının ortasında bir XBee yerləşdirilməsini asanlaşdıran bir gövdə var. Qalay folqa olan bir pho qab da ümidverici görünür (baxmayaraq ki, daha sonra qalay folqa çıxarıb yerində saxladıq). İsti təkərlərin əyilmə parçası olan "parça" ilə parabola düzəltməyə çalışdıq, amma kömək etmədi. Problemlərdən biri aralığın kənar kənarında test etdiyimizdir. 2.5Ghz radiosunun çoxu, xüsusən XBee, Spektrumdan istifadə edir, yəni "sinxronizasiya" edə bilər və sonra XBee proqramı tətikdən əvvəl bir XBee paketinin başlanğıcını axtarır. Bu, bütün və ya heç bir təsir əldə etməyiniz deməkdir. Ya radiolar bir -birinə bağlanır, ya da bağlanmır. Bəzən şans kimi görünür, amma əslində bu diapazonda bir antenasınız və nəticələrə təsir edə bilərsiniz. İki buxar gəmisi almağa getdim, amma sonra gördüm ki, yerli supermarketdən buxar maşınının qiyməti 10 dollardır və 2 buxarın qiyməti üçün daha güclü bir XBee əldə edə bilərəm. Daha bir neçə yerə baxdım və daha da yaxşı çıxan olduqca dərin bir süzgəc tapdım. 7 dollar idi. Dərinliyin vacib olduğuna inanıram, çünki şeylərin ötürücü tərəfindəyəm, daha çox siqnalı əks etdirir (https://www.usbwifi.orconhosting.net.nz/number13.jpg) qeydlərinə görə. bir ucunda tərəvəz buxarı (digərində) və digərində süzgəc varsa, daxili ofisdən, 3-4 divardan, isti vanna otağına qədər 20-30m siqnalım var! İstəsəniz süzgəci gətirmək üçün 1) Həyat yoldaşınızın qalmasını və/və ya 2) Daha sonra buxarlanmış tərəvəzlər istəyin. Şəxsən tərəvəz buxarının ləçək kimi görünüşünü bəyənirəm.

Addım 7: Proqram təminatı

Proqram təminatı
Proqram təminatı

Tweet-A-Wattsoftware ilə başlayaraq python kodunu sındırmağa başladım. Əsasən Watts dönüşümünü, tarix funksiyalarını silmək lazım idi və sonra 0 qoruma ilə bölünmə əlavə etməliydim (Tweet-A-Watt paketlərinin məlumatlara sahib olacağını düşünürəm). Sonra Excel-dən düsturu proqrama əlavə etdim. Hər paketi çap etmək üçün təyin etdim və problemi həll etmək üçün kodda çoxlu düzəlişlər etdim. Qrafik hissəsini işləməyə çalışdım, amma məni gətirən işdən imtina etdim: Python Rant: Bu, ikinci dəfədir Pythonda böyük bir layihə etməyə çalışdı. Windows, Windows 64, Ubuntu və Fedorada bütün kitabxana asılılıqlarını və əsas paketlərini 20 saatdan az müddətdə işlədə bilmədim. Nəhayət demək olar ki, hər şeyi sıfırdan qurmalı oldum və hətta bəzi funksiyalar işləmədi. 2.4, 2.5, 2.6 və müxtəlif 3. X versiyalarını, sonra da hər kitabxananın digər paketlərdən asılılığı olan versiyalarını sınadım. Başqalarının dilə qarşı rantları ola bilsə də, sadəcə quraşdırma tapdım, hətta "asan quraşdırıcıların" bir çoxunu istifadə etmək ən çətin idi! İstilikləri hesabladıqdan sonra 1 dərəcə tənzimləmə etdim, çünki isti çəlləkə inanmadım. 106F -də idi. Həqiqətən də 105 -də olduğuna inanmıram, sonra hesabat və twitter məntiqini tweeked. Paket və ya yaxşı paket alacağımdan əmin olmadığım üçün tempi saatda bir dəfə bildirməyi seçdim. Bunu bir müddət sonra kəsəcəyimi düşünürəm. Hazırda skript normal bir istifadəçi olaraq çalışır. Nəhayət bir xidmətə köçürmək istəyirəm.

Addım 8: Növbəti addımlar

Sonrakı bəzi açıq addımlar var:

1) Tərəvəz süzgəcini dəyişdirin a. Minionların tərəvəzlərə ehtiyacı var! b. Onsuz da o köhnə idi. 2) Hot Tub antenini göyərtənin altına qoyun a. Göyərtə onu daha da irəli apara bilər, ancaq daha çirkin bir quruluşa imkan verəcəkdir. b. Daha sonra termistoru alt tərəfə çəkib daha yaxşı bir yer tapa bilərəm. 3) Daha çox sensorlar əlavə edin a. Asan bir xarici temperatur sensoru. b. Ancaq nəzarət panellərinin vəziyyətini, xüsusən də uşaqlar bitdikdə sehrli şəkildə toxunan istilik sensörünü aşkar edə bilməməyimizin heç bir səbəbi yoxdur. c. Digər hava sensorlar (külək, rütubət və s.) D. İsti vannanı idarə etmək yaxşı olardı və gecə -gündüz istiliyi söndürə bilərdim. 4) Proqramı tənzimləyə bilərəm a. Minionlar artıq hər temperaturda daha yaxşı mesajlar istəyirlər. b. Cavablara və DM -lərə cavab verməyi bacarmalıyıq. c. Daha ağıllı tvit etməliyəm (saatda bir dəfədən az). d. Başqa əyləncəli şeylər planlaşdırmışam.

Tövsiyə: