This page is for board specific information. More information can be found on the generic page for RPICT series.
The RPICT3T1 measures AC Power and Temperature.
- 3x AC current sensor
- 1x DS18B20 Temperature Sensor
- Attiny84 Microcontroller
Power is computed using a fixed estimated Voltage. This estimated voltage can be configured. Default value is 240V. You will be able to change this to 110 or 220 depending on the country where it is used.
If you require more accurate power measurement then use the RPICT3V1 board instead. This will also read Voltage and calculate Real Power. A voltage sensor will be required in this case.
|Raspberrypi 1 A||Yes|
|Raspberrypi 1 B+||Yes|
|Raspberrypi 2 B||Yes|
|Raspberrypi 3 B||Yes|
|Raspberrypi 3 B+||Yes|
|Raspberrypi 4 B||Yes|
- Asus Tinkerboard has been reported to work with RPICT units. Note we wont be able to provide support for the Tinkerboard.
- AC Current sensor:
The DS18B20 temperature sensor can be connected directly to the screw terminal connector.
Connection is as follow:
Vcc - Red
Din - Yellow
Gnd - Black
See general instructions for
The serial port will output 4 values. These are the 3 estimated powers and the temperature. If you prefer having current in Amperes rather than Power in Watt set VEST=1 in the configuration. Likewise set VEST=1000 to get milliAmperes.
If calibration is required only ICAL has any effect on the calibration.
VCAL and PHASECAL might be present in the config but have no effect. These should be ignored.
Emoncms Config (Emonhub)
For default configuration. Used as single board only (not stacked).
[] nodename = RPICT1T1 firmware = RPICT3T1_V1_1.ino hardware = RPICT3T1 [[[rx]]] names = Power1,Power2,Power3,Temperature datacode = 0 scales = 1,1,1,1 units = W,W,W,C
Python demo script
First of all make sure you have python-serial package installed
$ sudo apt-get install python-serial
Then copy the following into an executable file and run it.
#!/usr/bin/python2 import serial ser = serial.Serial('/dev/ttyAMA0', 38400) try: while 1: # Read one line from the serial buffer line = ser.readline() # Remove the trailing carriage return line feed line = line[:-2] # Create an array of the data Z = line.split(' ') # Print it nicely print ("----------") for i in range(len(Z)): if i==0: print ("NodeID: %s" % Z) elif i in [1,2,3]: print ("Power %d: %s W" % (i, Z[i])) elif i==4: print ("Temperature: %s C" % (Z[i])) except KeyboardInterrupt: ser.close()
Please verify which board version is yours. This is written on the circuit board itself.