X-Git-Url: http://git.rot13.org/?p=air-quality;a=blobdiff_plain;f=mh-z19b.pl;h=8307838938b064d1361a93e8976d24db38fa9317;hp=0c3fbd10a90a2e7a7db6d94d58427eff96bba3ee;hb=32bcafc453e010a0115903d346d4d3d6acdc33a0;hpb=600961033ca0ef7e42ebd2f93c894edcea3c3206;ds=sidebyside diff --git a/mh-z19b.pl b/mh-z19b.pl index 0c3fbd1..8307838 100755 --- a/mh-z19b.pl +++ b/mh-z19b.pl @@ -6,9 +6,8 @@ use Device::SerialPort; use Time::HiRes; use Data::Dump qw(dump); -my $port = shift @ARGV || '/dev/ttyUSB0'; -my $influx_url = shift @ARGV || 'http://10.13.37.229:8186/write?db=telegraf'; -$influx_url = 'http://10.13.37.92:8086/write?db=rot13'; +my $port = shift @ARGV || '/dev/serial/by-path/platform-3f980000.usb-usb-0:1.5:1.2'; +my $influx_url = shift @ARGV || 'http://10.13.37.92:8086/write?consistency=any&db=rot13'; my $s = new Device::SerialPort( $port ) || die $!; $s->baudrate(9600); @@ -16,7 +15,7 @@ $s->databits(8); $s->parity('none'); $s->stopbits(1); $s->handshake('none'); -$s->read_char_time(0); +$s->read_char_time(1); $s->read_const_time(10); $s->debug(1); @@ -30,8 +29,7 @@ while (1) { if ( $len > 0 ) { my @v = unpack('C*', $string); if ( $#v < 8 ) { - warn "# $len ",dump($string), dump( @v ), $/; - next; + die "# $len ",dump($string), dump( @v ), $/; } my $sum = 0; @@ -46,7 +44,10 @@ while (1) { if ( $v[0] == 0xff && $sum == $checksum ) { my $influx = "mh-z19b,dc=trnjanska co2=$co2 $t"; print "$influx\n"; - system "curl --silent -XPOST '$influx_url' --data-binary '$influx'" + system "curl --max-time 2 --silent -XPOST '$influx_url' --data-binary '$influx'"; + system "mosquitto_pub -h rpi2 -t 'air/mh-z19b/co2' -m $co2"; + } else { + die "checksum error"; } sleep 1; $s->write("\xFF\x01\x86\x00\x00\x00\x00\x00\x79");