Raspberry and Telegram:スマートホームを作成するための前提条件





イタリアのある店舗では、Telegram(および以前のWhatsApp)を使用する新しい方法を模索し、シングルボードのミニチュアRaspberry Piコンピューターにインストールしました。 結局のところ、メッセンジャーを使用して、独自のテクノロジーとリモートで通信できます。 以下は、Instructables.comの記事( 1、2 )の翻訳です。 翻訳に明確な説明がある場合は、コメントに書いてください。



I. Raspberry Piの電報



ステップ1:インストール



次のものが必要です 。RaspberryPi BまたはB +、Raspbianの最新バージョン、または同じプリインストールRaspbianの8GBクラス10のMIcroSDカード。



最初にソフトウェアパッケージを更新します。



sudo apt-get update
      
      





 sudo apt-get upgrade
      
      





ライブラリをインストールします:readlineまたはlibedit、openssl、および(構成を使用する場合)libconfigおよびliblua。 それらを使用しない場合は、それぞれ--disable-libconfigと--disable-libluaを置きます。



 sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make
      
      





GitHubアーカイブのクローン



 git clone --recursive https://github.com/vysheng/tg.git && cd tg
      
      





 ./configure
      
      





 make
      
      





このコマンドの実行には時間がかかり、その後インストールが完了します。



UPD:メッセンジャーを実行し、電話番号と(または)ニックネームを入力してアカウントを設定します。 見る



ステップ2:メッセージを自動的に送信する



メッセージを自動的に送信するには、ファイルを作成します



 sudo nano /home/pi/tg.sh
      
      





このコンテンツで:



 #!/bin/bash to=$1 msg=$2 tgpath=/home/pi/tg cd ${tgpath} (echo "msg $to $msg"; echo "safe_quit") | ${tgpath}/bin/telegram-cli -k tg-server.pub -W
      
      





アクションを許可して、保存して閉じます。



 sudo chmod -R 0655 /home/pi/tg.sh
      
      





でテストする



 /home/pi/tg.sh Name_lastname "your message"
      
      













写真を送信するには、ファイルを作成します



 sudo nano /home/pi/tg_photo.sh
      
      





それに書いて



 #!/bin/bash to=$1 msg=$2 tgpath=/home/pi/tg cd ${tgpath} (echo "send_photo $to $msg"; echo "safe_quit") | ${tgpath}/bin/telegram-cli -k tg-server.pub -W
      
      





許可を与えて保存して閉じます:



 sudo chmod -R 0655 /home/pi/tg_photo.sh
      
      





そしてテスト



 /home/pi/tg_photo.sh Name_Lastname /folder/photo.png
      
      







II。 Telegramを介したRaspberry Piリモートコントロール







テレグラムは、インスタントメッセージを送信するための非常に用途の広いメッセンジャーであり、複数のデバイスで同時に1つの電話番号を使用して作業できます。



前回のレビューでは、インストール方法、テキストファイルとメディアファイルの送信方法を見ました。 また、Telegramを介してメッセージを自動的に送信するようにRaspberryを構成できるようにしました。



今回は、受信したメッセージに応じて特定のアクションを実行するようにRaspberryに依頼します。たとえば、「写真」という単語を送信して、Raspberryが家の写真または「ランプ」を送信し、ランプを回すか、「開く」とドアを開くことができますガレージ。 始めましょう。



ステップ1:インストール



上記の手順に基づいて開始します。 新しい着信メッセージをインターセプトするために、action.luaファイルを作成します(habrayusersは明らかに慣れているため、公式Webサイトへのリンクを含むLua言語の説明は省略します。- )。



 sudo nano /home/pi/tg/action.lua
      
      





次の内容で:



 function on_msg_receive (msg) if msg.out then return end if (msg.text=='ping') then send_msg (msg.from.print_name, 'pong', ok_cb, false) end end function on_our_id (id) end function on_secret_chat_created (peer) end function on_user_update (user) end function on_chat_update (user) end function on_get_difference_end () end function on_binlog_replay_end () end
      
      





ファイルを保存して閉じます。 着信メッセージが「ping」になったので、電報はメッセージ「pong」で応答します。



tgに行く



 cd /home/pi/tg
      
      





そして書く:



 bin/telegram-cli -k tg-server.pub -W -s action.lua
      
      





メッセージを送信してみてください。 すべてが正しい場合、Telegramは「ping」(「PING」ではなく)のみに応答し、次のように表示されます。











さて、もっと面白いものを試してみましょう。

Raspberryカメラをインストールし( このチュートリアルを参照)、このカメラからの写真がデフォルトで保存される新しいフォルダーを作成します。



 sudo mkdir /home/pi/camera
      
      





新しいcamera.chファイルを作成します



 sudo nano /home/pi/camera/camera.sh
      
      





この詰め物で



 #!/bin/bash raspistill -w 800 -h 600 -o /home/pi/camera/photo.jpg
      
      





保存して閉じ、アクションの許可を与える



 sudo chmod -R 0655 /home/pi/camera/camera.sh
      
      





「action.lua」を編集します



 sudo nano /home/pi/tg/action.lua
      
      





そして、これらの行をon_msg_receive関数に追加します。



 if (msg.text=='photo') then os.execute('/home/pi/camera/camera.sh') send_photo (msg.from.print_name, '/home/pi/camera/photo.jpg', ok_cb, false) end
      
      









ステップ2:テスト











 bin/telegram-cli -k tg-server.pub -W -s action.lua
      
      





メッセージで「写真」という単語を送信すると、Raspberryは写真で応答します。



追加のコマンドを指定するには、新しい「if」ブロックを追加して「action.lua」ファイルを変更するだけです。 たとえば、スイッチをアクティブにしたり、アラームステータスを要求したりできます。



All Articles