Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import RPi.GPIO as GPIO
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(26, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
- def get_watts(sample_time):
- """Count impulses for sample_time seconds and then calculate average wattage."""
- impulses = 0
- start = time.time()
- while time.time() - start < sample_time:
- GPIO.wait_for_edge(26, GPIO.FALLING)
- impulses += 1
- # 10000 impulses per hour @ 1kW
- # = 10 impulses per hour @ 1W
- # impulses = watts * (10 * hours)
- # watts = impulses / (10 * hours)
- # 1 hour = 60 * 60 seconds = 3600 seconds
- # hours = sample_time / 3600
- # watts = impulses / (10 * sample_time / 3600)
- # watts = impulses / (sample_time / 360)
- # watts = impulses * (360 / sample_time)
- return impulses * 360.0 / sample_time
- while 1:
- print (get_watts(60), 'watts')
- GPIO.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement