Indholdsfortegnelse:

Tweet-A-Temp: 8 trin
Tweet-A-Temp: 8 trin

Video: Tweet-A-Temp: 8 trin

Video: Tweet-A-Temp: 8 trin
Video: skibidi toilet multiverse 023 bloopers 2024, November
Anonim

Af Z0tZot's Homebrew ExperimentsFølg mere af 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 ældste søn (Minion #1) og jeg begyndte at bygge en Tweet-A-Watt og undlod at følge anvisningerne korrekt, nemlig at vi lavede begge modtagere som standardmodtagere i stedet for kun en og derefter halvt udfylder den anden XBee-modtager. vi havde to valg, enten at skære de ekstra dele af eller noget andet. I betragtning af at jeg endnu ikke har fundet en Kill-A-Watt lokalt, og jeg havde dette eksterne/interne termometer, jeg havde ønsket at computere i 10 år, vidste jeg, hvad jeg skulle gøre: Jeg var nødt til at bruge termometeret til at måle temperaturen på mit spabad, og derefter tweet det! Jeg havde for nylig givet Minion #1 en opgave at beskrive en spabadcontroller uden grænser. Han nævnte, godt vi kunne gøre det trådløst, men nej, det er fjollet … Jeg elsker det, når en 10-årig plan bliver til virkelighed. Se den på Twitter

Trin 1: Byg Xbee -modtagere

Byg Xbee -modtagere
Byg Xbee -modtagere

Byg to XBEE -modtagere. Jeg brugte modtagerne fra Lady Ada, enhver modtager vil gøre. Du skal have adgang til XBees VREF- og AD0-pin. Tricket til Tweet-A-Watt er konfigurationen. I virkeligheden indstiller du en af enhederne til at gentage værdierne fra Kill-A-Watt med: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Dette indstiller adressen (1), indstiller dvaletilstand, timer og periode og indstiller derefter Pins 4 og 2 til Analog input mode (2), som sender 0x13 (19 decimal) pakker, 1 ms mellem prøver. Tricket her er den analoge indgang. Du kan læse små spændinger (0-5V) direkte af XBee. I Tweet-A-Watt ville du sætte pins 4 og 0 til at sende ampere og volt målt ved Kill-A-Watt. I virkeligheden sender den ikke det, den sender den lille spænding målt af chipsene i Kill-A-Watt til modtageren XBee, der er tilsluttet en computer. Softwaren på computeren læser konstant de modtagne pakker, og den genberegner den faktiske spænding og strømstyrke, og derefter beregner den watt.

Trin 2: Termometeret

Termometeret
Termometeret
Termometeret
Termometeret
Termometeret
Termometeret

Jeg købte to af disse indendørs/udendørs termometre for cirka 10 år siden fra hjemmedepot. Jeg var altid fascineret af, at det udvendige "termometer" sluttede til baseenheden med det, der lignede et standard lydstik. Jeg har altid spekuleret på, om jeg kunne måle temperaturen ved at tilslutte dette til et mikrofonstik på en computer.

Det viser sig, at jeg nok kunne få det til at fungere, men det ville være svært. Stikket er faktisk et 3/32 stik i stedet for et 1/8 lydstik. Dette er standardstikket til mobiltelefoner til eksterne mikrofoner. Dette gav et problem, da jeg ikke kunne finde nogen mikrofonstik i mine bunker med uønsket Jeg var nødt til at købe et sæt Radio Shack ($ 2), hvilket tilføjede en stor forsinkelse til projektet (det var ikke let at komme til en hytte). Jeg tog en enhed fra hinanden, før jeg pludselig indså, hvordan det virkede, det var en spændingsdeler! Det var tydeligt, når jeg tænkte over det. Det gjorde livet meget let.

Trin 3: Hvad er en spændingsdeler?

Hvad er en spændingsdeler?
Hvad er en spændingsdeler?

Et af de bedste steder at lære om elektronik er Wisconsin Online -skillelinjer forklaret på den side (nederst til højre), eller du kan besøge siden Wikipedia for spænding. Kort sagt, hvis du har to modstande i serie, er spændingsfaldet over hver modstand i forhold til modstandens størrelse. Hvis du har spænding V på tværs af et kredsløb på R (1) + R (2), så er V = V (1) + V (2). Så hvis V = 3V og V (2) = 2V, ved du, at V (1) = 1V. Nu er grundlaget for Ohms lov, at strømmen (I) er V/R. I et seriekredsløb er strømmen den samme hele vejen igennem, så strømmen gennem A og B er den samme for hele kredsløbet. Derfor I = V1/R1 = V2/R2. Vi kender V2 = V - V1, tilslutning, vi ser V1/R1 = (V -V1)/R2. Ved at løse får vi R2 = R1*(V-V1)/V1 Så hvis vi ved, om vi kender V (1), V og R (2), kan vi løse for R2. Hvis vi har R2, kender vi værdien af Termistor!

Trin 4: Hvad er en termistor?

Hvad er en termistor?
Hvad er en termistor?

En termistor er en modstand, der ændrer modstand med temperaturen. Ved hjælp af teknikkerne fra spændingsdeleren til at bestemme modstanden kan vi fortælle, hvilken temperatur det er. Problemet er, at jeg har en billig termistor i et hus fra et 10 år gammelt produkt. Hvordan skulle jeg lave en funktion til at gå fra en modstand til en temperatur? Jeg har et termometer, som det kan tilsluttes! Så jeg målte meget. Jeg kopierede temperaturen ned og målte derefter modstanden på termistoren. Jeg lagde det i køleskabet, derefter lagde jeg det i varmt vand. Senere ville jeg få rumtemperaturer siden jeg havde tid. Jeg formodede, at jeg kunne have læst Wikipedia plage kan forsøgt at gætte a og b faktorer, men jeg antog, at jeg brugte en ikke-lineær, mulig fejl komponent, der ikke længere matchede den fremstilling specifikationer. Åh, og jeg er doven. Så jeg dumpede alle værdierne i Excel, og tegnede det derefter. Jeg var oprindeligt bekymret for, at jeg skulle huske den dybe mørke matematik om noget som "mindst kvadratisk pasform", da jeg opdagede, at Excell ville gøre dette for mig! Det er klart, jeg mangler huller på grafen, men jeg fik masser af gode data omkring spabadstemperaturer (100-105F). Mens jeg kontrollerede rumtemperaturområderne, bemærkede jeg noget, der næsten gør mit arbejde værdiløst. "Precise Temp" -termometeret rapporterede en 3-7 graders fejl mellem "indendørs" og "udendørs", da termistoren var centimeter væk! Nu kan det skyldes, at jeg blandede og matchede termistor mellem enheder, men jeg satser på, at det har mere at gøre med kvaliteten af en 10 -årig, $ 10 vare & Uanset "nøjagtigheden" af temperaturen, havde jeg brug for præcision og flere test af det samme område viste meget tætte resultater over dage. I det lange løb vil jeg sandsynligvis vedhæfte termistoren til et rør, der fører ind i spabadet, så jeg har alligevel brug for en forskydning. Så ved at få Excel til at vise ligningen, satte jeg den derefter ind i koden, og indtil videre er det " tæt."

Trin 5: Senderkredsløb

Senderkredsløb
Senderkredsløb

Senderkredsløbet er enkelt. Jeg valgte en 100 kOhm modstand til R2, da det så ud til at passe til området fra grafen, og jeg havde en ekstra til at aflodde forskellige ting med Minions. Jeg forbinder dette i serie med termistoren via et stik. Derefter tilføjede jeg en batteripakke. Jeg kørte 3 V til VREF og toppen af spændingsdeleren og til Xbee +3V -indgangen. Jeg satte GND (Battery Negative) til GND -input og til bunden af divideren. Jeg tilsluttede derefter AD0 (volt i) til midten af spændingsdelerkredsløbet.

AD0 vil aflæse en relativ spænding fra VREF til V (1). Så når batteriet falder, bør den relative spænding falde det samme. Til sidst vil jeg forsyne enheden med en lokal strømkilde. Den færdige enhed fungerede fint, vi forbinder alt med krokodilleklip, hvilket gjorde det skrøbeligt. Efter at jeg fik den kvindelige 3/32 "forbindelse, placerede jeg senderen i et tilfældigt plastikkar, vi havde (en tidligere hummusbeholder). Dette skulle beskytte det mod vejr. Siden jeg købte" panelmonterede "stik, var det så enkelt som at bore et hul i plasten for at tilføje stikket til ydersiden med en temmelig vandtæt forbindelse. Når vi havde det, var det tid til at teste.

Trin 6: Hjem, hjem, har ingen rækkevidde

Hjem, hjem, har ingen rækkevidde
Hjem, hjem, har ingen rækkevidde
Hjem, hjem, har ingen rækkevidde
Hjem, hjem, har ingen rækkevidde
Hjem, hjem, har ingen rækkevidde
Hjem, hjem, har ingen rækkevidde

En af de første ting, vi lagde mærke til, var, at rækkevidden døde en frygtelig død, så snart vi gik ud af kontoret med senderen. Vi prøvede fra et andet rum, og resultaterne var forfærdelige. 1 meter væk blev det skidt. Tid til at se på løsninger. Det gik op for mig, at hvor vi testede, havde vi 4 kilder til Wi Fi inden for 5 fod, alle i 2,5 Ghz -området som Xbee. Vi sigtede heller ikke på "Xbee." har en "Range Test" indbygget, men det gjorde ikke noget. Jeg brugte noget tid på at prøve at finde ud af, hvordan man fik det til at fungere. Faktisk var dette lige så let udført end sagt. Jeg behøvede ikke rigtig X-CTU-testen, bare "RX Signal Strength Indicator" (RSSI) værdi. Jeg kiggede i xbee.pyTweet-A-Watt bruger og lige der, linje 39: [kode] self.rssi = p [3] [/kode] Hvilket betyder at det er en del af Xbee -returværdien! (xb.rssi i wattcher), så jeg ændrede en fejlretningslinje til mit hack: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Spænding: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" Thermistor: " + str (x) + "Temperatur:" + str (Temperatur) Som producerer en linje som denne: 373: RSSI: 82 | 2009 04 26, 11:18,: Spænding: 1.80100585938 avgv 593 Thermistor: 71.2276559865 Temperatur: 78.6813444881 Du kan se også RSSI med behandling, fra Tom's Igoe's side. Selvom du vil ændre pakkelængden (øverst), da Processing klagede over at skrive forbi slutningen af pakkebufferstørrelsen. Jeg tror, du skal være større end 2 * forventet pakkelængde. Toms kode kigger baglæns efter en tidligere pakke, hvilket betyder, at hvis den savner Ox7E -pakkeindikatoren, kan den køre et stykke tid. I betragtning af at jeg er tæt på den ydre kant af måleområdet, kan det ske et stykke tid. Jeg satte min til 600, og det stoppede med at give mig meddelelsen "fejl, deaktivering af serialEvent ()". Tom's kode udskriver blot den nyeste indstilling, hvilket ikke er så nyttigt for mig. Min fejlretningslinje lader mig spore ændrer sig, efterhånden som Minion #1 undrer sig over. Nu havde vi en god måde at måle på, mere end "hey far vi har en pakke" var det tid til at prøve nogle ideer til hjemmebrygning af antenne! Ved hjælp af ideer fra https://www.usbwifi.orconhosting.net.nz/ har jeg fundet ud af, at Corner Cube målte et fald i dB, selvom det i praksis ikke syntes at hjælpe med at forbinde et afbrudt par. Vegatible Steamer var faktisk den bedste til at sigte og tilslutte igen. USB Wifi's opsætning adskiller sig meget fra nogle andre mennesker. Dampene har en stilk i midten, hvilket gør det let at placere XBee. En pho -skål med stanniol ser også lovende ud (selvom vi lige fjernede stanniolen senere og holdt den på plads). Vi forsøgte også at lave en parabel med et bøjende stykke varme hjul "spor", men det syntes ikke at hjælpe. Et af problemerne er, at vi testede i yderkanten af intervallet. De fleste 2,5 GHz radio, især XBee, bruger spread Spectrum, hvilket betyder, at de kan tage et øjeblik for at "synkronisere", og derefter leder XBee -softwaren efter begyndelsen af en XBee -pakke før trigger. Det betyder, at hvis du får en alt eller intet effekt. Enten låser radioerne på hinanden eller ej. Engang virker det som held, men faktisk er du en antenne på disse områder og kan påvirke resultaterne. Jeg gik for at købe to dampskibe, men fandt derefter ud af, at prisen på en damper fra det lokale supermarked var $ 10, og for prisen på 2 dampskibe kan jeg få en mere kraftfuld XBee. Så jeg kiggede på et par steder mere og fandt en temmelig dyb sil, som er blevet endnu bedre. Det var $ 7. Jeg mener, at dybden er vigtig, da jeg er ved at sende enden på tingene, afspejler det mere af signalet (i henhold til noterne i https://www.usbwifi.orconhosting.net.nz/number13.jpg). Slutresultater, er, at jeg med en grøntsagsdamper i den ene ende (skal udskiftes) og en si i den anden, har signal omkring 20-30m, fra et interiørkontor, gennem 3-4 vægge, ud til spabadet! Pro tip: Husk at bringe silen ind, hvis du vil 1) Din ægtefælle skal blive, og/eller 2) Ønsker dampede grøntsager senere. Personligt kan jeg godt lide grøntsagsdamperens kronblad-lignende udseende.

Trin 7: Software

Software
Software

Fra og med Tweet-A-Wattsoftware begyndte jeg at hacke væk på python-koden. For det meste havde jeg brug for at fjerne Watts-konverteringen, historiefunktionerne, og derefter skulle jeg tilføje et antal divideret med 0-beskyttelser (Tweet-A-Watt antager, at pakker vil have data). Jeg tilføjede derefter formlen fra Excel til programmet og testet. Jeg satte den til at udskrive hver pakke, og jeg har masser af fejlfinding i koden for at fange problemer. Jeg forsøgte at få grafdelen til at fungere, men jeg opgav, hvilket bringer mig til: Python Rant: Dette er anden gang, jeg har forsøgte at lave et større projekt i Python. Jeg kunne ikke få alle bibliotekers afhængigheder og basispakker til at fungere på under 20 timer i Windows, Windows 64, Ubuntu og Fedora. Jeg var endelig nødt til at bygge næsten alt fra bunden, og selv da virkede nogle funktioner ikke. Jeg prøvede 2.4, 2.5, 2.6 og forskellige 3. X versioner og derefter versioner af hvert bibliotek, som igen havde afhængigheder af andre pakker. Selvom andre måske har rant mod sproget, fandt jeg bare installation, selv ved at bruge mange af de "lette installatører" i bedste fald skræmmende! Efter at jeg havde beregnet temperaturerne, foretog jeg en 1 graders justering, fordi jeg ikke kunne tro, at boblebadet var på 106F. Jeg tror virkelig heller ikke, at det er på 105. Jeg tweed derefter rapporterings- og twitter -logikken. Da jeg ikke er sikker på, om jeg får pakker eller gode pakker, valgte jeg at rapportere temp en gang i timen. Jeg går ud fra, at jeg vil skære det ned om et stykke tid. I øjeblikket kører scriptet som en normal bruger. Jeg vil gerne flytte det til en service i sidste ende.

Trin 8: Næste trin

Der er nogle indlysende næste trin:

1) Udskift grøntsagssilen a. Minions har brug for deres grøntsager! b. Den var alligevel gammel. 2) Placer Hot Tub -antennen under dæk a. Dækket gør det måske endnu "længere", men det giver mulighed for en grimmere opsætning. b. Jeg kan derefter køre termistoren til undersiden og finde et bedre sted. 3) Tilføj flere sensorer a. Den lette er en udetemperaturføler. b. Men der er ingen grund til, at vi ikke kunne opdage tilstanden på kontrolpanelerne, især varmesensoren, der på magisk vis bliver rørt, når børn er forbi. c. Andre vejrsensorer (vind, fugtighed osv.) D. Det ville være rart at styre spabadet, og jeg kunne slukke for opvarmning i store dele af natten og dagen. 4) Jeg kan justere softwaren a. Minions ønsker allerede bedre beskeder pr. Temperatur. b. Vi burde kunne svare på svar og DM'er. c. Jeg burde tweet mere intelligent (mindre end en gang i timen). d. Jeg har planlagt nogle andre sjove ting.

Anbefalede: