ともさんのHP >プロブラミング >自作JavaLibrary >PICNICに接続してIO制御温度計測をするJavaClass
PICNICに接続してIO制御温度計測をするJavaClass
tomojavalib.akizuki.Picnic は 秋月電子通商にて販売されている PICNICを制御するためのCLASSです。 PICNICはごく簡単に言うとネットで制御できるマイコンです。http通信でブラウザを使って操作できるので とても手軽にIO制御が出来ます。
私は以前、PICNICを自作の天体写真用デジタルカメラの電源をON/OFFするために使っていました。
毎日、暗くなる頃を見計らって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
ともさんのHP >プロブラミング >自作JavaLibrary >PICNICに接続してIO制御温度計測をするJavaClass
ツイート