RPICT4T4: Difference between revisions

From lechacal
Jump to navigation Jump to search
Line 79: Line 79:
Then copy the following into an executable file and run it.
Then copy the following into an executable file and run it.


<syntaxhighlight lang="Python" line='line'>
 
  #!/usr/bin/python2
  #!/usr/bin/python2
  import serial
  import serial
Line 107: Line 107:
  except KeyboardInterrupt:
  except KeyboardInterrupt:
         ser.close()
         ser.close()
</syntaxhighlight>


==Files==
==Files==

Revision as of 15:56, 2 October 2020

Link to shop

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

  • 4x AC Current Sensors
  • 4x DS18B20 Temperature Sensors
  • Microcontroller: Atmel ATtiny84

Compatibility

Version Compatible?
Raspberrypi 1 A No
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.

Current Sensor

Recommended sensor: SCT-013-000

For AC current only.

Temperature Sensor

Connector: 3.5mm Jack

The intended temperature sensor is the DS18B20.

The connector is a 3 way screw terminal connector.

Configuration

Starting from sketch version 1.4 the RPICT4T4 is configured over serial.

See general instructions for configuration over serial.

Emoncms Config (Emonhub)

For default configuration.

 [[11]]
   nodename = RPICT4T4
   hardware = RPICT4T4
   [[[rx]]]
       names = Power1, Power2, Power3, Power4, T1, T2, T3, T4
       datacode = 0
       scales = 1,1,1,1,1,1,1,1
       units = W,W,W,W,C,C,C,C

Python Example

Please note the uploaded sketch must have CSV enabled. 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.


#!/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,4]:
                    print ("Power %d: %s W" % (i, Z[i]))
                else:
                    print ("Temperature %d: %s C" % (i,Z[i]))
                       
except KeyboardInterrupt:
       ser.close()

Files

Sketch version 1.6

Sketch version 2.0

Related Pages

Howto_setup_Raspbian_for_serial_read

How to program an Attiny85 or Attiny84