Vol.758 16.Nov.2018

ポケットワンセグ・ラジオと充電池 キャンピングカー(3)〜あると便利 ラズベリーパイ(22)〜WebIOPiによるGPIO制御(2)〜

B ポケットワンセグ・ラジオと充電池

by fjk

作業中や移動中にテレビ視聴(音声)するため、XDV-G200(SONY)を使っていたが、付属のアンテナケーブル(5,000円程度らしい)が断線し、イヤホンで音声が聞けなくなった。本体は画面とスピーカーで正常に視聴できるので、どうも音声ケーブルの断線らしい。ケーブル内部の細い音声配線を修理するのは難しそうなので、新たに安価なポケットワンセグ・ラジオを購入した。
 しかし、この機種はロッドアンテナが外に飛び出す構造だったので、アンテナを伸ばさず導線をアンテナに巻き付けて使っていたが、やはり接触が悪く時々放送が途絶えることがある。
 そこで、本体にアンテナを内蔵しているポケットワンセグ・ラジオがないか探したところ、以下の2機種が見つかった(どちらもテレビ画面の表示は無い)。近所の電気屋で@のみ実機があったので、1万円チョットで購入した。

@RF-ND50TV-T(パナソニック)・・・FM受信はイヤホンケーブルを利用
AXDR-64TV(ソニー)・・・・・・・内蔵アンテナであるがアンテナケーブルも付属

受信感度が気になったが、テレビ・ラジオとも全く問題なかった。ただ、今までは充電式だったが,この(両)機種は電池のみである。そこで、繰り返し使えるニッケル水素充電池(1.2V×2本)を使えないか、RF-ND50TV-Tでテストしてみたところ、問題なく動作した。
 さらに、なるべく長時間使いたいので、パナソニックの充電池を調べてみると、以下のものがある。

@エボルタ(お手軽モデル) 容量は小、使用時間は短、自然放電が小、繰返充電回数は大。
Aエネループ(スタンダード)容量が中、使用時間は中、自然放電が小、繰返充電回数は中。
Bエネループ(ハイエンド) 容量が大、使用時間は長、自然放電が小、繰返充電回数は少。

また、充電器としては、やはり急速充電器が便利で、単4充電池1本なら満充電まで1時間未満で、継ぎ足し充電も可能で、電池1本ごとの診断や充電状況も表示してくれるので、新しい機種(例えばBQ-CC85)を選ぶべきである(USB出力も併せて持つBQ-CC57も魅力ですが・・)。
 そこで、電池とエネループ充電池がセットになったK-KJ85MCC04(\3,000)を購入した。

RF-ND50TV-T 充電池の種類(手軽, STD、STD、High) 充電器(BQ-CC85)


C キャンピングカー(3)〜あると便利

by fjk

@ 冷蔵庫(24時間稼働するので消費電力に注意。ソーラーパネル設置がほぼ必須)
A 電子レンジ(家庭用の約1.5倍の時間が必要だが、コンパクトで低消費電力はWaveboxのみ)
B 調理器(炊けるくん、ムスヨ婆さんなど、[炊飯、温野菜などに])
C 折り畳みテーブル・椅子(車内・車外どちらでも使えるのが便利)
D 掃除機(車内清掃)、エアーポンプ(空気枕などに)など
E 目覚まし時計(朝寝坊の防止に)、常夜灯(人感センサ式が便利)
F 電気膝掛け、電気あんか、ファンヒーター(暖房用、FFヒーターが無くても・・)
G 傘立て、シューズカバー(靴の上から履ける、長靴のかわり)
H その他(ポータブルトイレ[P8Lのみ収納可]、クーラー、・・)。

冷蔵庫(15L、45W、寝床下に収納可)
(冷凍ではなく保冷庫として使用)
電子レンジ(Wavebox、サイズ最小)
(出力400W/AC100V-6A)
炊けるくん(約30分で炊飯)
、ムスヨ婆さん(温め・蒸し)
カー掃除機(桃太郎、回転ブラシ付)
、エアポンプ(CZK-3604)
目覚まし時計(リズム R107DN)
、常夜灯(Azmic地震センサライト)
電気ひざ掛け(兼敷き毛布)
(YBK-M1410、40W)
折り畳みテーブルセット
(LOGOS、StoolTableSet2)
傘立て・シューズカバー
(雨天時に役立つ)
簡易トイレ(もしもの時に・・)
(P8L、寝床下に収納可能)


R ラズベリーパイ(22) 〜WebIOPiによるGPIO制御(2)〜

by fjk

前回はWebIOPiに内蔵するjavaスクリプトのみで実行したが、今回はLEDの点灯制御をjavaスクリプトとpythonスクリプトを使用する。
ブラウザーとラズベリーパイとの関係は、
<ブラウザー>  <ラズベリーパイ(WebIoPI)>

 
 http://webiopi-ip:8000
 
 
 Javaマクロを実行  
 
 
 [callback関数を実行]
 


|−−web要求−−−>

|<−−HTML送信−−

|−−実行指示−−−>

|<−−終了通知−−−









 初期化、WebIOPIを起動しweb要求を待つ
 
 index.html+script.jsを送る
 
 
 pythonスクリプトを実行(GPIO制御など)
 
 

webiopi2.html> (Javascriptを含む)
<html>
<head>
    <meta http-equiv="Content-Type"content="text/htmlcharset=UTF-8">
    <title>WebIOPi Test2</title>
    <!-- WebIOPiのJavascriptの使用宣言 -->
    <script type="text/javascript" src="/webiopi.js"></script>
    <!-- ボタンの生成、機能の設定と名称設定 -->
    <script type="text/javascript">
        IOPI = webiopi()
        IOPI.ready(function(){
            var LedBtn = IOPI.createButton("Led", "Led2",
                function(){IOPI.callMacro("LedOn")},
                function(){IOPI.callMacro("LedOff")}
            )
            $("#lLedbtn").append(LedBtn)
        })
    </script>
    <!-- スタイルシート定義 ボタンの形状指定 -->
    <style type="text/css">
        button{
            font-size:2em
            width:150px
            height:70px
        }
    </style>
</head>
<!-- ページの生成 -->
<body> <br>
    <p style="text-align:center">
    <font size=6>[WebIOPi with Python]</font><br></p>
    <p><div id="Ledbtn" align="center"></div></p>
</body>
</html>

<webiopi2.py>(webiopi2.zipファイルに含む)
import webiopi
# webiopi.setDebug()
GPIO = webiopi.GPIO

Led = 23                #GPIOの割付

#初期化関数 GPIOを出力モードに設定
def setup():
    GPIO.setFunction(Led, GPIO.OUT)

#マクロ関数 GPIOをOnまたはOff
@webiopi.macro
def LedOn():
    GPIO.digitalWrite(Led, GPIO.HIGH)

@webiopi.macro
def LedOff():
    GPIO.digitalWrite(Led, GPIO.LOW)

#終了関数 すべてOff
def destory():
    GPIO.digitalWrite(Led, GPIO.LOW)

/etc/webiopi/configファイルに以下の追加と変更
[SCRIPT]
myscript = home/pi/webiopi/webiopi2.py
[HTTP]
welcom-file = webiopi2.html 

1.webiopiの起動
  $ sudo systemctl start webiopi
2.webブラウザからの動作を確認
  http://192.168.123.1:8030    (アドレスが192.168.123.1の場合)
   ユーザー名:webiopi
   パスワード:raspberry
3.webiopiの動作停止
  $ sudo systemctl stop webiopi

WebIOPiで制御中のWEB画面 ボタンを押している時のみLEDが点灯
(抵抗入りLEDを利用)

※ WebIOPiのデバッグ
 webiopiを使ったプログラムがうまく動かないときは、デバッグ機能が使える。

1.本文にデバッグ機能を使うことを宣言する。
webiopi.setDebug()
2.出力したいデバッグメッセージを記述する。
webiopi.debug("デバッグメッセージ")
3./ertc/webiopi/configのmyscriptに実行したいpythonファイルをフルパスで指定する
myscript="/home/pi/webiopi/webiopi2.py"
4.webiopiをアプリケーションとして実行
$ sudo webiopi -c /etc/webiopi/config -d


● WebIOPiで使えるJavaScriptライブラリ(抜粋)例 【一部再掲】

webiopi
WebIoPiのオブジェクトインスタンスを生成し戻り値として返す
WIOP = webiopi()
ready
HTMLファイルが呼び出されたときに実行される初期化関数
WIOP.ready(callback)  ・・・・・・・callbackはfunction(){・・・}関数として記述
setfunction
GPIOの機能の指定(funcはIN、OUT、PWMのいずれか)
WIOP.setFunction(gpio, func [,callback])  ・・callbackは戻ったときに実行するマクロ関数
digitalWrite
GPIOをHighかLowにする(valueに記述)
WIOP.digitalWrite(gpio, value [,callback])  ・・callbackは戻ったときに実行するマクロ関数
digitalRead
GPIOの状態を得る(WIOP.HIGHかWIOP.LOW)
ret = WIOP.digitalRead(gpio [,callback])  ・・callbackは戻ったときに実行するマクロ関数
toggleValue
GPIOの出力を反転する
WIOP.toggleValue(gpio)
createRatioSlider
PWMのデューティ値(duty = 0.0〜1.0)を出力するスライダーの生成
WIOP.createRatioSlider(gpio, duty)
pulseRatio
PWMのデューティ値(duty = 0.0〜1.0)を設定する
WIOP.pulsRatio(gpio, duty [,callback])  ・・callbackは戻ったときに実行するマクロ関数
createButton
オン・オフ別にマクロ関数を呼び出せるボタンを生成
WIOP.craeteButton(id, label [,mousedown [,mouseup]]) ・・idは英数任意、labeklは表示文字
  ※mousedown:はボタンオン時に、mouseupはボタンオフ時に実行するマクロ関数、
createGPIOButton
特定のGPIOに対応したON/OFFボタンを作成する(事前にsetFunctionで出力に指定すること)
id = WIOP.GPIOButton(gpio, label)  ・・idはボタンに付与するID(英数任意)
createMacroButton
特定のマクロ関数を呼び出すためのボタンを生成
WIOP.createMacroButton(id, label, macro, args) ・・macroは呼び出すマクロ関数
callMacro
マクロ関数を直接呼び出して実行
WIOP.callMacro(macro, [args [,callback]]) ・・callbackは戻ったときに実行するマクロ関数
setLabel
指定したボタンのラベルを変更する
WIOP.setLabel(id, label)


ポケットワンセグ・ラジオと充電池 キャンピングカー(3)〜あると便利 ラズベリーパイ(22)〜WebIOPiによるGPIO制御(2)〜