pepotocsctl

pepotocsctlとは

  • pepotocsctlとはmono-wireless無線モジュールTWELITEとMONOSTICKで温湿度計AM2321センサー、アナログ入力、デジタル入出力信号を離れた場所から遠隔監視・制御が出来るプログラムです。
    twlite_img
    pepotocsctl単独では動作しません、別途epiconが必要です。 Tocos無線モジュールのGPIOとAM2321センサーをコマンドで操作できます
    1
    2
    3
    # pepotocsctl
    # pepotocosctl
    usage /usr/local/bin/pepotocosctl read->chno:0-6 | write->chno:0-6 [DO:0|1|f] to 300000ms
    DI(デジタルインプット)の4ポート分リード
    1
    # pepotocsctl 0 7
    DI(デジタルインプット)の一番ポートリード
    1
    # pepotocsctl 1 1
    DO(デジタルアウトプウト)一番ポートへ1をライト
    1
    2
    # pepotocsctl 1 1
    1
    DO(デジタルアウトプウト)一番ポートへ1をライト、5秒間保持
    1
    2
    # pepotocsctl 1 1 5000
    0
    I2C温湿度計AM2321センサーのリード
    1
    2
    # pepotocsctl 5
    2016/01/20,19:16:19,4.0℃,75.4%
    アナログ入力リード
    1
    2
    # pepotocosctl 6
    4080,4080,4080,4080
    ライトアフターリード
    1
    2
    # pepotocosctl 0 0
    7;4080,4080,4080,4080
    デジタルインプットとアナログインプットリード
    1
    2
    # pepotocosctl 7
    f;1952,4080,4080,4080
    リードウエイト・DIの変化を指定時間待つ
    1
    2
    # pepotocosctl 7 120
    e;4080,4080,4080,4080
  • Please check the source code below
    https://github.com/kujiranodanna/IOT-House/blob/master/raspberrypi/usr/local/bin/pepotocosctl

pepogpioctld

pepogpioctldとは

  • gpioの入出力制御と環境ガスセンサーBME680のデーターを元に空気質を数値化するデーモンです。

  • BME680センサーが接続されている場合、pepobme680が作成した2021/02/04/17:22:23,10.2,43.0,1018.9,3436 値から、ガス抵抗値5分毎50カウントの平均値80%、温度10%、湿度10%を元に以下のような空気質:IAQ (indoor air quality)を計算、付加します。

  • IAQ is Sample 0(Good) to 500(Hazardous) Temperature(17-28℃):10% Humidity(40-70%):10% Gas(Gas±Gas_base/Gas_base):80%

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [iot00f:root#] cat /www/remote-hand/tmp/.pepobme680
    2021/02/04/17:22:23,10.2,43.0,1018.9,3436
    日時,温度,湿度,気圧,ガス抵抗

    [iot00f:root#] cat /www/remote-hand/tmp/.gpiodi_read_data
    di[0]=1
    di[1]=1
    di[2]=1
    di[3]=0
    gpio_i2c=17:25:15,10.2,43.0,1019,3436,21
    日時,温度,湿度,気圧,ガス抵抗,空気質

    [iot00f:root#] cat /www/remote-hand/tmp/.gpiodo_write_data
    do[0]=0
    do[1]=0
    do[2]=0
    do[3]=0

    BME680環境ガスセンサーを接続してグラフ表示させます

  • Please check the source code below
    https://github.com/kujiranodanna/IOT-House/blob/master/raspberrypi/usr/local/bin/pepogpioctld

pepoalexado

pepoalexadoとは

  • Alexaで電気をつけたり、消したり、温度を聞いたりする為に作成、IOTハウスに分散しているRaspberry PiへGPIOの出力やjsonデータを取得します
    pepoalexado
    usage /usr/local/bin/pepoalexado host user password [write->chno:0-17 [DO:0|1] [timer->1 to 300000ms]] or read->json_name

  • GPIO 3 ON
    pepoalexado iot001.local remote hand 3 1

  • GPIO 3 OFF
    pepoalexado iot001.local remote hand 3 0

  • I2CガスセンサーBME680のjsonデータを取得
    pepoalexado iot001.local remote hand gpio_i2c
    { “date”: “08:47:11”, “temp”: “27.5℃”, “hum”: “79.7%”, “pres”: “1006hPa”, “gas”: “2055427Ω”, “iaq”: “17” }

  • I2CガスセンサーBME680の気圧データを取得
    pepoalexado iot001.local remote hand gpio_i2c.pres
    1020hPa

  • 屋外照度がlow/highを取得 ->屋外照度が暗くなれば部屋の電気をつけるなどの判定に使う
    pepoalexado iot01f.local remote hand ai2di12
    low

  • iot01f.localのGPIO 4番ポート入力low->highイベント登録されたコマンドdio3highを実行
    dio3highはモジュールカメラ10秒動画メールを登録している、これはカメラ接続がないGPIO入力イベントから他カメラ接続のRaspberry Piのモジュールカメラを起動出来る
    実践IOTハウスではAlexaへの防犯カメラ起動に使用
    pepoalexado iot02f.local remote hand dio3high

  • chromeなどブラウザが、https://iot01fを閲覧中は登録している文言で音声操作と応答をそのブラウザが返す
    pepoalexado iot01f.local remote hand voice_req 電気を消して ->電気を消してを実行します
    pepoalexado iot01f.local remote hand voice_req 部屋の温度教えて ->部屋の温度は24.0℃です

  • Alexaのhomebridge/config.json設定例

    アレクサ、ダインニング電気つけて

    アレクサ、ダインニング電気消して

    アレクサ、防犯カメラオン

    アレクサ、防犯カメラオフ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    {{{
    "platforms": [
    {
    "platform": "Alexa",
    "name": "Alexa",
    "username": "user",
    "password": "pass"
    }
    ],
    "accessories": [
    {
    "accessory": "CMD",
    "name": "ダイニング電気",
    "on_cmd": "sudo /usr/local/bin/pepoalexado iot001.local remote hand 3 1",
    "off_cmd": "sudo /usr/local/bin/pepoalexado iot001.local remote hand 3 0"
    },
    {
    "accessory": "CMD",
    "name": "防犯カメラ",
    "on_cmd": "sudo /usr/local/bin/pepoalexado iot03f.local remote hand dio3low",
    "off_cmd": "sudo /usr/local/bin/pepoalexado iot02f.local remote hand dio3high"
    },
    }}}
  • Please check the source code below
    https://github.com/kujiranodanna/IOT-House/blob/master/raspberrypi/usr/local/bin/pepoalexado

防犯カメラ応用

  1. ドップラーセンサーRCWL-0516とモジュールカメラで防犯カメラの応用技術を紹介
  • Module CameraかWeb Cameraを使用して日中に写真と夜間はビデオを切り替えます。

  • 夜間の動画は充分な照明が必要ですが、写真画像は比較的暗くても認識する事が出来ます。

  • Moduleカメラ接続とドップラーセンサー接続の別々のラズパイ2台による分散処理を実現させています。

  • Input1と3へ適当な名前、ここでは「防犯センサー」と「リモート制御」
    DIO_settings

  • DIO contorl1で防犯センサーのAction:High->LowへModuleカメラの写真メールリモート制御のAction:High->LowへModuleカメラの動画メールをそれぞれ設定
    DIO contorl1

  • Moduleカメラが接続されているラズパイの設定は終わり

  • 次にドップラーセンサーRCWL-0516が接続されているラズパイの設定

  • Output4へ時間制御用として「カメラ有効」命名、Output4はIutput4とダイレクト接続Output4の出力が反転されてIutput4へ反映される
    DIO_settings

  • DIO contorl1で防犯センサーのAction:High->Lowへnoneのままでreset登録のみ、カウンタを生成するのみ、Actionは何も設定しない
    DIO contorl1

  • Auto processで「カメラ有効」を18時、06時でHigh,Low切り替え
    DIO contorl1

  • DIO contorl1で防犯センサーのAction:High->Lowで自動生成された/usr/bin/dio0lowスクリプトの最後へエディタで追加

  • 意味はjsonデータのInput4がHigh->Moduleカメラが接続されているラズパイのdio0lowを実行、Lowならdio2lowを実行
    [iot00f:root#] vi /usr/bin/dio0low

    1
    2
    3
    4
    5
    6
    ENABLE=`cat /www/remote-hand/.di_read_data.json |jq -r .di3`
    if [ $ENABLE = “high” ];then
    pepoalexado iot02f remote hand dio0low
    else
    pepoalexado iot02f remote hand dio2low
    fi
  • 追記、下記でOutput4の出力情報を取れるのでこれで判定しても良いかも

    1
    2
    3
    [iot00f:root#] cat /www/remote-hand/.di_read_data.json |jq -r .do3
    low <-結果
    high or low

防犯カメラ

  1. ドップラーセンサーRCWL-0516とモジュールカメラで防犯カメラとして使用する。
  • RCWL-0516の出力0-3.3vをラズパイのgpio入力へ直接、接続出来ないのでフォトカップラで安全にレベル変換後接続します。
    rcwl-0516_bord
  1. ドップラーセンサー作動時に防犯カメラで写真や動画メールを送信する。
    secure_image

環境ガスセンサーBME680

  • 温度・湿度・気圧・ガスセンサモジュールBME680をRasberry piで動作させるものです
  • Github BoschSensortecからbme680.h,bme680_defs.hをダウンロードします。
  • osdnのサイトからpepobme680.tar.gzをダウンロードします。
    1
    2
    3
    4
    5
    6
    cc pepobme680.c bme680 -o pepobme680
    ./pepobme680
    /www/remote-hand/tmp/.pepobme680に以下のような内容を約10秒毎1行出力し続けます。
    日時,温度,湿度,気圧,ガス抵抗
    [iot02f:root#] cat /www/remote-hand/tmp/.pepobme680
    2021/01/29/17:13:48,10.3,62.7,1016.1,5089877
    BME680環境ガスセンサーを接続してグラフ表示させます

設定保存

  • 設定保存
    ログインユーザー・パスワードを設定保存(各種設定の保存)、再起動、初期化します。configuration_save

自動化設定

  • Linuxのcronで自動実行
    • 1分単位で運転・停止するように設定します。
    • たとえば、入力条件を設定することもできます。
    • 室温が上がったら一定時間ファンを回す。
    • 屋外の明るさでライトをオンまたはオフにます。
    • 1〜300,000ミリ秒の間で設定出来ます。
auto_process

基本設定

  1. Webブラウザでhttp://HOST_NAME.local or http://HOST_NAMEにアクセス、ログインします。
    username: remote
    password: hand
  2. DIO Setting タブで入力端子と出力端子のエイリアス、IRkit、モノラルワイヤレスモジュール、モデムなどを設定します。
  • 出力端子設定

    shot2020-09-19 13 07 11
  • 入力端子設定

    input_settings
  1. メール設定(gmailを使う場合)

    gmail_settings
  2. 設定保存
    ログインユーザー・パスワードを設定保存します(各種設定の保存)

    configuration_save

入力設定

  • 入力名設定
    • 入力に命名します、設定した名前は他設定で分かり易くするためです
    • DIO Setting タブで入力のエイリアス、温度、湿度や格アナログ値のスライスを設定します。
input_settings