Kazalo:
- 1. korak: Zgradite sprejemnike Xbee
- Korak: Termometer
- 3. korak: Kaj je delilnik napetosti?
- 4. korak: Kaj je termistor?
- 5. korak: Vezje oddajnika
- Korak 6: Doma, doma, nima dosega
- 7. korak: Programska oprema
- 8. korak: Naslednji koraki
Video: Tweet-A-Temp: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:09
Avtor Z0tZot's Homebrew ExperimentSledi več avtorja:
Z mojim najstarejšim sinom (Minion #1) sva začela graditi Tweet-A-Watt in nisva pravilno sledila navodilom, in sicer sva oba sprejemnika naredila kot standardna sprejemnika namesto le enega in nato za polovico zapolnila drugi sprejemnik XBee. imeli smo dve izbiri, ali smo odrezali dodatne dele ali kaj drugega. Glede na to, da lokalno še nisem našel Kill-A-Watta in sem imel ta zunanji/notranji termometer, ki sem ga želel računaliti že 10 let, sem vedel, kaj moram storiti: za merjenje sem moral uporabiti termometer temperaturo moje masažne kadi in jo nato objavil na Twitterju! Pred kratkim sem Minionu #1 dal nalogo, da opiše krmilnik masažne kadi brez meja. Omenil je, lahko bi ga naredili brezžičnega, vendar ne, to je neumno … Všeč mi je, ko se uresniči 10-letni načrt. Glej na Twitterju
1. korak: Zgradite sprejemnike Xbee
Zgradite dva sprejemnika XBEE. Uporabil sem sprejemnike Lady Ada, vsak sprejemnik bo ustrezal. Potrebovali boste dostop do pin-ja VREF in AD0 XBeeja. Trik Tweet-A-Watta je konfiguracija. Dejansko nastavite eno od naprav, da ponovi vrednosti iz Kill-A-Watt z: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 S tem nastavite naslov (1), nastavite način mirovanja, časovnik in obdobje, nato pa nastavite nožici 4 in 2 na način analognega vhoda (2), ki bo poslal 0x13 (19 decimalnih) paketov, 1 ms med vzorci Trik tukaj je analogni vhod. Majhne napetosti (0-5V) lahko berete neposredno s pomočjo XBeeja. V Tweet-A-Watt bi nastavili zatiče 4 in 0 za pošiljanje amperov in voltov, merjenih s Kill-A-Watt. V resnici tega ne pošlje, pošlje majhno napetost, izmerjeno z žetoni v Kill-A-Watt, v sprejemnik XBee, ki je priključen na računalnik. Programska oprema v računalniku nenehno bere prejete pakete in ponovno izračuna dejansko napetost in jakost toka ter nato izračuna moč.
Korak: Termometer
Dva od teh notranjih/zunanjih termometrov sem pred približno 10 leti kupil pri domačem skladišču. Vedno sem bil navdušen nad tem, da je zunanji "termometer" priključen na osnovno enoto s tem, kar je izgledalo kot standardni zvočni vtič. Vedno sem se spraševal, ali lahko izmerim temperaturo tako, da to priključim v vtičnico za mikrofon na računalniku.
Izkazalo se je, da bi mi verjetno uspelo, vendar bi bilo težko. Vtič je pravzaprav 3/32 vtič, namesto 1/8 zvočnega vtiča. To je standardni vtič za mobilne telefone za zunanje mikrofone. To je predstavljalo težavo, saj v svojih kupih smeti nisem našel nobenih vtičev za mikrofon Niso bili nameščeni na površino. Moral sem kupiti komplet Radio Shack (2 USD), kar je projektu prineslo veliko zamudo (priti v barako ni bilo lahko). Enoto sem ločil, preden sem nenadoma spoznal, kako deluje, to je bil delilnik napetosti! Ko sem pomislil na to, je bilo očitno. Zelo je olajšalo življenje.
3. korak: Kaj je delilnik napetosti?
Eno najboljših krajev za spoznavanje elektronike so delilniki Wisconsin Online, ki so razloženi na tej strani (spodaj desno) ali pa obiščite stran napetostne Wikipedije. Skratka, če imate dva upora zaporedno, je padec napetosti na vsakem uporu enak sorazmerno z velikostjo upora. Če imate napetost V v vezju R (1) + R (2), potem je V = V (1) + V (2). Torej, če je V = 3V in V (2) = 2V, veste, da je V (1) = 1 V. Zdaj je osnova Ohmovega zakona, da je tok (I) V/R. V zaporednem vezju je tok ves čas enak, zato je tok skozi A in B enak za celotno vezje. Zato I = V1/R1 = V2/R2. Vemo, da je V2 = V - V1, Priključitev, vidimo V1/R1 = (V -V1)/R2. Rešitev dobimo R2 = R1*(V-V1)/V1 Torej, če vemo, če poznamo V (1), V in R (2), lahko rešimo za R2. Če imamo R2, vemo vrednost Termistor!
4. korak: Kaj je termistor?
Termistor je upor, ki s temperaturo spreminja upor. Z uporabo tehnik iz razdelilnika napetosti za določitev upora lahko ugotovimo, kakšna je temperatura. Težava je v tem, da imam v ohišju iz 10 let starega izdelka nekaj poceni termistorja. Kako naj bi ustvaril funkcijo za odpornost na temperaturo? No, imam termometer, v katerega se priklopi! Zato sem veliko meril. Prepisal sem temperaturo in nato izmeril upor termistorja. Postavil sem ga v hladilnik, nato pa postavil v toplo vodo. Pozneje sem, ker sem imel čas, pograbil sobno temperaturo. Domneval sem, da bi lahko prebral plakat Wikipedia, da bi poskušal uganiti faktorja a in b, vendar sem domneval, da uporabljam nelinearno, možno okvarjeno komponento, ki se ni več ujemala s proizvodnjo specifikacije. Oh in jaz sem len. Zato sem vse vrednosti zbrisal v Excel, nato pa si jih začrtal. Sprva me je skrbelo, da se moram spomniti globoke temne matematike, kot je "najmanjši kvadrat", ko sem odkril, da bo Excell to storil za Očitno mi manjkajo vrzeli na grafikonu, vendar imam veliko dobrih podatkov o temperaturah vroče kadi (100-105F). Ko sem preverjal območja sobne temperature, sem opazil nekaj, zaradi česar je moje delo skoraj ničvredno. Termometer "Precise Temp" je poročal o napaki 3-7 stopinj med "notranjim" in "zunanjim", ko je bil termistor nekaj centimetrov stran! Morda je to zato, ker sem med enotami pomešal in ujemal termistor, vendar stavim, da ima to več zaradi kakovosti 10 -letnika, predmeta v vrednosti 10 USD. Ne glede na "natančnost" temperature sem potreboval natančnost in več preskusov istega razpon je v nekaj dneh pokazal zelo blizu rezultatov. Dolgoročno bom termistor verjetno pritrdil na cev, ki vodi v vročo kopel, zato bom vseeno potreboval odmik. Tako, da Excel prikaže enačbo, ga nato vnesem v kodo in zaenkrat je " blizu."
5. korak: Vezje oddajnika
Vezje oddajnika je preprosto. Za R2 sem izbral upor 100 kOhm, saj je bilo videti, da bi ustrezal razponu iz grafa, jaz pa sem imel rezervnega, da sem razpadel različne stvari z Minioni. To zaporedno povezujem s termistorjem prek priključka. Nato sem dodal baterijo. I Ran 3 V do VREF in vrh delilnika napetosti ter do vhoda Xbee +3V. GND (Negativ baterije) sem postavil na vhod GND in na dno delilnika. Nato sem priključil AD0 (Volti v) na sredino vezja razdelilnika napetosti.
AD0 bo prebral relativno napetost od VREF do V (1). Torej, ko se baterija spusti, bi se morala relativna napetost enako znižati. Sčasoma bom enoto napajal z lokalnim virom napajanja. Končana enota je delovala dobro, vse povežemo z aligatorskimi sponkami, zaradi česar je postala krhka. Ko sem dobil žensko 3/32 "povezavo, oddajnik postavim v naključno plastično kad, ki smo jo imeli (nekdanji hummusov vsebnik). To bi ga moralo zaščititi pred vremenskimi vplivi. Ker sem kupil priključke za" montažo na ploščo ", je bilo tako preprosto kot vrtanje luknje v plastiki za dodajanje konektorja na zunanjo stran s precej vodotesno povezavo. Ko smo to imeli, je bil čas za testiranje.
Korak 6: Doma, doma, nima dosega
Ena prvih stvari, ki smo jih opazili, je bila, da je doseg umrl grozljivo, takoj ko smo z oddajnikom odšli iz pisarne. Poskusili smo iz druge sobe, rezultati pa so bili grozni. 1 meter stran je zdrsnilo. Čas je, da pogledamo rešitve. Zdelo se mi je, da smo imeli pri testiranju 4 vire Wi -Fi na razdalji 5 čevljev, vse v območju 2,5 GHz, kot je Xbee. Prav tako sploh nismo "ciljali na Xbee. Po raziskavi sem ugotovil, da bi lahko kupil močnejši radio Xbee (približno 23 USD) ali dodal antene. Ena od stvari, ki sem jih potreboval, je bil dober test dometa. Programska oprema X-CTU iz Digija ima vgrajen "Range Test", vendar ni nič naredil. Nekaj časa sem poskušal ugotoviti, kako naj to deluje. Pravzaprav je bilo to lažje narediti, kot je bilo rečeno. V resnici nisem potreboval testa X-CTU, samo Vrednost "indikatorja jakosti signala RX" (RSSI). Pogledal sem v xbee.pyTweet-A-Watt in tam, vrstica 39: [code] self.rssi = p [3] [/code] Kar pomeni, da je del vrnjene vrednosti Xbee! (xb.rssi v wattcherju), zato sem za svoj kramp spremenil vrstico za odpravljanje napak: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Napetost: " + str (Izračunani volti) +" avgv " + str (avgv) +" Termistor: " + str (x) + "Temperatura" glejte tudi RSSI z obdelavo na strani Tom's Igoe. Čeprav boste želeli spremeniti dolžino paketa (na vrhu), ker se je Processing pritožil zaradi pisanja čez konec velikosti vmesnega pomnilnika paketa. Verjamem, da morate preseči 2 * dolžina paketa. Tomova koda gleda nazaj za prejšnji paket, kar pomeni, da če zamudi indikator paketa Ox7E, bi lahko deloval nekaj časa. Glede na to, da sem blizu zunanjega roba merilnega območja, se lahko to zgodi nekaj časa. 600 in mi ni več dalo sporočila "error, disable serialEvent ()". Tomova koda samo natisne najnovejšo nastavitev, kar zame ni tako koristno. Moja vrstica za odpravljanje napak naj mi sledi se spreminja, ko se Minion #1 sprašuje. Zdaj smo imeli dober način za merjenje, več kot "hej očka, imamo paket" je bil čas, da preizkusimo nekaj idej za anteno za domačo kavo! Z idejami s spletnega mesta https://www.usbwifi.orconhosting.net.nz/ sem ugotovil, da je vogalna kocka merila zmanjšanje dB, čeprav v praksi ni pomagalo pri povezovanju nepovezanega para. Vegatible Steamer je bil dejansko najboljši pri ciljanju in ponovnem povezovanju. Nastavitev USB Wifi se precej razlikuje od nekaterih drugih. Parniki imajo na sredini steblo, kar olajša namestitev XBeeja. Obeta se tudi obesek fo folije s kositrno folijo (čeprav smo pozneje le odstranili pločevino in jo držali na mestu). Poskusili smo tudi izdelati parabolo z upogibnim kosom vročih koles "tirnica", vendar to ni pomagalo. Ena od težav je, da smo testirali na zunanjem robu poligona. Večina radijskih postaj s frekvenco 2,5 GHz, zlasti XBee, uporablja razširjen spekter, kar pomeni, da lahko vzamejo "sinhronizacijo", nato pa programska oprema XBee poišče začetek paketa XBee pred sprožilcem. To pomeni, če dosežete učinek vse ali nič. Ali se radia zakleneta drug na drugega ali ne. Včasih se zdi kot sreča, v resnici pa ste antena na teh območjih in lahko vplivate na rezultate. Šel sem kupiti dva parnika, nato pa ugotovil, da je cena parnika iz lokalnega supermarketa 10 USD, za ceno 2 parnikov pa lahko dobim zmogljivejši XBee. Zato sem si ogledal še nekaj krajev in našel precej globoko cedilo, ki se je izkazalo za še boljše. Stalo je 7 dolarjev. Menim, da je globina pomembna, saj sem na oddajnem koncu stvari in odraža več signala (po opombah na https://www.usbwifi.orconhosting.net.nz/number13.jpg). Končni rezultati, je to, da imam s paro za zelenjavo na enem koncu (ki ga je treba zamenjati) in cedilo na drugem, imam signal približno 20-30 m, od notranje pisarne, skozi 3-4 stene, do masažne kadi! če želite prinesti cedilo, če želite 1) vaš zakonec ostati, in/ali 2) pozneje želite kuhano zelenjavo na pari.
7. korak: Programska oprema
Začenši s programsko opremo Tweet-A-Wattsoftware sem začel vdreti v kodo python. Večinoma sem moral odstraniti pretvorbo Watts, funkcije zgodovine, nato pa sem moral dodati nekaj deljenj z 0 zaščitami (Tweet-A-Watt predvideva, da bodo paketi imeli podatke). Nato sem v program dodal formulo iz Excela in preizkusil. Nastavil sem ga za tiskanje vsakega paketa in v kodi imam veliko odpravljanja napak, da bi odkril težave. Poskusil sem, da bi grafični del deloval, vendar sem opustil, kar me pripelje do: Python Rant: To sem drugič poskušal narediti velik projekt v Pythonu. V operacijskih sistemih Windows, Windows 64, Ubuntu in Fedora nisem mogel doseči, da bi vse odvisnosti knjižnic in osnovni paketi delovali v manj kot 20 urah. Končno sem moral skoraj vse zgraditi iz nič in tudi takrat nekatere funkcije niso delovale. Poskusil sem različice 2.4, 2.5, 2.6 in različne različice 3. X, nato pa različice vsake knjižnice, ki pa so bile odvisne od drugih paketov. Medtem ko se drugi morda jezijo proti jeziku, se mi je zdelo, da sem le namestil, tudi če sem uporabil številne "enostavne monterje", ki so bili v najboljšem primeru zastrašujoči! Ko sem izračunal temperature, sem nastavil 1 stopinjo, ker nisem mogel verjeti, je bilo pri 106F. Res ne verjamem, da je tudi pri 105. Nato sem potegnil logiko poročanja in twitterja. Ker nisem prepričan, ali bom dobil pakete ali dobre pakete, sem se odločil prijaviti temperaturo enkrat na uro. Predvidevam, da bom to čez nekaj časa zmanjšal. Trenutno se skript izvaja kot običajen uporabnik. Sčasoma ga bom želel premakniti v servis.
8. korak: Naslednji koraki
Obstaja nekaj očitnih naslednjih korakov:
1) Zamenjajte cedilo za zelenjavo a. Minioni potrebujejo zelenjavo! b. Ta je bil vseeno star. 2) Postavite anteno Hot Tub pod krov a. Krov bi lahko bil še "daljši", vendar bo omogočil grdejšo nastavitev. b. Nato lahko odpeljem termistor na spodnjo stran in poiščem boljše mesto. 3) Dodajte več senzorjev a. Enostaven je senzor zunanje temperature. b. Vendar ni razloga, da ne bi mogli zaznati stanja nadzornih plošč, zlasti senzorja toplote, ki se čarobno dotakne, ko so otroci konec. c. Drugi vremenski senzorji (veter, vlaga itd.) D. Lepo bi bilo nadzorovati masažno kad in večino noči in dneva bi lahko izklopila ogrevanje. 4) Programsko opremo lahko prilagodim a. Minioni že želijo boljša sporočila na temperaturo. b. Morali bi se lahko odzvati na odgovore in DM. c. Moral bi tvitati bolj inteligentno (manj kot enkrat na uro). d. Imam v načrtu še nekaj drugih zabavnih stvari.
Priporočena:
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): 8 korakov
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): ultrazvočni pretvorniki zvoka L298N Dc ženski adapter z napajalnim vtičem za enosmerni tok Arduino UNOBreadboard Kako to deluje: Najprej naložite kodo v Arduino Uno (to je mikrokrmilnik, opremljen z digitalnim in analogna vrata za pretvorbo kode (C ++)
Vijak - Nočna ura za brezžično polnjenje DIY (6 korakov): 6 korakov (s slikami)
Bolt - Nočna ura za brezžično polnjenje DIY (6 korakov): Induktivno polnjenje (znano tudi kot brezžično polnjenje ali brezžično polnjenje) je vrsta brezžičnega prenosa energije. Za zagotavljanje električne energije prenosnim napravam uporablja elektromagnetno indukcijo. Najpogostejša aplikacija je brezžično polnjenje Qi
Alexa Skill: Preberite najnovejši tweet (v tem primeru božji): 6 korakov
Alexa Skill: Preberite najnovejši tweet (v tem primeru božji): naredil sem Alexa spretnost za branje " božjega zadnjega tvita " - vsebino, to je @TweetOfGod, 5 milijonov+ naročniški račun, ki ga je ustvaril nekdanji pisatelj komedij Daily Show. Uporablja IFTTT (če je to potem tisto), Googlovo preglednico in
Merilnik korakov 1. del: Enobarvni zaslon 128x32 in Arduino: 5 korakov
Pedometer 1. del: Enobarvni zaslon 128x32 in Arduino: To je osnovna vadnica, ki uči, kako uporabljati zaslon OLED s svojim Arduinom. Uporabljam zaslon velikosti 128x32, lahko pa uporabite tudi drugačen zaslon z ločljivostjo in po potrebi spremenite ločljivost/koordinate. V tem delu vam bom pokazal, kako