上位に戻る ペット給水器用スマートスイッチ 初版2021/08/14
改版2022/03/16

猫5匹の内、1匹が器に入れた水を飲んでくれなく、給水器を購入しました。最初 近接センサーで ON OFF させていたのですが
横切っただけで入るし、人にも反応するので、タッチスイッチで猫が乗っかたら起動させようと思いました
結局のところ、この給水器えらい人気で、1匹は、上からの水を飲み、それ以外の猫は、好んで、この溜まった水を飲むので、
上から飲む猫が前に座った時に、手動で、タッチスイッチでON OFF していました。
赤外線のスマートリモコンを買ったので、赤外線リモコンでON OFFさせるように組みなおしました
赤外線リモコンでも制御できるし、使っていない古いスマホにgooglhomeを入れて、音声制御できるようにしました



    


  1. 使ったもの


    まずは、給水器がこれです
    TTP223 のタッチパネルユニットを購入しました
    赤い基盤の20個入り(ヘッダーピンが無いタイプ)
    もありましたが、20個も必要ないので10個入り
    どうせハンダ付けなので、ヘッダーピンいらんけど
    Arduino NanoボードV3.0
    まあ大層な制御じゃないけど 前に買って
    余っているので利用
    赤外線の受光部ユニットと、送信用のLED
    30セットも絶対いらんけど買いました
    でも、電源反対に繋いで、1セット壊してし
    まいました
    送信用LEDは、今回は使いません
    別で使うつもりだったのでセットで購入
    ケース
    赤外線リモコン
    カーテンの上げ下げや、パソコンの起動で使って
    いるものを利用
    とりあえず使っていない 1 キーを使いました
    スマートリモコン
    キッチンで使っているスマートリモコン
    googl home を使って音声で制御します
    上記以外に、

    5Vのリレー 1個(給水器に供給する電源 入切用)

    NPNトタンジスター1個 リレー駆動用

    USBケーブル

    厚手のアルミ箔

    厚手の両面テープ

    シールドケーブル
  2. どんな回路
    タッチスイッチでもON OFF できて、赤外線リモコンでもON OFFできるようにしました
    また、ONしたあと、放置しておくと、4分後に切れるようにしました




    //www.elegoo.com
    //2016.12.12

    #include "IRremote.h"

    int receiver = 11; // Signal Pin of IR receiver to Arduino Digital Pin 11
    int tachiR = 4; //Tachi Pin input
    String data1 ="0";
    int countt =0;
    IRrecv irrecv(receiver); // create instance of 'irrecv'
    decode_results results; // create instance of 'decode_results'
    int kpower = 6; //the pin of the active kpower

    void setup()
    {
    irrecv.enableIRIn(); // Start the receiver
    pinMode(kpower,OUTPUT);//initialize the kpower pin as an output
    pinMode(tachiR, INPUT); //initialize the kaitenR pin as an input
    }

    void loop()
    {
    if (digitalRead(tachiR) == HIGH){
    if (data1=="0" && countt < 1){
    digitalWrite(kpower,HIGH);
    countt=12000;
    delay(500);
    data1="1";
    }
    else{
    if(data1=="1" && countt > 0){
    digitalWrite(kpower,LOW);
    data1 ="0";
    countt=0;
    delay(2000);
    }
    }
    }

    if (irrecv.decode(&results)) // have we received an IR signal?
    {
    switch(results.value)
    {
    case 0x2107807F: // funai TV [1] button pressed
    case 0xEE116A95: // ASUS TV [Power] button pressed
    case 0xFF30CF: // ELGO Contlol [1]
    if (data1=="0" && countt < 1){
    digitalWrite(kpower,HIGH);
    countt=12000;
    delay(500);
    data1="1";
    }
    else{
    if(data1=="1" && countt > 0){
    digitalWrite(kpower,LOW);
    data1 ="0";
    countt=0;
    }

    }
    break;
    }
    irrecv.resume(); // receive the next value
    }
    if (countt > 0){
    countt=countt-1;
    delay(10); }
    else{
    digitalWrite(kpower,LOW);
    data1 ="0";
    }


    }/* --end main loop -- */
    スペースが削除されてしまうので、ちょっち見にくいです

    赤外線の受信は、11番ピン
    タッチパネルの信号は、4番ピン
    給水器のスイッチは6番ピン



    赤外線ですが、1個は、エルパのテレビリモコン
    です。テレビは、ソニーを使っているのですが、
    カーテンの上げ下げ、TVなどの起動をこのリモコン
    で操作しており、フナイ電機のテレビモードに設定
    しています 数字の1を押した時に電源が入るように
    しました

    IRの受信サンプルプログラムを使って確認すると
    数字の1が、HEX:2107807F

    あと、スマートリモコンから操作するときは、ON OFF
    ぐらいの単純な指示しかできません。
    また、GoogleHomeと連携する場合は、このスマート
    リモコン デバイスが限られているみたいで
    とりあえず、テレビは認識するので
    ASUS のテレビとして登録しました
    スマートリモコンから信号だして確認すると
    電源ONは、HEX:EE116A95

    あと、Arduinoのキットについていたリモコンの
    数字の1でも起動できるようにしています

    それと タッチスイッチです

    OFFの時に信号が来ると、給水器をオンし、
    オンの時に信号が来ると オフします

    オンにしぱなしでも4分後には自動できれます



    タッチスイッチユニットの手で触る部分は
    ケースに収まらないので、切り取りました

    Arduinoの基盤の上に見えている1kΩ
    の抵抗は、Arduinoの電源ランプが、光
    ぱなしなるので、うざいので基盤について
    いる抵抗を破壊しました
    その代わりに、スイッチが入っている間
    光るように、D6ピンに繋いでいます

    タッチ部分は、表と裏両方にアルミ拍
    を張っています

    表が信号側で、裏が、アースです

    厚手の両面テープを使って張っています

    信号面と、アース面が接触しないように
    張り合わせます
    全体の写真と、

    制御部の拡大写真です
    赤外線の受光部です

    クーラパネル作るときに買った
    透明ホース 曲がりが曲がらないの
    で結局シリコンホースを買いなおして
    余っていたものを切って使いました


    タッチスイッチ部です
    スマート赤外線スイッチと、
    google homeをインストールした
    使っていない古いスマホ

    音声で制御しています

    スマホは、開発者モードをONにして
    充電中は電源を切らない設定を有効に
    マイク感度を小さな音でもひろうにして
    います










    以上間違い等ありましたら、以下ご意見箱にお願いします

   

    ご意見箱