Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Кодграбберы

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 17.01.2021, 13:31   #1
vokinvodas
Гость клуба
 
Регистрация: 26.03.2017
Сообщений: 1
Lightbulb Забытый код-граббер на arduino

Здравствуйте.
Проект код-граббера под arduino с дисплеем который давно потерялся в сети. Вернее форум, на котором его разрабатывали, заблокировали (forum grabbs org). У меня остались исходники старых версий, которыми я делюсь. Но из-за переустановки ОС часть как-это обычно бывает, потерялась часть. А именно не хватает библиотек. Код имел функционал:
- отправка основных сохраненных кодов
- отправка принятых кодов
- прием кодов
- брут на кодах 12 бит
- глушилка
- копирование кодов из принятых в основные
- алго-граббер (отправка) имеющихся кодов с использование мануфактурников

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

Если тема будет кому-то интересна, приложу больше файлов, какие смогу найти. Может фотографии где-то найду. Сам код мной тестировался и функционал работает верно. Сама дуинка уже давно была защита другими скетчами и вытащить хекс с неё не выйдет.

Код:
/*
   Граббер брелков-открывашек всего управляемого по 433,92 МГц
         с отображением на LCD_1602 (начат 01.07.2017)
*/

// Передатчик подключен к Arduino Pin #10 (EN подключен на Pin #4 - см.ниже)
#define SendPin 10
// Приемник использует прерывание 0 и подключен к Arduino pin #2
// прерывания : 0 (цифровой порт 2), 1 (цифровой порт 3)
#define RcvInt 0
// определение пинов подключения кнопок клавиатуры
#define TO_COM  9 // left
#define RESET   6 // right
// сюда подключен вход разрешения работы передатчика (EN) pin #4
#define TransmitterEN 4
// сюда подключена пьезо пищалка pin #5
#define Buzzer 5
// сюда подключен транзистор, управляющий вибратором pin #1
#define VibroMotor 1

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RCSwitch.h>
#include <EEPROM.h>


// +----- распределение EEPROM (1024 байт) -----+
// | 010 позиция Send main code                 |
// | 015 I2C адрес экрана (int, 0x27 или 0x3F)  |
// | 020 позиция Send saved code                |
// | 050-0xx параметры настроек меню Settings   |
// |         (по 4 байта на параметр)           |
// | 100-460 сохраненные для Main code посылки  |
// | 500-860 принятые для Saved code посылки    |
// |  1-2 байт   : код протокола                |
// |  3-4 байт   : кол-во разрядов посылки      |
// |  5-12 байты : код посылки                  |
// |  30 кодов * 12 байт = 360 байт под посылки |
// ---------------------------------------------+
byte MenuItem = 3, SubMenuItem = 1,         // 3-1 Grabbing run, 9-0 Utilites
     savMenuItem = 0, savSubMenuItem = 0;
// нажатые кнопки и длительность их нажатия
// код для маски 0bA000BCDE, где (1/0)
// A - длинное/короткое нажатие
// B - кнопка 1 (kBack)
// C - кнопка 2 (kGet)
// D - кнопка 3 (kRight)
// E - кнопка 4 (kLeft)
word pressed_key = 0, savpressed_key;
// строки текста меню и подменю (вторая строка экрана)
char MainMenuText[16];
String SubMenuText;
// xFlag определяет обработку подменю самостоятельно (true) или основным кодом (false)
bool xFlag = false;
// переменные позиций EEPROM для Send main/saved code
word eMainCodePos, eSavedCodePos;
// переменные, передаваемые в протокол, для приема-отправки посылки
word Tprot, Tclng;
unsigned long long Tdata, Tdata1;
// переменные для анализа кода keeloq
unsigned long KeeFix, KeeHop, KeeHopDcr;
unsigned long long KeeData;
// параметр для меню настроек
int SettingParm,
    BackLightSet, BuzzerSet, VibroSet, GrabbingMultiSet, MinGrabLen;
// параметры мануфактурника для алго
unsigned int ManNmb, ManType, ManCnt;
//  возможно это не будет использоваться...?!
//  ManType метод : Simple learning 1
//                  Normal learning 2
//                  Secure learning 3

int tmpVar;                // переменная для всяких временных циклов
bool BrutDir = false;      // направление брута : 0 вперед, 1 назад
byte BrutLevel = 0;        // скорость перебора : 0 автомат, 1-2 шаг
static String pxchar,  // пустая строка в 16 знаков
       wxchar;  // "wait..."

static char* MainMenu[] =
{ "Send main code  ",   // отправка основных сохраненных кодов
  "Send saved code ",   // отправка принятых кодов
  "Grabbing radio  ",   // прием кодов
  "Bruting code    ",   // брут на кодах 12 бит (7, 8)
  "Noice Maker     ",   // глушилка
  "Copy saved->main",   // копирование кодов из принятых в основные
  "Algo code sender",   // алго-граббер (отправка) имеющихся кодов с использование мануфактурников
  "Settings        ",   // настройки
  "Utilites        "    // утилиты
};

// Manufactures codes array
const static unsigned long ManCodes[] PROGMEM =
{ 0x00000000, 0x00000000,
  0x12345678, 0x90123456
};

// число пунктов (строк) в меню
word MainMenuSize = sizeof(MainMenu) / sizeof(*MainMenu);

// максимальное число сохраняемых кодов
int MaxSavedCodes = (EEPROM.length() - 100) / 12;

// проверка и возврат I2C адреса LCD из EEPROM
// I2C адрес LCD 0x27 или 0x3F для адаптера в зависимости от маркировки микросхемы:
// PCF8574T дает адрес 0x27, PCF8574AT - 0x3F при разомкнутых перемычках A0-A1-A2
int GetAdressLCD()
{
  int LCDadress;
  EEPROM.get(15, LCDadress);
  if (!(LCDadress == 0x27 || LCDadress == 0x3F))
    LCDadress = 0x3F; // если в EEPROM не 0x27 или 0x3F, то пусть будет 0x3F
  return LCDadress;
}

// инициализация дисплея для 16 символов в 2 строки
LiquidCrystal_I2C lcd(GetAdressLCD(), 16, 2);

// инициализация объекта для работы с RCSwitch
RCSwitch mySwitch = RCSwitch();

// инициализация объекта для работы с Keeloq
Keeloq myKeeloq = Keeloq();

void ShowMenu(byte iMenu, byte itype)
{
  // значения itype:
  // 0 строчка основного меню
  // 1 меню Main
  // 2 меню Saved
  // 3 отправка кода Main
  // 4 отправка кода Saved
  // 5 меню Bruting
  // 6 код скопирован в ячейку Main
  byte pos, codePos;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(MainMenu[iMenu - 1]);
  lcd.setCursor(0, 1);
  lcd.print(pxchar);
  if (SubMenuItem > 0)
  {
    lcd.setCursor(0, 1);
    lcd.print(SubMenuText);
  }
  if (itype == 1 || itype == 3)
  {
    lcd.setCursor(0, 1);
    lcd.print(eMainCodePos + 1);
    codePos = eMainCodePos + 1;
  }
  if (itype == 2 || itype == 4)
  {
    lcd.setCursor(0, 1);
    lcd.print(eSavedCodePos + 1);
    codePos = eSavedCodePos + 1;
  }
  if (itype > 0 && itype < 6)
  {
    if (codePos < 10)
      pos = 2;
    else
      pos = 3;
    lcd.setCursor(pos, 1);
    lcd.print(Tprot);
    if (Tprot < 10)
      pos += 2;
    else
      pos += 3;
    lcd.setCursor(pos, 1);
    lcd.print(Tclng);
    if (Tclng < 10)
      pos += 2;
    else
      pos += 3;
    lcd.setCursor(pos, 1);
    if (itype != 5)
    {
      lcd.print(F("code..."));
      _delay_ms(1200);
      lcd.setCursor(0, 1);
    }
    if (Tclng > 32)
      lcd.print(long(Tdata >> 32), HEX);
    lcd.print(long(Tdata << 32>>32), HEX);
    lcd.print(pxchar);
  }
  if (itype == 3 || itype == 4)
  {
    lcd.setCursor(15, 1);
    lcd.print("*");
  }
  if (itype == 6)
  {
    lcd.setCursor(0, 1);
    lcd.print(eSavedCodePos + 1);
    lcd.print(F(" -> Main "));
    lcd.print(eMainCodePos + 1);
    lcd.print(pxchar);
  }
  savMenuItem = MenuItem;
  savSubMenuItem = SubMenuItem;
}

void SaveCode(word eeAdress)
// запись кода в EEPROM : адрес EEPROM
{
  EEPROM.put(eeAdress, Tprot);      // 2 байта код протокола
  EEPROM.put(eeAdress + 2, Tclng);  // 2 байта кол-во разрядов посылки
  EEPROM.put(eeAdress + 4, Tdata);  // 8 байт код посылки
}

void ReadCode(word eeAdress)
// чтение кода из EEPROM : адрес EEPROM
{
  EEPROM.get(eeAdress, Tprot);      // 2 байта код протокола
  EEPROM.get(eeAdress + 2, Tclng);  // 2 байта кол-во разрядов посылки
  EEPROM.get(eeAdress + 4, Tdata);  // 8 байт код посылки
}
...продолжение в файлах...
Вложения
Тип файла: zip Sait.zip (1.14 Мб, 56 просмотров)
Тип файла: zip Ischodniki.zip (25.9 Кб, 46 просмотров)
vokinvodas вне форума   Ответить с цитированием
Старый 31.01.2021, 02:23   #2
SoftK
Гость клуба
 
Регистрация: 31.05.2016
Сообщений: 1
По умолчанию Re: Забытый код-граббер на arduino

спасибо.
а как ознакомится со схемой подключения и необходимым набором компонентов ?
SoftK вне форума   Ответить с цитированием
Старый 31.01.2021, 08:10   #3
cennmax
Гость клуба
 
Регистрация: 30.11.2017
Сообщений: 8
По умолчанию Re: Забытый код-граббер на arduino

Привет. Какие библиотеки с этого проекта нужны?
cennmax вне форума   Ответить с цитированием
Старый 01.02.2021, 05:05   #4
DIVER_SANT
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,326
По умолчанию Re: Забытый код-граббер на arduino

Цитата:
Сообщение от SoftK
спасибо.
а как ознакомится со схемой подключения и необходимым набором компонентов ?

Подключение к ардуине описано в начале текста в программе.Приемник и передатчик на 433,92 мгц.Модулей на Али валом
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 11.02.2021, 17:29   #5
DIVER_SANT
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,326
По умолчанию Re: Забытый код-граббер на arduino

Вот либа с которой компилится и запускается скетч
Вложения
Тип файла: zip RCSwitch (7).zip (22.1 Кб, 18 просмотров)
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 05:03. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com