Sadržaj:

Tweet-A-Temp: 8 koraka
Tweet-A-Temp: 8 koraka

Video: Tweet-A-Temp: 8 koraka

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

Napisao Z0tZot -ov Homebrew ExperimentSlijedite Više od autora:

Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die

Moj najstariji sin (Minion #1) i ja počeli smo graditi Tweet-A-Watt i nismo uspjeli pravilno slijediti upute, naime napravili smo oba prijemnika kao standardne prijemnike umjesto samo jednog, a zatim upola popunili drugi XBee prijemnik. imali smo dva izbora, ili odrezati dodatne dijelove, ili nešto drugo. S obzirom da još nisam lokalno pronašao Kill-A-Watt, a imao sam ovaj vanjski/unutarnji termometar koji sam želio kompjuterizirati 10 godina, znao sam što moram učiniti: morao sam upotrijebiti termometar za mjerenje Nedavno sam dao Minionu #1 zadatak da opiše regulator tople kade bez granica. Spomenuo je, pa mogli bismo to učiniti bežičnim, ali ne, to je glupo … Volim kad se desetogodišnji plan ostvari. Vidite to na Twitteru

Korak 1: Izgradite Xbee prijemnike

Napravite Xbee prijemnike
Napravite Xbee prijemnike

Napravite dva XBEE prijemnika. Koristio sam prijemnike Lady Ada, bilo koji prijemnik će to učiniti. Trebat će vam pristup XBeejevom VREF i AD0 pinu. Trik u Tweet-A-Wattu je konfiguracija. U stvari, podesili ste jedan od uređaja da ponavlja vrijednosti iz Kill-A-Watta sa: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Ovo postavlja adresu (1), postavlja način mirovanja, mjerač vremena i period, a zatim postavlja pinove 4 i 2 u način analognog ulaza (2), koji će slati pakete 0x13 (19 decimalnih), 1 ms između uzoraka. Trik ovdje je analogni ulaz. Možete čitati male napone (0-5V) direktno putem XBee-a. U Tweet-A-Watt postavili biste pinove 4 i 0 za slanje pojačala i volta izmjerenih Kill-A-Watt. U stvarnosti to ne šalje, već šalje mali napon izmjeren čipovima u Kill-A-Watt prijemniku XBee koji je priključen na računar. Softver na računaru stalno čita primljene pakete i ponovo izračunava stvarni napon i amperažu, a zatim izračunava snagu.

Korak 2: Termometar

Termometar
Termometar
Termometar
Termometar
Termometar
Termometar

Kupio sam dva ova unutrašnja/vanjska termometra prije otprilike 10 godina od kućnog skladišta. Uvijek sam bio fasciniran što je vanjski "termometar" spojen na bazu s nečim što je izgledalo kao standardni audio utikač. Uvijek sam se pitao mogu li mjeriti temperaturu tako što ću ovo priključiti u utičnicu za mikrofon na računaru.

Ispostavilo se da bih vjerovatno uspio, ali bilo bi teško. Utikač je zapravo priključak od 3/32 , umjesto audio priključka od 1/8. Ovo je standardni utikač za mobilne telefone za vanjske mikrofone. To je predstavljalo problem jer nisam mogao pronaći mikrofone u svojim hrpama smeća koje Morali smo kupiti set od Radio Shacka (2 USD), što je povećalo kašnjenje u projektu (doći do kolibe nije bilo lako). Odvojio sam jednu jedinicu prije nego što sam odjednom shvatio kako ta stvar funkcionira, to je bio razdjelnik napona! Bilo je očito kad sam razmislio o tome. To je vrlo olakšalo život.

Korak 3: Šta je djelitelj napona?

Šta je djelitelj napona?
Šta je djelitelj napona?

Jedno od najboljih mjesta za učenje o elektronici su Wisconsin Online razdjelnici objašnjeni na toj stranici (dolje desno) ili možete posjetiti stranicu Voltage Wikipedia. Ukratko, ako imate dva otpornika u nizu, pad napona na svakom otporniku je proporcionalno veličini otpornika. Ako imate napon V u krugu od R (1) + R (2), tada je V = V (1) + V (2). Dakle, ako je V = 3V i V (2) = 2V, znate da je V (1) = 1V. Sada je osnova Ohmovog zakona da je struja (I) V/R. U serijskom krugu, struja je ista cijelom dužinom, tako da je struja kroz A i B ista za cijeli krug. Stoga je I = V1/R1 = V2/R2. Znamo V2 = V - V1, Priključivanjem, vidimo V1/R1 = (V -V1)/R2. Rješavanjem dobivamo R2 = R1*(V-V1)/V1 Dakle, ako znamo ako znamo V (1), V i R (2), možemo riješiti za R2. Ako imamo R2, znamo vrijednost Termistor!

Korak 4: Šta je termistor?

Šta je termistor?
Šta je termistor?

Termistor je otpornik koji mijenja otpor s temperaturom. Koristeći tehnike iz razdjelnika napona za određivanje otpora, možemo reći koja je to temperatura. Problem je što imam neki jeftini termistor u kućištu od proizvoda starog 10 godina. Kako sam trebao stvoriti funkciju koja ide od otpora do temperature? Pa, ja imam termometar u koji se uključuje! Pa sam mnogo mjerio. Kopirao sam temperaturu i izmjerio otpor termistora. Stavila sam ga u frižider, a zatim ga stavila u toplu vodu. Kasnije bih zgrabio sobnu temperaturu budući da sam imao vremena. Pretpostavio sam da sam mogao pročitati stranicu Wikipedia koja je pokušala pogoditi faktore a i b, ali pretpostavio sam da koristim nelinearnu, moguću kvar komponentu koja joj više nije odgovarala u proizvodnji specifikacije. Oh, i ja sam lijen. Pa sam izbacio sve vrijednosti u Excel, a zatim ih iscrtao. Prvotno sam bio zabrinut da se moram prisjetiti duboke mračne matematike nečeg poput "najmanje odgovarajućeg kvadrata" kad sam otkrio da će Excel ovo učiniti za Očigledno mi nedostaju praznine na grafikonu, ali imam mnogo dobrih podataka o temperaturama vruće kade (100-105F). Dok sam provjeravao raspone sobne temperature, primijetio sam nešto, što moj rad gotovo čini bezvrijednim. Termometar "Precise Temp" prijavio je grešku od 3 do 7 stepeni između "unutrašnjeg" i "vanjskog" prostora kada je termistor bio udaljen nekoliko centimetara! Ovo bi moglo biti zato što sam miješao i usklađivao termistor između jedinica, ali kladim se da to ima više zbog kvalitete desetogodišnjeg djeteta, stavke od 10 USD. Bez obzira na "točnost" temperature, bila mi je potrebna preciznost i višestruka ispitivanja istih raspon je danima pokazao vrlo bliske rezultate. Dugoročno ću vjerojatno priključiti termistor na cijev koja vodi u vruću kadu, pa će mi svejedno trebati pomak. Tako da sam natjerao Excel da prikaže jednadžbu, stavio sam ga u kôd, i do sada je to " zatvori."

Korak 5: Krug odašiljača

Krug odašiljača
Krug odašiljača

Krug odašiljača je jednostavan. Odabrao sam otpornik od 100 kOhm za R2 jer je izgledalo da će odgovarati rasponu s grafikona, a imao sam i rezervni od raspakiranja raznih stvari s Minionima. Ovo serijski povezujem sa termistorom preko konektora. Zatim sam dodao bateriju. Prošao sam 3 V do VREF i vrh razdjelnika napona i do ulaza Xbee +3V. Stavio sam GND (Battery Negative) na GND ulaz i na dno razdjelnika. Zatim sam spojio AD0 (Volti u) na sredinu kruga razdjelnika napona.

AD0 će očitati relativni napon od VREF do V (1). Dakle, kako se baterija smanjuje, relativni napon bi trebao pasti isto. Na kraju ću napajati jedinicu lokalnim izvorom napajanja. Gotova jedinica je radila dobro, sve povezujemo štipaljkama od aligatora, što ju je učinilo krhkom. Nakon što sam dobio ženski 3/32 "priključak, postavio sam odašiljač u nasumičnu plastičnu kadu koju smo imali (ex-hummus spremnik). Ovo bi ga trebalo zaštititi od vremenskih uvjeta. Budući da sam kupio" panel mount "konektore, bilo je jednostavno kao bušenje rupe u plastici za dodavanje konektora izvana s prilično vodootpornom vezom.

Korak 6: Dom, dom, nema dometa

Dom, dom, nema dometa
Dom, dom, nema dometa
Dom, dom, nema dometa
Dom, dom, nema dometa
Dom, dom, nema dometa
Dom, dom, nema dometa

Jedna od prvih stvari koje smo primijetili je da je domet umro užasnom smrću čim smo izašli iz ureda s odašiljačem. Pokušali smo iz druge sobe, a rezultati su bili užasni. 1 stopa dalje je ispalo. Vrijeme je da pogledamo rješenja. Palo mi je na pamet da smo tamo gdje smo testirali imali 4 izvora Wi -Fi -ja unutar 5 stopa, svi u rasponu od 2,5 Ghz poput Xbee -a. Također, nismo uopće "ciljali Xbee. Nakon istraživanja utvrdio sam da bih mogao kupiti snažniji Xbee radio (oko 23 USD) ili dodati antene. Jedna od stvari koje su mi trebale bio je dobar Range test. Softver X-CTU iz Digija ima ugrađen "Range Test", ali nije ništa učinio. Proveo sam neko vrijeme pokušavajući provjeriti kako to funkcionirati. Zapravo je ovo bilo lakše učiniti nego što je rečeno. Nije mi trebao X-CTU test, samo Vrijednost "Indikatora jačine signala RX-a" (RSSI). Pogledao sam u xbee.pyTweet-A-Watt koristi i upravo tamo, red 39: [kod] self.rssi = p [3] [/kod] Što znači da je dio povratne vrijednosti Xbee! (xb.rssi u wattcher -u), pa sam izmijenio liniju za otklanjanje grešaka za svoj hack: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Napon: " + str (Izračunati volti) +" avgv " + str (avgv) +" Termistor: " + str (x) + "Temperatura:" + str (Temperatura) Što proizvodi liniju poput ove: 373: RSSI: 82 | 2009 04 26, 11:18,: Napon: 1.80100585938 avgv 593 Termistor: 71.2276559865 Temperatura: 78.6813444881 Možete također pogledajte RSSI s obradom, sa stranice Tom's Igoe. Mada ćete htjeti izmijeniti dužinu paketa (pri vrhu), jer se Processing žalio na pisanje iza kraja veličine međuspremnika paketa. Vjerujem da morate biti veći od 2 * Tomov kod gleda unatrag za prethodni paket, što znači da ako propusti indikator paketa Ox7E, mogao bi raditi neko vrijeme. S obzirom na to da sam blizu vanjskog ruba mjernog područja, to se može dogoditi neko vrijeme. Postavio sam svoj na 600 i prestao mi je davati poruku "greška, onemogućavanje serialEvent ()". Tomin kod samo štampa najnoviju postavku, što za mene nije toliko korisno. Promjene su se dogodile dok se Minion #1 pitao. Sada smo imali dobar način mjerenja, više od "hej tata, imamo paket", bilo je vrijeme da isprobamo neke ideje za antene za kućno kuhanje! Koristeći ideje sa https://www.usbwifi.orconhosting.net.nz/ otkrio sam da je kutna kocka mjerila smanjenje dB, iako se u praksi nije činilo da pomaže u povezivanju nepovezanog para. Vegatible Steamer je zapravo bio najbolji u ciljanju i ponovnom povezivanju. Postavljanje USB Wi -Fi -ja mnogo se razlikuje od nekih drugih ljudi. Aparati za paru imaju stabljiku u sredini koja olakšava postavljanje XBee -a. Fosilica sa limenom folijom također izgleda obećavajuće (iako smo kasnije samo uklonili limenu foliju i držali je na mjestu). Pokušali smo i napraviti parabolu sa savijanjem vrućih kotača "staza", ali nije izgledalo da pomaže. Jedan od problema je što smo testirali na vanjskom rubu dometa. Većina radija od 2,5 GHz, posebno XBee, koristi spread Spectrum, što znači da mogu uzeti samo sinhronizaciju, a zatim XBee softver traži početak XBee paketa prije okidača. To znači ako postignete učinak sve ili ništa. Ili se radiji međusobno zaključavaju ili ne. Ponekad se čini da je to sreća, ali ustvari ste antena na ovim rasponima i možete utjecati na rezultate. Otišao sam kupiti dva aparata za paru, ali sam tada otkrio da je cijena parobroda iz lokalnog supermarketa 10 USD, a po cijeni od 2 parovalke mogu nabaviti moćniji XBee. Pa sam pogledao još nekoliko mjesta i našao prilično duboko cjedilo koje se pokazalo još boljim. Bilo je 7 dolara. Vjerujem da je dubina važna, budući da sam na putu odašiljanja stvari, on odražava više signala (prema napomenama na https://www.usbwifi.orconhosting.net.nz/number13.jpg). Krajnji rezultati, je da s aparatom za kuhanje povrća na jednom kraju (koji se mijenja) i cjediljkom na drugom, imam signal oko 20-30m, od unutrašnje kancelarije, kroz 3-4 zida, do hidromasažne kade! Savjet za stručnjake: Zapamtite da dovedete cjediljku ako želite 1) Vaš supružnik ostane i/ili 2) Kasnije želite povrće kuhano na pari. Osobno mi se sviđa izgled papučice za povrće nalik laticama.

Korak 7: Softver

Softver
Softver

Počevši od Tweet-A-Wattsoftwarea počeo sam hakirati python kod. Uglavnom sam morao ukloniti Wattsovu konverziju, funkcije povijesti, a zatim sam morao dodati broj podjela sa 0 zaštita (Tweet-A-Watt pretpostavlja da će paketi imati podatke). Zatim sam u program dodao formulu iz Excela i testirao. Postavio sam ga za ispisivanje svakog paketa i imam mnogo grešaka u kodu za hvatanje problema. Pokušao sam da grafički dio radi, ali odustao sam što me dovodi do: Python Rant: Ovo je drugi put da imam pokušao napraviti veliki projekt u Pythonu. Nisam mogao postići da sve zavisnosti biblioteka i osnovni paketi rade za manje od 20 sati u Windowsima, Windows 64, Ubuntu i Fedori. Konačno sam morao izgraditi gotovo sve od nule, a čak i tada neke funkcije nisu radile. Isprobao sam verzije 2.4, 2.5, 2.6 i razne 3. X, a zatim i verzije svake biblioteke, koje su pak imale ovisnosti o drugim paketima. Dok drugi možda negoduju protiv jezika, otkrio sam da sam samo instalirao, čak i koristeći mnoge od „lakih instalatera“koji su u najboljem slučaju bili zastrašujući! Nakon što sam izračunao temperature, napravio sam podešavanje za 1 stepen, jer nisam mogao vjerovati u hidromasažnoj kadi bilo na 106F. Ni ja zaista ne vjerujem da je na 105. Zatim sam tweetovao izvještajnu i twitter logiku. Pošto nisam siguran da li ću dobiti pakete, ili dobre pakete, odlučio sam prijaviti temperaturu jednom na sat. Pretpostavljam da ću to smanjiti za neko vrijeme. Trenutno se skripta izvodi kao normalan korisnik. Na kraju ću ga htjeti premjestiti u servis.

Korak 8: Sljedeći koraci

Postoji nekoliko očiglednih sljedećih koraka:

1) Zamijenite cjediljku za povrće a. Minionima je potrebno njihovo povrće! b. Taj je ionako bio star. 2) Postavite Hot Tub antenu ispod palube a. Paluba bi mogla učiniti još "dalje", ali će omogućiti ružnije postavljanje. b. Zatim mogu odvesti termistor dolje i pronaći bolje mjesto. 3) Dodajte još senzora a. Jednostavan je senzor vanjske temperature. b. No, nema razloga da ne možemo otkriti stanje upravljačkih ploča, posebno senzor topline koji se magično dodiruje kad su djeca više. c. Ostali vremenski senzori (vjetar, vlaga itd.) D. Bilo bi lijepo kontrolirati hidromasažnu kadu i mogao bih isključiti grijanje veći dio noći i dana. 4) Mogu prilagoditi softver a. Minioni već žele bolje poruke po temperaturi. b. Trebali bismo biti u mogućnosti odgovoriti na odgovore i DM -ove. c. Trebao bih tvitati inteligentnije (manje od jednom na sat). d. Planiram još neke zabavne stvari.

Preporučuje se: