Are you getting enough sleep?

いつも眠い.これが睡眠負債というやつか.

OpenBlocksBX1 の消費電力

iijmioのSIMで,自宅のRTX830に L2TP/IPSec してたらどのくらいの消費電力なのだろうと確認してみた.
バッテリーの持ちに関わるので非常に重要です.
自宅側から,ping してる状態で測定してみます.

最大で3W超え,よくわからないけど2Wを下回ったり2.6か2.7Wくらいになったりと,結構変動が激しい.

みてた感じ,3Wで計算していたほうが無難だろうなって思います.
起動してからずっと3Wではなく,通信しているときがこの状態なので,ずっと3Wは過大でしょうけど.

f:id:halrroc:20210211162907j:plain

f:id:halrroc:20210211162921j:plain

f:id:halrroc:20210211162933j:plain

LAN(Ethernet) ⇔ RS-232C変換

現場においた計測器を制御したい.1時間に1回とか,10分に1回とかでいいのだけど. なんといっても商用電源がないのが問題で,間欠動作が必要.

Raspberry Pi 4にWindowsいれてもよいけど,やってみるとちょっとこれは・・・,というくらい遅い. まだ実用できないことはよくわかった. また,サンプルコードがWindows用になってるから,Linux用にbuildもできない.全部かきかえるほど手間はかけたくないし. 商用電源がないから,消費電力が大きいのも困る.

というわけで,VPN経由でなんとかしようと考えた.
OpenBlocksBX1でVPNをつくって,VPNを通してRS232Cでコマンドをおくって計測器を動せるかなと.

前から興味があって調べていたけど,まとめてみることにした.


まずは定番?なRATOC.

www.ratocsystems.com

ラトックシステム Ethernet to RS-232Cコンバーター REX-ET60

ラトックシステム Ethernet to RS-232Cコンバーター REX-ET60

  • 発売日: 2013/07/19
  • メディア: Personal Computers

調べてみると気になるコメントがAmazonに. うーん,人柱で2万はちょっと.

ConfigToolにてCOMポートの設定が可能になっています。ストップビットもプルダウンで選択できるのですが、1しか選択できません。サポートに電話で尋ねても1に固定とのこと。商品説明には全く記載なしです。残念ですが全く使い物になりませんでした。


金額重視なら,ストロベリー・リナックス

試しに自腹で購入して試してみてもいいかなって思う金額.
ちょっと気になるのは氷点下になるところなので,Operating Temperature : 0 ~ 80 °C というところ.
大丈夫だと思うけどね.

strawberry-linux.com


いつもお世話になっているContec.

実験室の制御はここの機材をつかってます. 工場内でつかうのが前提だよね.現場に放置プレイされた箱のなかにおいて大丈夫かな.
大丈夫だと思うけど,こちらは使用周囲温度が0〜50℃で,氷点下は条件外.

www.contec.com


会社名は知ってたCentury Systems.

Yahooでも購入できるみたいで,5万くらい.

動作温度条件 -20℃~60℃はいいかんじ. 消費電力は最大約2W.バッテリ駆動なので,小さいほどありがたい.

www.centurysys.co.jp


はじめて知りました,システムサコム工業.

動作温度・湿度-20〜70℃(30〜80%結露なし)は,一番温度範囲が広い.
DC5V±5% 100mA 以下と記載されているので,最大0.5Wってこと? 消費電力も小さいし,これでいいのでは?

「製品無料お試しサービス」があるので,試すことができるのもありがたい.

www.sacom.co.jp


ずっとしっているけどつかったことがない,Lantronix の XPort

よくわからないからパス.

www.co-nss.co.jp

OpenBlocksBX1 で L2TP/IPsec

SoftEtherVPN するつもりでしたが,これがまた安定しない.
これができないとデータ回収できないので,とても困る.

そこでL2TP/IPsecを試してみることにした.
結論からいうと,最初からこちらにすればよかった.

参考にさせて頂いたのは,下記の2つ.

RTX830のL2TP/IPsecスループット – nosense

Ubuntu 20.04 へ L2TP/IPsec クライアントの構築 | OsaruSystem

その他

IPsec の手始めに IKE Keepalive を理解しましょ - インフラまわりのプロになりたい

L2TP/IPsec


メモ代わりに,設定を記載する.

まず,起動スクリプト.下記のようにした.

ipsecとxl2tpdは念の為,restart.
ip routeは,ppp0はつかわれているので,L2TP/IPsecはppp1になる.

/etc/init.d/ipsec restart
sleep 3

/etc/init.d/xl2tpd restart
sleep 3

ipsec up rtx830
sleep 30

echo "c rtx830" > /var/run/xl2tpd/l2tp-control
sleep 20

ip route add 192.168.xxx.0/26 dev ppp1
root@obsiot:/etc/ppp# cat options.xl2tpd.rtx830
noauth
mtu 1200
mru 1200
nodefaultroute
logfile /var/log/vpn.log
name "name"
password "Password"

[global]のコメントを外すのを忘れないでください.最初はコメントアウトされてます.

root@obsiot:/etc/xl2tpd# cat xl2tpd.conf
;
; Sample l2tpd configuration file
;
; This example file should give you some idea of how the options for l2tpd
; should work.  The best place to look for a list of all options is in
; the source code itself, until I have the time to write better documentation :)
; Specifically, the file "file.c" contains a list of commands at the end.
;
; You most definitely don't have to spell out everything as it is done here
;
[global]                                ; Global parameters:
port = 1701                             ; * Bind to port 1701


[lac rtx830]
lns = ???.aa1.netvolante.jp
require chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/options.xl2tpd.rtx830
length bit = yes
redial = yes
redial timeout = 10
max redials = 100
root@obsiot:/etc# cat ipsec.secrets
# This file holds shared secrets or RSA private keys for authentication.

# RSA private key for this host, authenticating it to any other host
# which knows the public part.

: PSK "Pass"

# this file is managed with debconf and will contain the automatically created private key
include /var/lib/strongswan/ipsec.secrets.inc
root@obsiot:/etc# cat ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file

# basic configuration

config setup
        # strictcrlpolicy=yes
        # uniqueids = no

conn rtx830
        keyexchange=ikev1
        authby=secret
        left=%defaultroute
        right=???.aa1.netvolante.jp
        rightid=%any
        ike=aes128-sha1-modp1024!
        esp=aes128-sha1-modp1024!
        auto=add
        leftprotoport=17/1701
        rightprotoport=17/1701
        type=transport

include /var/lib/strongswan/ipsec.conf.inc

TDS-303

もう,液晶がうす〜くなってきた.修理できるわけでもないし,そこにお金かけるよりは他にかけたい,ということでやってみた.
PCで制御してもいいけど,わざわざPC使うのもね.計測結果の後処理が大変なわけでもないし.

旧製品 | 株式会社 東京測器研究所

とりあえず,動けばよいという code です.
TDS-303 は,下記のように設定しておきます.もう,内蔵電池が切れているので電源コード接続して放っておいたあと電源を入れると,Backup errorがでます.
そうなると,設定が初期値に戻ってしまうので,毎度設定しないといけません. それに対応するメモでもあります.

  • チャンネルはもちろん設定しておく
  • RS232Cは,プログラム通りに設定する
  • SWITCH-Cの初期値から,HeaderをOFF,
#!/usr/bin/perl
use strict;
use warnings;
use Device::SerialPort qw( :PARAM :STAT 0.07 );
use Getopt::Std;
use Time::Piece qw/localtime/;
use Time::Piece ();

my $sendDATA;
my $measDATA;

#----- Display -----
# Screen = SCR
my $deviceSCR = '/dev/ttyUSB0';
my $portSCR = &openSCR;


while (1) {

$sendDATA = "ST\x0d\x0a";
&sendData($portSCR, $sendDATA);
# print $sendDATA;
# print "\r\n";

$measDATA = &readData($portSCR, 30);
print $measDATA;
print "\r\n";

sleep(1);

}

exit 0;


#----------------
#----- sub ------
sub sendData {
    my ($port, $str) = @_;
    $port->write( $str ) || die;
}

sub readData {
    my ($port, $len, $timeout) = @_;
    my $i = 0;
    my $j = 0;
    my $data = "";
    if (! defined $timeout) {
        $timeout = 10;
    }
    
    while ($data !~ /\x0d/i) {
        my ($l, $d) = $port->read(1);
        if ($l > 0) {
            $data .= $d;
            $i += $l;
            $j = 0;
        } else {
            $j++;
            if ($timeout > 0 && $j > $timeout) {
                print STDERR "TIMEOUT to read $len byte\n";
            exit 1;
        }
        }
    }
    return $data;
}


#----- SCREEN ------
sub openSCR {
    my $portSCR = new Device::SerialPort($deviceSCR) || die;
    $portSCR->user_msg(1);
    $portSCR->error_msg(1);
    $portSCR->baudrate(19200);
    $portSCR->databits(8);
    $portSCR->parity("none");
    $portSCR->stopbits(1);
    $portSCR->handshake("none");
    $portSCR->read_const_time(100); # 0.1 sec
    $portSCR->read_char_time(5);
    $portSCR;
}

ONUが壊れた

昨日帰宅したら,WiFiはインターネットに接続されてないようですとの表示.
何事と思ったら,ONUのランプがついてない.ACアダプタを抜き差ししてもダメなので,壊れたらしい.
10年くらいつかったので,文句はないです.よく動いてくれました.

仕方がないので,NTTのページから壊れたことを記載したら,すぐにフリーダイヤルから電話があった.
お客様が交換できるタイプなので,送りますとのこと.宅配便ではなく,NTTの電報を配達するひとが持ってくるらしい.NTTグループだからだそうで.
時間指定はできないけど,日は指定できると言われました.


10時くらいに電話があり,いまから行くけど大丈夫?とのこと.1日待ってるしかないのか〜と思っていたので,よかった.
受け取りのサインもなく,壊れた機材と交換で箱を受け取って終わり.それでいいんだ.

ただの箱.
リユース品なのか.特に新品にこだわりは無いし,動けばよいです.

iijmio をつかってるから自宅でもネットはできるけど,やはり遅い.やはり光だよね.

f:id:halrroc:20210109162558j:plain

f:id:halrroc:20210109162612j:plain

f:id:halrroc:20210109162626j:plain

f:id:halrroc:20210109162638j:plain

ゲージボタル

ひとつ前のモデルを持ってます.
いろいろあって,最近はガススタで空気圧をチェックしてました.

ようやく,これをつかって調整できるようになったのでしてみたら,結構空気圧がちがう.
5〜10kPaくらい,これで測定してみると小さい値になってる.
こんなに違うものなのか?まぁこちらを信じて,今後は調整していこう.

www.air-asahi.com