手軽に設置し利用できる屋外Web計測を通して防災、自然理解をすすめ社会に貢献するのがミッションです。
RSS icon Email icon Bullet (black)
  • Raspberry Pi と wiringPi  (Linuxは易しくない)

    Linuxを使う前はSunのワークステーションその前はPDP11とクラッシックな名前が思い出されます。 Sunのワークステーション時代には、本棚2竿にマニュアルを入れて調べていましたが、今はコマンドやネットで調べられ隔世の感があります。そして、使えるソフトも大幅に増え、サポートするハードウエアも星の数ほどある現在です。

    左は、RaspberryPi A+にRTCとスイッチ、LEDを付けてコントロールしています。 スイッチは割り込みを使いたいのでWiringPIのライブラリを使って割り込みルーチンを使って動かしました。
    処理は簡単、ボタンを押したらシャットダウンを行う。LEDで動作中ならLEDを点灯、シャットダウンが終わればLEDオフ。
    rc.local に自動起動を設定し、プログラムを動かせば終わりです。

    したいことがネットで見つからなければマニュアルを追いかける事になります。そして、試験プログラムを書いて動作させ安定性を確認する。 昔ながらのプログラム開発ですが、問題が出れば大量の情報の海を泳がなければいけません。

    車を運転するのは簡単でも車を作るのは大変です。

    大変ですが、多く情報が公開され参照できる状態となっていること、数千円の昔のスーパーコンピュータが手に入るとても良い時代です。

  • FZ-Web-Hornet 肉食のスズメバチのイメージで一杯情報収集

    屋外での計測負担を少しでも減らせ、大量の計測データを運んでくるスズメバチのイメージです。

    SDI-12の通信で含水率の情報を、ADで4-20mAセンサーや熱電対、センサーへの計測時給電も行い、必要な時間待って計測を行います。 1-Wireで多点の温度計測、気象ユニットで屋外の温度・湿度・照度、UV、雨量、風速、風向、気圧と必要な情報はこの蜂が集め、後はFOMAの無線公衆回線でインターネットサーバに送ります。

    できるだけ簡単に設置できる工夫をしています。 大変で手間のかかる屋外計測の負担を減らしもっと自然環境理解に貢献するのが私どものミッションです。

  • mount point をC言語のプログラムで取得

    Cでマウントの確認を行うプログラム (Linuxで動作)
    
    washio@ts7260:~/PRG$ cat z_tt_mntent.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <mntent.h>
    
    int main(void)
    {
      struct mntent *ent;
      FILE *aFile;
    
      aFile = setmntent("/proc/mounts", "r");
      if (aFile == NULL) {
        perror("setmntent");
        exit(1);
      }
       printf("Mount          Drive\n", ent->mnt_fsname, ent->mnt_dir);
      while (NULL != (ent = getmntent(aFile))) {
        printf("%-14s %s\n", ent->mnt_dir, ent->mnt_fsname );
      }
      endmntent(aFile);
    }
    
    ------------------ 実行結果 -------------
    washio@ts7260:~/PRG$ ./z_tt_mntent
    Mount          Drive
    /              rootfs
    /dev           none
    /proc          /proc
    /              /dev/sdcard0/disc0/part3
    /dev/pts       devpts
    /proc/bus/usb  usbfs
    /ram           /dev/ram0
    /sda1          /dev/scsi/host1/bus0/target0/lun0/part1
  • 簡単なSEDテスト 複数を一括変更

    いつもプログラムを作る前に簡単な試験プログラムを作ります。
    これも sed で -e "s/org/chg/g" を繰り返すと複数の変更キーワードを指定できるのでオリジナルの
    文書の一部にキーワードを入れて変更する予定です。 組込なのでPHPを入れてもいいのですが
    簡単にSEDを使います。 最終的にはPHPの方が楽なのでそちらを準備する予定です。
    -------------------------------------------------------------------------
    $ cat sh_sed_multi
    #!/bin/bash
    #
    sed -e "s/abc/ABC/g" -e "s/def/DEF/g" -e "s/ghi/GHI/g" tt_sed.org > tt_sed.chg
    
    $ cat tt_sed.org
    test message
    absolute abc to def to ghi
    
    $ cat tt_sed.chg
    test message
    absolute ABC to DEF to GHI
  • ハードウエアの安定とソフトウエアの安定

    組込Linuxとオリジナル制御ボードの組合せです。
    両方組み込みで一方はARMのCPU、もう一方はPICのCPUです。 開発はC言語でプログラムはPICの方が簡単ですが電源制御や485通信、タイマーなど外部機器の制御が込み入っています。
    一方のLinuxは、Debianのシステムが入っていてカーネルも必要は装置が使えるように再構築しています。

    当然ですが、ソフトウエアの動作保障は、動かして試験をすることしか方法がありません。 長く動かして出る問題もあります。 バグの減り方は指数関数的でバグが少なくなってきた方がずっと解決が難しい問題となります。 システムは面白いのですが、新しく安定したシステムを作るためには全体を知っている多くの知識が必要です。 そして新しいシステムへの対応と面白いのですがエネルギーの必要な仕事と改めて感じます。

    ちなみにボードは3世代作り、次の4世代で安定して物になる予定です。

  • 三鷹:月食11/12/10記録Webカメラで美しく

    月食の時間
    部分食の始まり 	21時45分
    皆既食の始まり 	23時05分
    皆既食の最大 	23時31分
    皆既食の終わり 	23時58分
    部分食の終わり 	01時18分

    Read the rest of this entry »

  • PHP で今日、明日、昨日を求める yymmdd で出力

    PHPプログラムを書くための試験プログラムです。以下がです。
    簡単に日時が作れるのでPHPは楽です。
    
    [washio@nag60 CAM_LOG]$ php tt_strtime.php
    dy=111105
    dyf=11-11-05
    dy_y=111104
    dy_t=111106
    [washio@nag60 CAM_LOG]$ cat tt_strtime.php
    <?php
    //      $dy=date("ymd");
            $dy="111105";
            print "dy=$dy\n";
            $dyf=substr($dy,0,2).'-'.substr($dy,2,2).'-'.substr($dy,4,2);
            print "dyf=$dyf\n";
            $dy_y = date("ymd",strtotime("-1 day",strtotime($dyf)));
            $dy_t = date("ymd",strtotime("+1 day",strtotime($dyf)));
            print "dy_y=$dy_y\n";
            print "dy_t=$dy_t\n";
    ?>
  • Webの観測と計測システムのコア

    屋外で利用する監視と計測のシステムです。時間と共に形が出来ていました。まだ、変更予定はありますが、思った機能を果たしてくれます。
    実際に使える形で新しいご提案を行ってまいります。

  • df 機能を C言語で作成

    ディスクの空き容量を求める df 機能 Cプログラム

    ディスクの空きが少なくなったら自動で削除する機能の作成です。
    dfをシステムコールで読んで調べる方法もありますが、直接Cで作る方が組み込みではシステムの
    負担も少なく早いため、試験を行っています。
    
    washio@ts7260:~/RIVER_tamagawa$ z_ck_statvfs
    Path        : [/sda1]
    block size  : 8192
    total block : 1955590
    free  blocks: 1911321
    ttl=16020193280 ttl_free=15657541632  r_free=      97.7
    Mega: ttl= 15278.047 ttl_free= 14932.195
    GIGA: ttl=    14.920 ttl_free=    14.582
    washio@ts7260:~/RIVER_tamagawa$ cat z_ck_statvfs.c
    //
    // check statvfs : volume size
    //
    #include <sys/statvfs.h>
    
    int main( int argc, char *argv[] )
    {
            struct statvfs vfs;
            static char s_path[256] = "/sda1";
    
            if( argc > 1 ){
                    strcpy( s_path, argv[1] );
            }
            float ttl, ttl_free;
            float r_free;
    
            if( statvfs( s_path, &vfs ) < 0 ){
                    printf("Error path=[%s]\n",s_path); exit(1);
            } else {
    
                    printf("Path        : [%s]\n",s_path);
                    printf("block size  : %d\n",  vfs.f_bsize);
                    printf("total block : %d\n", vfs.f_blocks);
                    printf("free  blocks: %d\n", vfs.f_bfree);
    
                    ttl      = ((float)vfs.f_bsize)*((float)vfs.f_blocks);
                    ttl_free = ((float)vfs.f_bsize)*((float)vfs.f_bfree);
                    r_free = ttl_free/ttl*100.0;
                    printf("ttl=%10.0f ttl_free=%10.0f  r_free=%10.1f\n",
                            ttl,   ttl_free,    r_free );
                    printf("Mega: ttl=%10.3f ttl_free=%10.3f\n",
                            ttl/1024.0/1024.0, ttl_free/1024.0/1024.0 );
                    printf("GIGA: ttl=%10.3f ttl_free=%10.3f\n",
                            ttl/1024.0/1024.0/1024, ttl_free/1024.0/1024.0/1024);
            }
    }
  • 玉川浄水 カメラ撮影試験中

    三鷹駅の直ぐ前に玉川浄水が見えます。
    三鷹駅の下を浄水が流れており、美しい流れです。

    ライブ影像の配信にバッテリ利用で計測と一緒に総合観測のための試験を行っております。Linuxにプログラムを搭載し、Webカメラと連携したシステムです。

    省エネを行っており、全体の消費電力を出来るだけ抑えています。

    電源の制御やサーバの制御に特別な省電力のコントローラも製作し試験動作を続けております。

    日々進歩のコンピュータ環境と共にその資料が広がりの一途をたどっています。本屋さんへ行ってみると広くコンピュータの本が非常に多いのに気づきます。