Устройство на базе микроконтроллера ESP 8266 позволяет через Telegram бота осуществлять контроль состояния компьютера, включать, выключать или перезагружать. Подключается напрямую к материнской плате (Front Panel) паралельно с передней панелью, имитирует нажатие кнопки Power SW, питается от USB порта.
Для устройства:
Компонент | Количество |
---|---|
ESP8266-12E | 1 |
Плата-адаптер для ESP8266 | 1 |
ASM1117-3.3 | 1 |
Конденсатор 330uF | 1 |
Транзистор 2N2222 | 2 |
Резистор 2.2 КОм | 4 |
Резистор 470 Ом | 2 |
Резистор 10 КОм | 1 |
Для подключения к материнской плате:
Компонент | Количество |
---|---|
Провод двухжильный | несколько метров |
0.100" (2.54 mm) Female Header: 1x2-Pin | 7 |
0.100" (2.54mm) Pitch Connector Headers | 5 |
PCB макетная плата 3х7 | 1 |
Корпус | 1 |
Необходимо зарегистрировать бота и получить уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather. Пишем ему /start и получаем список всех его команд. Первая и главная — /newbot — отправляем ему и бот просит придумать имя новому боту. Следующим шагом бот запросит username, в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты.
Необходимо создать файл config.h в директорию рядом со скетчем wol.ino. В файле необходимо указать:
- Имя сети Wi-Fi, к которой подкючается устройство;
- Пароль от Wi-Fi сети;
- Токен telegram бота из предыдущего пункта.
Пример:
#define SECRET_SSID "DIR-300"
#define SECRET_PASS "1234567890"
#define SECRET_BOTTOKEN "123456789:AAEIh14fcBOJdsq_-6b1NEUIDk_LdPMsYbM"
Бот будет выполнять действия только тех пользователей, чьи Telegram ID входят в белый список. Получить Telegram ID можно при помощи бота @getmyid_bot. Белый список находится в коде wol.ino, переменная whiteList_length это количество пользователей, а переменная whiteList это массив идентификаторов пользователей.
#define whiteList_length 1
String whiteList[whiteList_length] = {
"350367633"
};
Для более стабильной работы бота можно назначить ему IP-адрес в функции setup (после строки WiFi.mode(WIFI_STA)):
WiFi.config(IPAddress(192, 168, 1, 40),
IPAddress(192, 168, 1, 1),
IPAddress(192, 168, 1, 1),
IPAddress(255, 255, 255, 0));
Для сборки проекта понадобятся стороннние библиотеки, которые находятся в папке libs. Добавление библиотек в Arduino IDE описано в следующем пункте. Ссылки на git репозитории:
- Скачиваем и устанавливаем Arduino IDE;
- Настраиваем Arduino IDE согласно статье;
- Добавляем библиотеки из папки libs: Войдите в меню: Скетч > Подключить библиотеку > Добавить .ZIP библиотеку... В появившемся окне выберите ZIP файл библиотеки, который Вы скачали. После чего нажмите на кнопку «Открыть»;
- Различных плат огромное количество, поэтому подготовку платы к перепрошивки описывать не стану, в интернете информации достаточно;
- Прошиваем микроконтроллер (Скетч > Загрузка).
- GPL-3.0 license
- Copyright 2019 © Илья Ковалёв.