用例:POC-メテオ②

POC-メテオ

yoctopuce

USB環境センサー

*用例1/2/3
- POC光センサ100K                   
*用例1
-POC-高度計                       
*用例1
- POC-メテオ                       
*用例1/2/3/4/5/6/7/8
- POC-サーモ               
*用例1/2/3/4
- PT100                       
*用例1
- POC-VOCセンサ               
*用例1/2
 

USB電圧センサー

*用例1
*用例1/2/3/4/5/6/7/8
- POC-Amp           
*用例1/2/3/4
- POC-Knob         
*用例1/2/3/4/5/6/7/8/9/10/11/12/13
*用例1
- POC-PWM-Rx     
*用例1/2
- POC-RS232         
*用例1
- POC-ボルト
- POC-ワット
- POC-ミリボルト-Rx
- POC-ミリボルト-BNC
 

USB位置センサー

*用例1/2/3
-POC-高度計                       
*用例1
 -POC-GPS
*用例1 

USBアクチュエーター

- POC-ブザー
- POC-カラー      
*用例1/2/3/4/5/6/7/8
*用例1/2/3/4/5/6
- POC-マキシIO     
*用例1
*用例1/2/3/4/5
- POC-マキシパワーリレー
*用例1/2
- POC-モーターDC     
*用例1/2/3/4
- POC-PWM—Tx    
*用例1
*用例1/2/3/4/5
*用例1/2/3/4/5/6/7/8/9
- POC-リレー      
*用例1/2/3/4/5/6/7/8/9
- POC-サーボ      
*用例1/2/3/4/5/6
*用例1

 USBディスプレー  

*用例1/2/3/4/5
*用例1/2/3/4/5/6/7
*用例1/2/3/4/5/6/7
*用例1/2/3

 エクステンションとネットワーキング 

- POC-マイクロUSBハブ 
*用例1
*用例1/2/3/4/5/6/7
*用例1/2/3
*用例1/2/3/4/5/6/7/8/9/10/11
*用例1/2/3/4
*用例1

 アクセサリとコネクター

- POC-Board2Board-127  
*用例1

 エンクロージャー 

 
 

普段は30%の部屋の湿度を45%~55%に保ちたいと思います。デパートで販売している加湿器とPOC 製品を使用し、半日で出来上がりました。

components 1

 

加湿器には制御システムもタイマーもついていないため、スイッチオンオフをコントロールしなければなりません。

当然のことながら、部屋の湿度を計測し、表示する必要があります。 

 
 

ステップ1 湿度コントロール

  今回利用した加湿器は非常にベーシックなもので、スイッチのオン・オフのためのボタンが一つあるだけのものです。もっとも簡単なソリューションとしては、オンにした状態を保ち、POC-パワーリレーを利用してオフにするべき時に電源を落とすことです。しかし、加湿器本体を一度オフにしてしまうと次にオンにするためにボタンを押さなくてはなりません。よって、POC-リレーを使用してボタンを押すシミュレーションをしなければなりません。POC-リレーを入れてUSBケーブルに繋ぐスペースがありそうです。(写真:下図)

humidifier 1

ボタンに二つのワイヤを取り付けてPOC-リレーに一つ目のリレーを接続します。このリレーを短時間動かすと、ボタンを押したのと同じ動きを見せます。 このソリューションの問題は湿度計の状態を見られないことです。 しかし、もしも誰かが湿度計のボタンを押してしまったらどうしましょう。解決方法としては、POC-ボルトを付け加えて湿度計の消費量を調べることとなりそうですが、2つ目のモジュールを取り付けるスペースはなさそうです。

 

wiring 1
 

そこで、電源供給がなくなったとき、湿度計の作動が停止するというごく当たり前の事実を利用しました。If we connect the second relay of the Yocto-Relay serially on the power supply wire, 電源供給を切ることができます。湿度計を切るためにはその状態がどうであれ、0.5秒ほど電源供給を切りさえすれば良いのです。そしてスイッチをオンにしたい時はこの方法で一度電源を切り、and them simulate pressing on the button right afterwards. このようにして、湿度計の状況を知ることなしにスイッチのオン・オフができます。We must simply be careful to connect the button wires to state B of the relay and power to state A of the relay, in order for the humidifier to remain in working conditions even when it is not connected to a computer or a Hub (Aはリレーのデフォルトの状態です。)

 
 

 ステップ2 接続

ステップ1までで湿度計をコントロールできるようになりました。今度は何かに繋げなくてはなりません。解決方法の一つとして、この部屋の中にミニコンピューターを設置してUSBで接続することですが、この方法はあまり現実的ではありません。POC-ハブワイアレスSRを以下のものに接続することにしました。

1.ステップ1で手を加えた加湿器

2.POC-メテオ(湿度を計るため)

3.POC-マキシディスプレイ(湿度を表示するため)

こうした場合、コンピューターを接続するより、電気の消費が格段に少なく抑えられますし、スペースも少なくて済みます。すべてを接続したあとPOC-ハブワイアレスSRをハウスWiFi ネットワークに接続し、どこからでもモジュールにアクセスできるようにします。

montage 1

 

 

ステップ3 ソフトウェア

 

Instead of implementing a piece of software that would connect itself to our modules, we are going to configure an HTTP callback on our YoctoHub-Wireless-SR. The advantage of this solution is that it is very easy to implement: we only need to write a simple PHP (or Node.js or Java) script. Sure, we need to have access to a PHP server, but any self-respecting geek has at least one PHP server hosting a blog or a forum, right?

コードは非常に簡単です。

HTTPコールバックモードから始めました。

 

if(YAPI::RegisterHub("callback", $errmsg) != YAPI_SUCCESS)

    Error($errmsg);

 

 

$humSenor = YHumidity::FirstHumidity();

$display = YDisplay::FirstDisplay();

$humPower = YRelay::FindRelay("hum_power");

$humSwitch = YRelay::FindRelay("hum_switch");

 

 

/**

 * switch on or off the connected humidifier. We cut the power for 500ms to

 * reset the humidifier to his default state (OFF). Then to switch it on

 * we need to simulate the push of the power button.

 * @param bool $on

 */

function setHumidifierState($on=False)

{

    global $humPower, $humSwitch;

    $humPower->pulse(500);

    if($on){

        $humSwitch->delayedPulse(500,100);

    }

}

...

$currentHum  = (int)$humSenor->get_currentValue();

if($currentHum < MIN_HUMIDITY){

    setHumidifierState(True);

}elseif($currentHum> MAX_HUMIDITY){

    setHumidifierState(false);

}

 

 

 

$width = $display->get_displayWidth();

$height = $display->get_displayHeight();

$layer4 = $display->get_displayLayer(4);

$layer4->reset();

$layer4->drawImage(0, 0, "drop.gif");

$lastHumText = sprintf("%d%%", $currentHum);

$layer4->selectFont('Large.yfm');

// draw lastHumText

$layer4->selectColorPen(0xffff);

$layer4->drawText($width, $height / 2, Y_ALIGN_CENTER_RIGHT, $lastHumText);

 

結果

このようにネットワーク湿度計を完成させることができました。もちろんもっと時間をかけることで改良できます。(esthetics, sending an alert on a smartphone, などなど) しかし、基本的な目標は達成できました。POC製品を利用して既存の製品にネットワークをつけ、より便利に使用できるのです。