Innholdsfortegnelse:

Tweet-A-Temp: 8 trinn
Tweet-A-Temp: 8 trinn

Video: Tweet-A-Temp: 8 trinn

Video: Tweet-A-Temp: 8 trinn
Video: Фанаты Эркана Мерича взорвали соцсети перед сериалом! 2024, November
Anonim

Av Z0tZot's Homebrew ExperimentsFølg Mer av forfatteren:

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

Min eldste sønn (Minion #1) og jeg begynte å bygge en Tweet-A-Watt og klarte ikke å følge instruksjonene riktig, nemlig at vi laget begge mottakerne som standardmottakere i stedet for bare en og deretter halvparten av den andre XBee-mottakeren. vi hadde to valg, enten kutte de ekstra delene av, eller noe annet. Gitt at jeg ennå ikke har funnet en Kill-A-Watt lokalt, og jeg hadde dette eksterne/interne termometeret jeg hadde ønsket å databehandle i 10 år, visste jeg hva jeg måtte gjøre: Jeg måtte bruke termometeret til å måle temperaturen på boblebadet mitt, og deretter tweet det! Jeg hadde nylig gitt Minion #1 en oppgave å beskrive en badestampkontroller uten grenser. Han nevnte, vel, vi kunne gjøre det trådløst, men nei, det er dumt … Jeg elsker det når en 10-års plan kommer til utførelse. Se den på Twitter

Trinn 1: Bygg Xbee -mottakerne

Bygg Xbee -mottakerne
Bygg Xbee -mottakerne

Bygg to XBEE -mottakere. Jeg brukte mottakerne fra Lady Ada, en hvilken som helst mottaker vil gjøre. Du trenger tilgang til XBees VREF- og AD0-pin. Trikset til Tweet-A-Watt er konfigurasjonen. Du setter faktisk inn en av enhetene for å gjenta verdiene fra Kill-A-Watt med: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Dette angir adressen (1), stiller hvilemodus, timer og periode, og setter deretter Pins 4 og 2 til Analog inngangsmodus (2), som sender 0x13 (19 desimal) pakker, 1 ms mellom prøver. Trikset her er den analoge inngangen. Du kan lese små spenninger (0-5V) direkte av XBee. I Tweet-A-Watt vil du sette pinnene 4 og 0 til å sende ampere og volt målt ved Kill-A-Watt. I virkeligheten sender den ikke det, den sender den lille spenningen målt av brikkene i Kill-A-Watt til mottakeren XBee som er koblet til en datamaskin. Programvaren på datamaskinen leser hele tiden de mottatte pakkene, og den beregner den faktiske spenningen og strømstyrken på nytt, og deretter beregner den effekten.

Trinn 2: Termometeret

Termometeret
Termometeret
Termometeret
Termometeret
Termometeret
Termometeret

Jeg kjøpte to av disse innendørs/utendørs termometre for omtrent 10 år siden fra hjemmedepotet. Jeg var alltid fascinert av at det utvendige "termometeret" ble koblet til baseenheten med det som så ut som en vanlig lydplugg. Jeg har alltid lurt på om jeg kunne måle temperaturen ved å koble dette til en mikrofonkontakt på en datamaskin.

Det viser seg at jeg sannsynligvis kunne få det til å fungere, men det ville være vanskelig. Pluggen er faktisk en 3/32 kontakt, i stedet for en 1/8 lydplugg. Dette er standardpluggen for mobiltelefoner for eksterne mikrofoner. Dette ga et problem da jeg ikke fant noen mikrofonplugger i søppelhaugene mine Jeg måtte kjøpe et sett fra Radio Shack ($ 2), noe som ga prosjektet en stor forsinkelse (det var ikke lett å komme til en hytte). Jeg tok en enhet fra hverandre før jeg plutselig skjønte hvordan ting fungerte., det var en spenningsdeler! Det var tydelig når jeg tenkte på det. Det gjorde livet veldig enkelt.

Trinn 3: Hva er en spenningsdeler?

Hva er en spenningsdeler?
Hva er en spenningsdeler?

Et av de beste stedene å lære om Electronic er Wisconsin Online -skillelinjer forklart på den siden (nede til høyre), eller du kan besøke Voltage Wikipedia -siden. Kort sagt, hvis du har to motstander i serie, er spenningsfallet over hver motstand i forhold til størrelsen på motstanden. Hvis du har spenning V over en krets på R (1) + R (2), så er V = V (1) + V (2). Så hvis V = 3V og V (2) = 2V, vet du at V (1) = 1V. Nå er grunnlaget for Ohms lov at strømmen (I) er V/R. I en seriekrets er strømmen den samme gjennomgående, så strømmen gjennom A og B er den samme for hele kretsen. Derfor I = V1/R1 = V2/R2. Vi vet V2 = V - V1, plugger vi inn, ser vi V1/R1 = (V -V1)/R2. Når vi løser får vi R2 = R1*(V-V1)/V1 Så hvis vi vet om vi kjenner V (1), V og R (2), kan vi løse for R2. Hvis vi har R2, vet vi verdien av Termistor!

Trinn 4: Hva er en termistor?

Hva er en termistor?
Hva er en termistor?

En termistor er en motstand som endrer motstand med temperaturen. Ved å bruke teknikkene fra spenningsdeleren for å bestemme motstanden, kan vi fortelle hvilken temperatur det er. Problemet er at jeg har en billig termistor i et foringsrør fra et 10 år gammelt produkt. Hvordan skulle jeg lage en funksjon for å gå fra en motstand til en temperatur? Jeg har et termometer som det kan kobles til! Så jeg målte mye. Jeg kopierte temperaturen og målte deretter motstanden til termistoren. Jeg la den i kjøleskapet, og deretter la jeg den i varmt vann. Senere ville jeg få tak i romtemperaturer siden jeg hadde tid. Jeg antok at jeg kunne ha lest Wikipedia-siden kan prøve å gjette a- og b-faktorene, men jeg antok at jeg brukte en ikke-lineær, mulig sviktende komponent som ikke lenger matchet produksjonen. spesifikasjoner. Oh, og jeg er lat. Så jeg dumpet alle verdiene i Excel, og så tegnet det. Jeg var opprinnelig bekymret for at jeg måtte huske den dype mørke matematikken til noe som "minst kvadratisk passform" da jeg oppdaget at Excell vil gjøre dette for Jeg mangler tydeligvis hull på grafen, men jeg har mange gode data rundt badestampstemperaturer (100-105F). Mens jeg sjekket romtemperaturområdene, la jeg merke til noe som nesten gjør arbeidet mitt verdiløst. "Precise Temp" -termometeret rapporterte en 3-7 graders feil mellom "innendørs" og "utendørs" når termistoren var centimeter unna! Nå kan dette være fordi jeg blandet og matchet termistoren mellom enhetene, men jeg satser på at det har mer å gjøre med kvaliteten på en 10 år gammel, $ 10 vare og uavhengig av "nøyaktigheten" av temperaturen, trengte jeg presisjon og flere tester av det samme området viste svært tette resultater over dager. På sikt vil jeg sannsynligvis feste termistoren til et rør som leder inn i badestampen, så jeg trenger en forskyvning uansett. Så ved å få Excel til å vise ligningen, legger jeg den deretter inn i koden, og så langt er det " Lukk."

Trinn 5: Senderkrets

Senderkrets
Senderkrets

Senderkretsen er enkel. Jeg valgte en 100 kOhm motstand for R2 siden det så ut som det ville passe i området fra grafen, og jeg hadde en ekstra fra å lodde forskjellige ting med Minions. Jeg kobler dette i serie med termistoren via en kontakt. Så la jeg til en batteripakke. Jeg kjørte 3 V til VREF og toppen av spenningsdeleren og til Xbee +3V -inngangen. Jeg satte GND (Battery Negative) til GND -inngangen, og til bunnen av skillet. Jeg koblet deretter AD0 (volt i) til midten av spenningsdelerkretsen.

AD0 vil lese en relativ spenning fra VREF til V (1). Så ettersom batteriet synker, bør den relative spenningen synke det samme. Etter hvert vil jeg drive enheten med en lokal strømkilde. Den ferdige enheten fungerte fint, vi kobler alt sammen med krokodilleklips, noe som gjorde den skjør. Etter at jeg fikk den kvinnelige 3/32 "tilkoblingen, plasserte jeg senderen i et tilfeldig plastkar som vi hadde (en tidligere hummusbeholder). Dette burde beskytte den mot vær. Siden jeg kjøpte" panelmonterte "kontakter, var det like enkelt som å bore et hull i plasten for å legge kontakten på utsiden med en ganske vanntett tilkobling. Når vi hadde det var det på tide å teste.

Trinn 6: Hjem, hjem, har ingen rekkevidde

Hjem, hjem, har ingen rekkevidde
Hjem, hjem, har ingen rekkevidde
Hjem, hjem, har ingen rekkevidde
Hjem, hjem, har ingen rekkevidde
Hjem, hjem, har ingen rekkevidde
Hjem, hjem, har ingen rekkevidde

En av de første tingene vi la merke til var at rekkevidden døde en fryktelig død så snart vi gikk ut av kontoret med senderen. Vi prøvde fra et annet rom, og resultatene var forferdelige. 1 meter unna ble det gal. På tide å se på løsninger. Det gikk opp for meg at der vi testet hadde vi 4 kilder til Wi Fi innen 5 fot, alt i 2,5 GHz -området som Xbee. Vi siktet heller ikke på "Xbee i det hele tatt. Etter undersøkelser bestemte jeg meg for at jeg kunne kjøpe en mer kraftfull Xbee-radio (ca. $ 23) eller legge til antenner. En av tingene jeg trengte var en god rekkevidde-test. X-CTU-programvaren fra Digi har en "Range Test" innebygd, men det gjorde ingenting. Jeg brukte litt tid på å prøve å finne ut hvordan jeg skulle få det til å fungere. Egentlig var dette like lettere gjort enn sagt. Jeg trengte egentlig ikke X-CTU-testen, bare "RX Signal Strength Indicator" (RSSI) verdi. Jeg så i xbee.pyTweet-A-Watt bruker og akkurat der, linje 39: [kode] self.rssi = p [3] [/kode] Hvilket betyr at det er en del av Xbee -returverdien! (xb.rssi i wattcher), så jeg endret en feilsøkingslinje for hacket mitt: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Spenning: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" Thermistor: " + str (x) + "Temperatur:" + str (Temperatur) Som produserer en linje som denne: 373: RSSI: 82 | 2009 04 26, 11:18,: Spenning: 1.80100585938 avgv 593 Termistor: 71.2276559865 Temperatur: 78.6813444881 Du kan se også RSSI med behandling, fra Tom's Igoe's side. Selv om du vil endre pakkelengden (øverst), ettersom Processing klaget over å skrive forbi slutten av pakkebufferstørrelsen. Jeg tror du må være større enn 2 * forventet pakkelengde. Toms kode ser bakover for en tidligere pakke, noe som betyr at hvis den savner Ox7E -pakkeindikatoren, kan den kjøre en stund. Gitt at jeg er nær ytre kant av måleområdet, kan det skje en stund. Jeg satte min til 600 og den sluttet å gi meg meldingen "feil, deaktivering av serialEvent ()". Tom -koden skriver bare ut den siste innstillingen, noe som ikke er så nyttig for meg. Min feilsøkingslinje lar meg spore endringer som Minion #1 lurer på. Nå hadde vi en god måte å måle på, mer enn "hei pappa vi har en pakke" var det på tide å prøve noen ideer for hjemmebrygging av antenner! Ved å bruke ideer fra https://www.usbwifi.orconhosting.net.nz/ har jeg funnet ut at Corner Cube målte en nedgang i dB, selv om det i praksis ikke så ut til å hjelpe til med å koble et frakoblet par. Vegatible Deamer var faktisk best på å sikte og koble til igjen. USB Wifi -oppsettet er mye annerledes enn noen andre. Steamers har en stilk i midten som gjør det enkelt å plassere XBee. En pho -bolle med tinnfolie ser også lovende ut (selv om vi nettopp fjernet tinnfolien senere og holdt den på plass). Vi prøvde også å lage en parabel med et bøyende stykke varme hjul "spor", men det så ikke ut til å hjelpe. Ett av problemene er at vi testet i ytterkanten av serien. De fleste 2,5 GHz -radioer, spesielt XBee, bruker spread Spectrum, noe som betyr at de kan ta et øyeblikk å "synkronisere", og deretter ser XBee -programvaren etter begynnelsen på en XBee -pakke før utløseren. Dette betyr at hvis du får en alt eller ingenting -effekt. Enten låser radioene seg på hverandre, eller ikke. Noen ganger virker det som flaks, men faktisk er du en antenne på disse områdene og kan påvirke resultatene. Jeg gikk for å kjøpe to dampbåter, men så fant jeg ut at kostnaden for en dampbåt fra det lokale supermarkedet var $ 10, og for prisen på 2 dampere kan jeg få en kraftigere XBee. Så jeg så på noen flere steder og fant en ganske dyp sil som har blitt enda bedre. Det var $ 7. Jeg tror at dypheten er viktig, siden jeg er på overføringsenden av ting, gjenspeiler den mer av signalet (i henhold til notatene i https://www.usbwifi.orconhosting.net.nz/number13.jpg). Sluttresultater, er at med en grønnsaksdamper i den ene enden (som skal skiftes ut) og en sil i den andre, har jeg signal om 20-30m, fra et interiørkontor, gjennom 3-4 vegger, ut til badestampen! Pro-tips: Husk å ta inn silen hvis du vil 1) Din ektefelle skal bli, og/eller 2) Vil ha dampede grønnsaker senere. Personlig liker jeg det kronbladlignende utseendet på grønnsakskammeret.

Trinn 7: Programvare

Programvare
Programvare

Fra og med Tweet-A-Wattsoftware begynte jeg å hacke bort pytonkoden. For det meste trengte jeg å fjerne Watts-konverteringen, historikkfunksjonene, og så måtte jeg legge til et antall divider med 0-beskyttelser (Tweet-A-Watt antar at pakker vil ha data). Jeg la deretter til formelen fra Excel i programmet Jeg satte den til å skrive ut hver pakke, og jeg har masse feilsøking i koden for å få problemer. Jeg prøvde å få grafdelen til å fungere, men jeg ga opp, noe som bringer meg til: Python Rant: Dette er andre gang jeg har prøvde å gjøre et stort prosjekt i Python. Jeg kunne ikke få alle bibliotekets avhengigheter og grunnpakker til å fungere på under 20 timer i Windows, Windows 64, Ubuntu og Fedora. Jeg måtte til slutt bygge nesten alt fra bunnen av, og selv da fungerte ikke noen funksjoner. Jeg prøvde 2.4, 2.5, 2.6 og forskjellige 3. X -versjoner, og deretter versjoner av hvert bibliotek, som igjen hadde avhengigheter av andre pakker. Selv om andre kan ha rant mot språket, fant jeg det bare å installere, selv om jeg brukte mange av de "enkle installatørene" i beste fall! var på 106F. Jeg tror virkelig ikke det er på 105 heller. Jeg tweek deretter rapporterings- og twitter -logikken. Siden jeg ikke er sikker på om jeg får pakker eller gode pakker, valgte jeg å rapportere tempen en gang i timen. Jeg antar at jeg vil kutte det tilbake om en stund. For tiden kjører skriptet som en vanlig bruker. Jeg vil ønske å flytte den til en tjeneste etter hvert.

Trinn 8: Neste trinn

Det er noen åpenbare neste trinn:

1) Bytt ut grønnsaksilen a. Minions trenger grønnsakene sine! b. Den var uansett gammel. 2) Plasser badestampantennen under dekk a. Dekk kan gjøre det enda "lengre", men det gir rom for et styggere oppsett. b. Jeg kan deretter kjøre termistoren til undersiden og finne et bedre sted. 3) Legg til flere sensorer a. Den enkle er en utetemperaturføler. b. Men det er ingen grunn til at vi ikke kunne oppdage tilstanden til kontrollpanelene, spesielt varmesensoren som på magisk vis blir rørt når barna er over. c. Andre værsensorer (vind, fuktighet, etc.) d. Det ville være fint å kontrollere boblebadet, og jeg kunne slå av oppvarming store deler av natten og dagen. 4) Jeg kan justere programvaren a. Minions ønsker allerede bedre meldinger per temperatur. b. Vi bør kunne svare på svar og DM. c. Jeg burde tweet mer intelligent (mindre enn en gang i timen). d. Jeg har noen andre morsomme ting planlagt.

Anbefalt: