PICNICに接続してIO制御温度計測をするJavaClass

tomojavalib.akizuki.Picnic は 秋月電子通商にて販売されている PICNICを制御するためのCLASSです。 PICNICはごく簡単に言うとネットで制御できる マイコン です。http通信でブラウザを使って操作できるので とても手軽にIO制御が出来ます。


私は以前、PICNICを自作の天体写真用デジタル カメラ の電源をON/OFFするために使っていました。
PICNICで電源制御


毎日、暗くなる頃を見計らって Java プログラム 上でデジタルカメラの電源をONにするのですが、 このときに使っていたclassがこれです。


写真はリレーを制御していますが、SSR(ソリテッドステートリレー)を取り付ければ100VのAC電源を持つ機器の 電源もON/OFFできます。


classはPICNICに付属の温度センサーから温度を取り込むメソッドgetOndo()
と出力端子のLHを制御するsetOutPort()の2つを作りました。いずれもPICNICにhttp接続してhtml文を受取り、 そこから情報を取り出しています。


PICNICは使いようによっていろいろできる優れたものだと思っています。これ1つを独立してWebサーバーにして、 外から電源のON/OFFなんかもやろうと思えば簡単に出来てしまいます。


以下はこのclassのソースです。



package tomojavalib.akizuki;

import tomojavalib.net.*;


/**
* 秋月電子通商(akizukidenshi.com)にて販売しているPICNIC(www.tristate.ne.jp/picnic.htm)を JAVA にて制御するためのCLASS
* @author to.totomo.net
*
*/
public class Picnic {
   HttpAccess url = new HttpAccess();


   /**このクラスの動作試験*/
   public static void main( String argv[] )
   {
    Picnic p = new Picnic();
    System.out.println( "気温: " + p.getOndo("http://192.168.0.200/") + " 度" );
    int i = p.setOutPort("http://192.168.0.200/", "RB6", "H");
    if( i==0 ){System.out.println( "成功");}else{System.out.println( "失敗");}
    i = p.setOutPort("http://192.168.0.200/", "RB6", "L");
    if( i==0 ){System.out.println( "成功");}else{System.out.println( "失敗");}
   }

   
   
   /**
   * Picnicから温度DATAを受け取る
   * @param surl dataを受け取るURL http://***.com/ 等
   * @return 温度
   */
   public int getOndo( String surl)
   {
    int ondo = 0;
    String stmp = url.get( surl ,"UTF-8" );
    if( stmp == null ){ return -100; }
    int itmp = stmp.indexOf( "Celsius" );
    if( itmp < 3){return -100;}
    ondo = Integer.parseInt( stmp.substring( itmp-3 , itmp-1 ) );
    return ondo;
   }


   /**
    * PicnicのOUTPORTのLHを設定する
   * @param surl dataを受け取るURL http://***.com/ 等
   * @param port RB4〜RB7
   * @param lh LまたはH
   * @return 0:設定成功 -1:設定失敗
   */
   public int setOutPort( String surl, String port , String lh) {
   //http://192.168.0.200/modify.cgi?RB1=H
    String stmp = surl + "modify.cgi?" + port + "=" + lh ;
    String stmp2 = url.get( stmp ,"UTF-8" );
    String stmp3 = null;
    if( lh.equals("H") ){
    stmp3 = "< INPUT TYPE=\"submit\" NAME=\"" + port + "\" VALUE=\"H\"> High";
    }else{
    stmp3 = "< INPUT TYPE=\"submit\" NAME=\"" + port + "\" VALUE=\"H\"> Low";
    }
    if( stmp2.indexOf( stmp3 ) < 0){ return -1; }
   return 0;
   }

}

日付: 2009-06-23 00:00:00

PICNICに接続してIO制御温度計測をするJavaClass

  • ともさん
  • ソーイング
  • ものつくり
  • みつばち
  • 気象
  • 電子工作
  • デジタルカメラ
  • ともさんの開発室
  • プロブラミング
  • ものつくり
  • リホーム
  • 食べ物作り
  • JAVALibrary
  • 1
  • このページは「ともさん」が個人的に運営しています。

    RSS配信しています

    Yahoo!ブックマークに登録

    My Yahoo!に追加

    - リンク -
    おデブとふつうの分水嶺 そんなに食うなら走らないと
    null