4 # sudo apt install libdevice-serialport-perl libdata-dump-perl
5 use Device::SerialPort;
6 use Data::Dump qw(dump);
8 my $port = shift @ARGV || '/dev/ttyUSB1';
9 my $influx_url = shift @ARGV || 'http://10.13.37.229:8186/write?db=telegraf';
10 $influx_url = 'http://10.13.37.92:8086/write?db=rot13';
12 my $s = new Device::SerialPort( $port ) || die $!;
17 $s->handshake('none');
18 $s->read_char_time(5);
19 $s->read_const_time(100);
36 my ($len, $string) = $s->read(24);
38 my @v = unpack('n*', $string);
39 warn "# $len ",dump($string), dump( @v ), $/;
40 my $header = shift @v;
41 if ( $header == 0x424d ) {
43 pop @v; # remove checksum
44 my $influx = "pms3003,dc=trnjanska ";
45 foreach my $i ( 0 .. $#v ) {
46 $influx .= "$names[$i]=$v[$i],";
50 system "curl --silent -XPOST '$influx_url' --data-binary '$influx'"