GithubHelp home page GithubHelp logo

esptelegrampcswitch's Introduction

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. Прошиваем микроконтроллер (Скетч > Загрузка).

Лицензия

esptelegrampcswitch's People

Contributors

darkb100d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.