RPI LCT3V1: Difference between revisions

From lechacal
Jump to navigation Jump to search
Line 67: Line 67:


Then copy the following into an executable file and run it.
Then copy the following into an executable file and run it.
This is below for '''sketch 1.3''' and below.


  #!/usr/bin/python
  #!/usr/bin/python2
  import serial
  import serial
  ser = serial.Serial('/dev/ttyAMA0', 38400)
  ser = serial.Serial('/dev/ttyAMA0', 38400)
Line 74: Line 75:
  try:
  try:
         while 1:
         while 1:
                response = ser.readline()
            # Read one line from the serial buffer
                z = response.split(" ")
            line = ser.readline()
                if len(z)>=7:
                        print "RealP 1: %s Watts" % z[1]
            # Remove the trailing carriage return line feed
                        print "RealP 2: %s Watts" % z[2]
            line = line[:-2]
                        print "RealP 3: %s Watts" % z[3]
                         print "Irms 1: %s mA" % z[4]
            # Create an array of the data
                        print "Irms 2: %s mA" % z[5]
            Z = line.split(' ')
                        print "Irms 3: %s mA" % z[6]
                        print "Vrms   : %s Volts" % z[7][:-2]
            # Print it nicely
            print ("----------")
            for i in range(len(Z)):
                if i==0:
                    print ("NodeID: %s" % Z[0])
                elif i in [1,2,3]:
                    print ("RealPower %d: %s W" % (i, Z[i]))
                elif i in [4,5,6]:
                    print ("Irms %d: %s mA" % (i, Z[i]))
                elif i==7:
                    print ("Vrms: %s V" % (Z[i]))
                          
except KeyboardInterrupt:
        ser.close()
 
 
 
This is below for '''sketch 2.0''' and above.
 
#!/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
            if len(Z)>15:
                print ("----------")
                print ("         \tCT1\tCT2\tCT3")
                print ("RealPower:\t%s\t%s\t%s" % (Z[1], Z[6], Z[11]))
                print ("AppaPower:\t%s\t%s\t%s" % (Z[2], Z[7], Z[12]))
                print ("Irms     :\t%s\t%s\t%s" % (Z[3], Z[8], Z[13]))
                print ("Vrms     :\t%s\t%s\t%s" % (Z[4], Z[9], Z[14]))
                print ("PowerFact:\t%s\t%s\t%s" % (Z[5], Z[10], Z[15]))
                       
  except KeyboardInterrupt:
  except KeyboardInterrupt:
         ser.close()
         ser.close()
To get the above example just enter the command below.
wget lechacal.com/RPICT/example/RPICT3V1_DEMO_02.py.zip
unzip RPICT3V1_DEMO_02.py.zip
and run it using
python RPICT3V1_DEMO_02.py


==Emoncms Config (Emonhub)==
==Emoncms Config (Emonhub)==

Revision as of 14:08, 18 March 2020

Link to shop

This page is for board specific information. More information can be found on the generic page for RPICT series.

The RPI LCT3V1 has been specifically designed for large CT of 400A and more. CT connector are screw terminal types as opposed to jack connectors.

  • 3 AC current sensor
  • 1 AC Voltage sensor.
  • Compute real power.
  • Fit on Raspberrypi 2 holes mounting pattern.
  • Attiny84 Mcu
  • Use with 400A CT

Compatibility

Version Compatible?
Raspberrypi 1 A Yes
Raspberrypi 1 B+ Yes
Raspberrypi 2 B Yes
Raspberrypi 3 B Yes
Raspberrypi 3 B+ Yes

Recommended sensors

  • AC Current sensor: SCT-024
  • AC Voltage sensor:
    • UK: 77DB-06-09
    • EU: 77DE-06-09
    • US: 77DA-10-09

Configuration

See general instructions for configuration below:

Configuration over serial for sketch version 1.1.

Configuration over serial for sketch version 1.2 & 1.3.

Configuration over serial for sketch version 2.0 & 2.1.

Version 2.0 & 2.1 can be configured using the web tool. Online Config Generator

View the data with Python

Please note the configuration must have Emonhub format enabled (format=3). The example script below will be a good starting point.

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. This is below for sketch 1.3 and below.

#!/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[0])
                elif i in [1,2,3]:
                    print ("RealPower %d: %s W" % (i, Z[i]))
                elif i in [4,5,6]:
                    print ("Irms %d: %s mA" % (i, Z[i]))
                elif i==7:
                    print ("Vrms: %s V" % (Z[i]))
                       
except KeyboardInterrupt:
       ser.close()


This is below for sketch 2.0 and above.

#!/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
            if len(Z)>15:
                print ("----------")
                print ("          \tCT1\tCT2\tCT3") 
                print ("RealPower:\t%s\t%s\t%s" % (Z[1], Z[6], Z[11]))
                print ("AppaPower:\t%s\t%s\t%s" % (Z[2], Z[7], Z[12]))
                print ("Irms     :\t%s\t%s\t%s" % (Z[3], Z[8], Z[13]))
                print ("Vrms     :\t%s\t%s\t%s" % (Z[4], Z[9], Z[14]))
                print ("PowerFact:\t%s\t%s\t%s" % (Z[5], Z[10], Z[15]))

                       
except KeyboardInterrupt:
       ser.close()


To get the above example just enter the command below.

wget lechacal.com/RPICT/example/RPICT3V1_DEMO_02.py.zip
unzip RPICT3V1_DEMO_02.py.zip

and run it using

python RPICT3V1_DEMO_02.py

Emoncms Config (Emonhub)

For default configuration.

 [[11]]
   nodename = my_RPICT3V1
   hardware = RPICT3V1
   [[[rx]]]
      names = RP1, RP2, RP3, Irms1, Irms2, Irms3, Vrms
      datacode = 0
      scales = 1,1,1,1,1,1,1
      units =W,W,W,mA,mA,mA,V

Using the default sketch the output will be
NodeID Realpower1 Realpower2 Realpower3 Irms1 Irms2 Irms3 Vrms

  • RealPower in Watts
  • Irms in MilliAmps
  • Vrms in Volts

Sketch

Units are sold flashed with sketch for use with Voltage sensor.

Usage with Voltage sensor

Version 1.0
Version 1.1
Version 1.2

Usage without Voltage sensor

If you wish to use the board without using the voltage sensor use the sketch below. Note power will be estimated power only using fixed voltage setup in configuration.
No Voltage Version 1.0
No Voltage Version 1.1

Once the sketch uploaded write the configuration as follow:

$ wget lechacal.com/RPICT/config/A0/rpict3t1.conf
$ lcl-rpict-config.py -w rpict3t1.conf

* rpict3t1 above is not a tipo

Related Pages

How to calibrate the Voltage Port

Use Emonhub with RPICT

Howto setup Raspbian for serial read

How to program an Attiny85 or Attiny84