Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Что, если оборудовать Arduino модулем не ESP8266, а SIM800L? Конечно, суть BadUSB останется неизменной: устройство подключается к порту USB компьютера для выполнения команд скрипта. Однако отличие от простого BadUSB заключается в том, что после присоединения скрипт не выполнится. Его необходимо будет послать в виде SMS. Это даст преимущество не только в дистанции, c которой можно управлять устройством удаленно, но и в используемом оборудовании: хватит кнопочного телефона с SIM-картой. Чтобы еще немного снизить себестоимость устройства, можно заказать все необходимые детали с AliExpress.
Нам понадобятся следующие вещи:
Теперь давай приступим к сборке самого устройства.
Схема соединения контактов двух плат проводами выглядит следующим образом:
ARDUINO <---->SIM800L
RAW <----->VCC
GND <----->GND
15 <----->TXD
14 <----->RXD
Антенна из комплекта SIM800L подойдет любая. Если это антенна‑спираль, то ее необходимо припаять к контакту NET модема. Чтобы сэкономить место, я выберу плоскую антенну и прикреплю ее к контакту IPX.
Питание модуля SIM800L очень капризно. Разрешенное напряжение составляет от 3,4 до 4,4 В. Поэтому, если ты используешь не Arduino Pro Micro или выходное напряжение не попадает в промежуток значений, указанный выше, советую ознакомиться со статьей Robotchip. В ней подробно описано, как корректно подвести питание к модулю SIM800L.
Останавливаться на сборке подробно я не буду. Уверенно орудуя паяльником, цепляем провода к обеим платам по схеме. Скажу лишь одно: если ты дальше собираешься продолжать свои эксперименты с BadUSB, то лучше воспользоваться макетной платой. Тогда сборка устройства превратится в игру с конструктором Lego. Достаточно будет припаять ножки к используемым контактам Arduino и SIM800L, установить девайсы на макетную плату и соединить их между собой проводами.
Linux или Windows? Решать тебе! Arduino IDE есть под обе операционные системы. В моем случае при подключении Arduino определилось как SparkFun LilyPad USB.
Далее скачиваем Arduino IDE с официального сайта под свою ОС (в моем случае это Kali Linux). После установки необходимо выбрать устройство, которое мы будем программировать, и порт, к которому оно подключено. Сразу скажу, что, если ты используешь Linux, загрузить код на плату с первого раза может и не получиться. Тогда необходимо прописать в командной строке Linux следующее (где username
— имя пользователя):
Выбор платы для правильной компиляции кодаВыбор порта, к которому подключено устройствоПосле подключения устройства к USB-порту модем ищет ближайшую базовую станцию оператора SIM-карты, которую ты используешь в SIM800L (в верхнем углу модуля SIM800L находится светодиод, который показывает состояние сотовой сети). Есть три состояния индикатора: мигает раз в 1 с — модуль работает, но еще не подключился к сотовой сети; мигает раз в 2 с — запрошенное соединение для передачи данных GPRS активно; мигает раз в 3 с — модуль установил связь с сотовой сетью и может отправлять или получать голосовые сообщения и SMS.
В отличие от девайса с модулем Wi-Fi, в нашей версии BadUSB будет программироваться только модуль Arduino. SIM800L выступит как часть канала передачи, которая обрабатывает получаемые от базовой станции сигналы GSM. Результатом работы (в зависимости от отправленной модулю SIM800L команды) будет текстовая информация, выведенная в COM-порт. Рассмотрим основные команды библиотеки этого модуля, с которыми будем работать.
Общаться с модулем SIM800L можно через COM-порт с помощью текстовых команд. Их перечень огромен, поэтому приведу в качестве примера только те, которые будут задействованы.
AT
— настройка скорости обмена данными;AT+CMGDA="DEL ALL"
— удаление всех SMS из памяти симки;AT+CMGDA="DEL READ"
— удаление всех прочитанных SMS;AT+CLIP=1
— включение AOH;AT+DDET=1
— включение возможности использования тонального набора;AT+CMGF=1;&W
— включение текстового режима SMS с сохранением значения;AT+CMGL="REC UNREAD",1
— запрос на чтение непрочитанных SMS;AT+CMGR="index",1
— получение текста SMS по индексу (index);AT+CMGR="index"
— отметить по индексу SMS как прочитанное.Datasheet по SIM800L
Итак, приступим к созданию кода. Логически его можно разделить на две части. Первая — обработка данных, получаемых от модуля SIM800L, и «выуживание» полезной нагрузки из SMS. Вторая — эмуляция модулем Arduino нажатий клавиш, отправляемых через USB-порт компьютеру. Основу второй части составил код, написанный Spacehuhn и переработанный мной.
|
|