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」ファイルを変更するだけです。 たとえば、スイッチをアクティブにしたり、アラームステータスを要求したりできます。

Source: https://habr.com/ru/post/J249265/


All Articles