Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import time
  2. import RPi.GPIO as GPIO
  3. GPIO.setmode(GPIO.BCM)
  4.  
  5. GPIO.setup(26, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
  6.  
  7. def get_watts(sample_time):
  8.     """Count impulses for sample_time seconds and then calculate average wattage."""
  9.     impulses = 0
  10.     start = time.time()
  11.     while time.time() - start < sample_time:
  12.         GPIO.wait_for_edge(26, GPIO.FALLING)
  13.         impulses += 1
  14.  
  15.     # 10000 impulses per hour @ 1kW
  16.     # =  10 impulses per hour @ 1W
  17.     # impulses = watts * (10 * hours)
  18.     # watts = impulses / (10 * hours)
  19.     # 1 hour = 60 * 60 seconds = 3600 seconds
  20.     # hours = sample_time / 3600
  21.     # watts = impulses / (10 * sample_time / 3600)
  22.     # watts = impulses / (sample_time / 360)
  23.     # watts = impulses * (360 / sample_time)
  24.    
  25.     return impulses * 360.0 / sample_time
  26.  
  27. while 1:
  28.     print (get_watts(60), 'watts')
  29.  
  30. GPIO.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement