224   221     15   57    
21.01.2019   Уроки   Теги статьи #

Автоматический ввод пароля на компьютере на основе Ардуино

Пароли и их запоминание довольно сложное дело, а уж если вы используете надежный, то всё еще сложнее. Вдобавок к этому, если у вас есть запутанный пароль, для его ввода потребуется время. Но у нас есть решение этой проблемы. Мы сделаем небольшую машинку на основе Ардуино для автоматического набора текста, которая будет вводить пароли на компьютере. Теперь не будет необходимости запоминать пароль или быть уметь быстро печатать текст.

Шаг 1. Комплектующие

Размер нашего устройства будет минимальный, не больше размера спичечного коробка, в буквальном смысле.

Основные детали:

  • Резистор 10 кОм x 2
  • Arduino Pro Micro (или любой клон Arduino / Arduino с чипом 32u4) x 1
  • Спичечный коробок x 1
  • Кнопки x 2
  • Провода (желательно разных цветов)

Используемые инструменты:

  • Паяльник
  • Клей-пистолет

Шаг 2. Схема соединения устройства

Нам нужно подключить VCC и/или RAW на Pro Micro через резистор к кнопке. Кабель, который идет к цифровым контактам на Pro Micro, подключается к тому же контакту, что и питание на кнопке. Наконец, соединяем землю (GND).

Лучше всего свериться со схемой выше. Изображение помогает прояснить как всё соединяется. Да, на этом изображении показан Ардуино Леонардо, но, к сожалению в программе Fritzing, которую мы используем для рисования схем, не было Arduino Pro Micro. Далее мы всё встраиваем в наш спичечный коробок. Используйте клеевой пистолет, чтобы закрепить все в спичечном коробке.

Шаг 3. Код проекта

Скопируйте или скачайте код нашего проекта устройства ввода пароля на компьютере на основе Ардуино ниже. Прежде чем скачать код проекта мы должны скачать и установить библиотеку keyboard.h, ссылка на эту библиотеку на GitHub также ниже, но вы можете скачать zip-архив на нашем сайте в разделе Библиотеки.

Библиотека клавиатуры keyboard.h для Arduino позволяет плате Arduino с возможностями USB выступать в качестве клавиатуры.

#include <Keyboard.h>
#define buttonPin  7 // Постоянно делает значение ButtonPin = 7.
#define buttonPin2  5 // Постоянно делает значение buttonPin2 = 5.

void setup() {
   
pinMode(buttonPin,INPUT); // Установка контактов в качестве входов.
pinMode(buttonPin2,INPUT);
Serial.begin(9600); 
Keyboard.begin(); // Запустите функции клавиатуры 

}

void loop() {
 int buttonState = digitalRead(buttonPin); //прочитать состояние кнопки ввода 
int buttonState2 = digitalRead(buttonPin2); //прочитать состояние кнопки ввода
if (buttonState == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В

Serial.println(buttonState); 
Keyboard.print ("m05Ts3cUR3Pa55W0rDewWa"); //Укажите свой пароль здесь
 delay (1000);
 
 }
   
if (buttonState2 == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В
Keyboard.print ("5eConDm05Ts3cUR3Pa55W0rDewWa"); //Укажите свой второй пароль здесь
 delay (1000);
} 

}

Если вы хотите, вы можете ввести имя пользователя/адрес электронной почты, затем перейти к паролю и ввести его. Просто вставьте этот кусок кода вместо keyboard.print().

Keyboard.print("Ваше имя");//введите имя
delay(100);
Keyboard.press(KEY_TAB);//нажатие клавиши табуляции TAB
delay(100);
Keyboard.print("Ваш пароль"); //введите пароль

На этом наше устройство ввода пароля на компьютере готово.

В целом данный проект позволяет понять работу, например,  флешек-ключей, которые используются для работы со счетами в Банках при открытии счета компании. Также флешки-ключи используются и в других областях хранения данных.

Ардуино+