Якщо ви користуєтеся смартфоном, ви напевно будете знати, що одним із найподібніших і найвідоміших додатків WhatsApp є Telegram, дуже універсальний клієнт обміну повідомленнями що представляє кілька особливостей, таких як можливість одночасного використання одного і того ж телефонного номера з різних пристроїв. Завдяки саме цій функції, сьогодні я хочу представити вам невеликий підручник, за допомогою якого ви можете надсилати текстові повідомлення та навіть мультимедійні файли своїм контактам із Raspberry Pi.
Настільки ж цікавим є той факт, що ми можемо налаштувати наш Raspberry Pi так, щоб до певної команди, отриманої Telegram, наша карта могла виконувати деякі додаткове виконанняІншими словами, уявімо, що ми надсилаємо слово «фото»І це дає нам зображення будь-якої кімнати в будинку,«світло»Для автоматичного увімкнення будь-якого світла або«відкрито»Для автоматичного відкривання гаражних воріт.
Безумовно, ця додаткова функціональність привернула вашу увагу. Якщо так, ми приступаємо до роботи, але не раніше, ніж сказати вам, що нам буде потрібен Raspberry Pi B або Raspberry Pi B + для реалізації проекту, а також карта пам'яті microSD класу 8 на 10 ГБ із попередньо встановлену останню версію Raspbian.
Отримавши все вищесказане, ми починаємо з і термінал Ми починаємо з оновлення та базової конфігурації. Напевно знайдеться багато користувачів, яким це не потрібно, але нам краще робити все поетапно і в хорошому темпі, щоб нічого не пропустити. Ми починаємо з запуску та оновлення пакетів з:
sudo apt-get update
sudo apt-get upgrade
Ми продовжуємо встановлення та оновлення декількох важливих бібліотек, де система знайде всі потрібні нам бібліотеки
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 li-blua5.2-dev libevent-dev make
Зсув сховища GitHub
git clone --recursive https://github.com/vysheng/td.git && cd tg
./configure
make
Після того, як ми все встановимо, настав час налаштувати 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
З урахуванням вищезазначеного, ми б майже все налаштували так, щоб, коли ми надсилаємо текст «пінг»Це повернеться«понг".
Переходимо до каталогу tg
cd /home/pi/tg
Ми виконуємо наступне замовлення
bin/telegram-cli -k tg-server.pub -W -s action.lua
Настав час розпочати тестування та подати нашу «пінг»На Telegram, відразу після цього, і як ви можете бачити на зображенні, відповідь є нашою очікуваною«понг«. Ми повинні брати до уваги, якщо ми використовуємо великі літери чи ні, оскільки система чутлива до її використання.
Якщо ми хочемо, щоб замість «pong» наш Raspberry Pi повертав зображення, у функції, куди ми надсилаємо відповідь, нам би залишилось лише скажіть системі сфотографувати за допомогою встановленої раніше камери та надішліть її нам.
Посилання: інструктаж
Побачивши можливості цього, мені спало на думку, що, можливо, було б непогано мати можливість надіслати будь-яку команду на мою малину (або на будь-який сервер Linux) з телеграми та отримати вихідні дані. Навіть створюйте псевдоніми команд, щоб уникнути надмірного набору тексту, керуйте користувачами, які можуть робити те саме на одній машині, щоб ніхто не міг робити те, що хоче ... і т.д.
Я почав це робити і сьогодні опублікував "Послух".
Якщо хтось хоче поспішати і спробувати, вперед
https://github.com/GuillermoPena/obedience
Привіт Гільєрмо,
У мене не було багато часу, щоб переглянути все, але я повинен сказати вам, що це виглядає дуже добре. Якщо у мене буде час на ці вихідні, я спробую все, щоб побачити, як це працює.
Щиро дякую за Вашу роботу !!!
Привіт, чудовий пост, мені сподобалось! Я просто хочу знати, чи є спосіб запустити сценарій .lua автоматично під час запуску, вітаю!