/ESPTelegramPCSwitch

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ESP Telegram PC Switch

Устройство на базе микроконтроллера ESP 8266 позволяет через Telegram бота осуществлять контроль состояния компьютера, включать, выключать или перезагружать. Подключается напрямую к материнской плате (Front Panel) паралельно с передней панелью, имитирует нажатие кнопки Power SW, питается от USB порта.

alt text alt text alt text

Компоненты

Схема подключения

Для устройства:

Компонент Количество
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

alt text alt text

Получение токена

Необходимо зарегистрировать бота и получить уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather. Пишем ему /start и получаем список всех его команд. Первая и главная — /newbot — отправляем ему и бот просит придумать имя новому боту. Следующим шагом бот запросит username, в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты.

Настройка конфигурацонного файла config.h

Необходимо создать файл 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

Для более стабильной работы бота можно назначить ему 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 репозитории:

Прошивка ESP 8266

  1. Скачиваем и устанавливаем Arduino IDE;
  2. Настраиваем Arduino IDE согласно статье;
  3. Добавляем библиотеки из папки libs: Войдите в меню: Скетч > Подключить библиотеку > Добавить .ZIP библиотеку... В появившемся окне выберите ZIP файл библиотеки, который Вы скачали. После чего нажмите на кнопку «Открыть»;
  4. Различных плат огромное количество, поэтому подготовку платы к перепрошивки описывать не стану, в интернете информации достаточно;
  5. Прошиваем микроконтроллер (Скетч > Загрузка).

Лицензия