...

пятница, 30 января 2015 г.

[Перевод] Raspberry и Telegram: предпосылки создания умного дома


Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.


I. Telegram на Raspberry Pi


Шаг первый: инсталляция


Понадобится: Raspberry Pi B or B+, с последней версией Raspbian, или карта MIcroSD на 8Гб класса 10 с той же предустановленной Raspbian.


Сначала обновите пакеты программ:



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 http://ift.tt/1fUfTyb && cd tg



./configure



make




Выполнение этой команды займёт некоторое время, после чего установка будет завершена.

Шаг второй: автоматическая отправка сообщений


Чтобы автоматически отправить сообщение, создайте файл



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. Дистанционное управление Raspberry Pi через Telegram



Телеграм – весьма разносторонний мессенджер для отправки мгновенных сообщений, в котором можно работать, используя один телефонный номер, одновременно на нескольких устройствах.


В предыдущем обзоре мы увидели, как его установить, как отправлять текст и медиафайлы. Мы также убедились, что в Raspberry можно настроить автоматическую отправку сообщений через Telegram.


На этот раз мы попросим Raspberry выполнить конкретное действие как функцию полученного сообщения: например, мы могли бы послать слово «photo», чтобы Raspberry прислал нам фотографию дома, или «lamp», чтобы он повернул лампу, или «open», чтобы открыть дверь гаража. Начнём.


Шаг первый: инсталляция


Начинаем на основе описанных выше действий. Чтобы перехватить новое входящее сообщение, мы создаём файл action.lua (я опускаю описание языка 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




Попробуйте отправить сообщение. Если всё верно, Телеграм отвечает только на «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





Шаг второй: тест





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




Теперь, если вы пошлёте сообщением слово «photo», Raspberry ответит фотографией.

Чтобы задать дополнительные команды, просто измените файл «action.lua», добавив новый блок «if». Например, можно активировать выключатель или запросить статус сигнализации.


Recommended article: Chomsky: We Are All – Fill in the Blank.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий