- PVSM.RU - https://www.pvsm.ru -
История эта началась полтора года назад, когда ко мне в руки попали блоки управления освещением «noolite» (ну как попали, сам купил, есть у меня слабость к разного рода интересному железу). Тогда в моём распоряжении оказались два блока серии SB и адаптер MTRF-64. Блоки этой серии привлекли меня тем, что их можно внедрить в домашнюю проводку без её существенного переделывания: достал выключатель и вместо него всунул блок, а сам выключатель повесил на специально выведенные из блока провода. В такой конфигурации светом можно управлять как с радиоканала так и по классике — выключателем. Есть конечно и один минус: блоки этой серии не поддерживают обратную связь, а хотелось бы, ведь в MTRF-64 она есть, ну да ладно. А вот от покупки шлюза я тогда отказался в пользу адаптера, потенциально возможности его шире чем у шлюза.
Вдоволь наморгавшись люстрой, появилось желание привести это всё к какому-то общему знаменателю, но, видимо, другие интересные железяки это желание затмили, потому что блоки были отправлены в дальний ящик. Так бы они там и лежали если бы до недавнего времени я не обратил на них внимание точнее на неприлично толстый слой пыли на них.
Силовой блок SB-1-150 и MTRF-64
Тут же в моей голове всплыла картинка, в которой я выключаю свет перед сном не вставая с кровати, или одним нажатием кнопки использую сценарий «я ухожу», выключающий всё, что должно быть выключено в моё отсутствие.
Наконец, было решено действовать. Почему я стал клепать свой велосипед а не купил готовую систему сразу? Просто потому, что хотел сделать что-то своими руками. Вы ведь знаете это чувство, когда ты что-то собрал, а оно — работает. Плюс ко всему, я наконец на примере реального проекта начинаю изучение какого-нибудь объектно-ориентированного языка (выбрал python 3).
Всё просто — управление светом и бытовыми приборами из любой точки дома. В качестве главного управляющего устройства выбрана Raspberry Pi модели B+ в связке с MTRF-64. В виду отсутствия опыта в разработке подобного рода приложений было решено начать с чего-то простого. Так я пришёл к реализации Telegram бота.
Raspberry Pi B+ и MTRF-64
Для себя я решил, что на первое время мне будет достаточно следующих функций бота:
Для начала скачаем операционную систему для нашего малинового пирога. Я предпочитаю официальный для этой платки Raspbian [1]. Заливать образ на CD удобно при помощи утилиты Win32DiskImager.
1. Подключаем всё это дело и логинимся:
login: pi
password: raspberry
2. Приступая к работе, желательно убедиться, что используются свежие версии программ. Вы можете подумать: мы же только что скачали дистрибутив, куда уж свежее? А нет…
sudo apt-get update
sudo apt-get -y dist-upgrade
3. Ставим менеджер пакетов pip3 и git:
sudo apt-get install -y python3-pip git
4.Скачиваем нужные для работы бота библиотеки. Я использую библиотеку pyTelegramBotAPI, которая берет на себя все нюансы отправки и получения HTTP запросов, позволяя сконцентрироваться непосредственно на логике:
sudo pip3 install pytelegrambotapi pyserial
5. Скачиваем бота:
sudo git clone https://github.com/DZimasik/nooBot.git
Прежде чем запускать бота, необходимо его зарегистрировать, т.е. получить его уникальный id (токен). Поможет нам это сделать другой специальный бот — @BotFather [2]. Просто отправляем ему /newbot и он просит придумать имя нашему новому боту, это имя будет высвечиваться в списке контактов Telegram. Далее BotFather предлагает придумать уникальный username бота. Единственное ограничение — username должен оканчиваться на «bot». Username так же используется для поиска бота среди множества других.
В принципе для старта этого достаточно. Некоторые перфекционисты здесь же могут задать боту аватар или написать приветственное сообщение. После того как всё введено, BotFather вернёт токен:
6. Добавим токен в файл config.py
sudo nano /home/pi/nooBot/config.py
token = 'Ваш_токен' # Insert your token from BotFather
7. Наконец можно запустить бота:
sudo python3 /home/pi/nooBot/noobot.py
Отправляем нашему боту /start. Если токен введён правильно появится клавиатура и мы увидим сообщение:
На данном этапе я управляю светом в спальне и зале, но в дальнейшем планирую докупить ещё силовых блоков (на этот раз с обратной связью) и перевести всё своё освещение на дистанционное управление. Так же в планах добавить боту поддержку обратной связи для того, что-бы можно было узнавать состояния устройств и параметры датчиков в доме, находясь вне него.
На этом пока все. Буду рад услышать ваше мнение. Всем добра!
Полезные ссылки:
Автор: DZimasik
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/283658
Ссылки в тексте:
[1] Raspbian: https://www.raspberrypi.org/downloads/raspbian/
[2] @BotFather: https://telegram.me/botfather
[3] Репозиторий на github: https://github.com/DZimasik/nooBot.git
[4] Telegram bot API: https://core.telegram.org/bots/api
[5] MTRF-64: https://www.noo.com.by/mtrf-64-usb.html
[6] API: https://www.noo.com.by/assets/files/PDF/MTRF-64-USB.pdf
[7] Источник: https://habr.com/post/414829/?utm_campaign=414829
Нажмите здесь для печати.