Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

7 Commits

Repository files navigation

CashCode-CCNET: Тестовый проект для работы с купюроприёмником/валидатором по протоколу CCNET

Описание

Этот проект предназначен для тестирования работы купюроприёмника по протоколу CCNET с использованием Arduino и ESP32. В репозитории представлены два скетча:

  • arduino/arduino.ino — для Arduino (Uno/Nano и др.)
  • esp32/esp32.ino — для ESP32

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

  • Реальное подключение:Реальное подключение
  • Схематичное подключение:Схема подключения

Протокол обмена (CCNET)

Для управления купюроприёмником используются следующие команды:

uint8_t CashCodeReset[] = {0x02, 0x03, 0x06, 0x30, 0x41, 0xB3};
uint8_t CashCodeAck[] = {0x02, 0x03, 0x06, 0x00, 0xC2, 0x82};
uint8_t CashCodePoll[] = {0x02, 0x03, 0x06, 0x33, 0xDA, 0x81};
uint8_t CashCodeEnable[] = {0x02, 0x03, 0x0C, 0x34, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x66, 0xC1};

Расшифровка байтов команд

НазначениеПример значенияОписание
1Start byte0x02Начало пакета
2Address0x03Адрес устройства (обычно 0x03 для CCNET)
3Length0x06/0x0CДлина пакета (включая команду, данные, CRC)
4Command0x30/0x00/0x33/0x34Код команды (Reset, Ack, Poll, Enable)
5+Data/CRC...Данные команды или часть CRC
nCRC...Контрольная сумма пакета

Примеры:

  • CashCodeReset: 0x02 (Start), 0x03 (Addr), 0x06 (Len), 0x30 (Reset), 0x41, 0xB3 (CRC)
  • CashCodeAck: 0x02, 0x03, 0x06, 0x00 (Ack), 0xC2, 0x82 (CRC)
  • CashCodePoll: 0x02, 0x03, 0x06, 0x33 (Poll), 0xDA, 0x81 (CRC)
  • CashCodeEnable: 0x02, 0x03, 0x0C, 0x34 (Enable), 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x66, 0xC1 (данные + CRC)

Примечание: CRC (контрольная сумма) рассчитывается по алгоритму, описанному в документации на CCNET.

Таблица ошибок (индикация светодиодами)

Кол-во миганийОписание неисправностиКритические ошибки, требующие вмешательства
1 красный на чёрномКассета извлечена из купюроприёмника
3 красный на чёрномКассета заполнена
4 красный на чёрномНеисправность механизма укладки
5 красный на чёрномНеисправность ёмкостных датчиков
6 красный на чёрномНеисправность оптических датчиков
7 красный на чёрномНеисправность магнитных датчиков
8 красный на чёрномНеисправность двигателя транспортировки (таймаут)
10 красный на чёрномНеисправность механизма выравнивания
11 красный на чёрномКупюропровод не пуст (зажата купюра)
12 красный на чёрномОшибка возврата купюры. Купюра в приёмном слоте кассеты
1 зелёный на красномОшибка CRC COM порта
2 зелёный на красномВнутренняя ошибка CRC
3 зелёный на красномНеправильный формат CCMS
4 зелёный на красномCCMS отсутствует
5 зелёный на красномНеправильный тип CCMS
6 зелёный на красномОшибка загрузки

Примечание: Если подать питание нестабильное, ниже 12 вольт или менее 2 ампер, вероятно купюроприёмник не будет работать и будет постоянно мигать красным.


Таблица кодов ошибок

КодНазвание/Описание (англ.)Описание (рус.)Критические ошибки, требующие вмешательства
0x10Defective MotorНеисправность двигателя
0x11Sensor ProblemПроблема с датчиком
0x12Bill JamЗастревание купюры
0x13Stacker OpenКассета открыта
0x14Stacker FullКассета заполнена
0x15Stacker ProblemПроблема с кассетой
0x1CCheatedПопытка мошенничества
0x1DPauseПауза
0x1EGeneric FailureОбщая ошибка
0x1FInvalid CommandНеверная команда
0x20Escrow PositionКупюра в позиции эскроу
0x30Power UpВключение питания
0x41Power Up with Bill in ValidatorВключение с купюрой внутри
0x42Power Up with Bill in StackerВключение с купюрой в кассете
0x43Power Up with Bill in EscrowВключение с купюрой в эскроу
0x44Stacker RemovedКассета извлечена
0x45Stacker InsertedКассета вставлена
0x46Drop Cassette Out of PositionКассета не на месте
0x47Drop Cassette JammedКассета заклинила
0x48Drop Cassette FullКассета заполнена
0x49Drop Cassette Sensor ErrorОшибка датчика кассеты

Примечание: В зависимости от модели и прошивки купюроприёмника, список кодов может отличаться. Для модели MSM-3024 полный список приведён выше.

Использование

  1. Залейте соответствующий скетч на Arduino или ESP32.
  2. Подключите купюроприёмник согласно схеме (см. картинки выше).
  3. Приёмник будет инициализирован, включён и начнёт опрашиваться.

Документация

  • MSM-Manual_P1_1.pdf — официальный мануал купюроприёмника
  • MSM-3024_C.pdf — официальный мануал купюроприёмника

Вопросы и предложения: Пишите в issues.

About

CashCode-CCNET: Demo project for working with a bill acceptor using the CCNET protocol. Arduino/ESP32/Python examples.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages