• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

JDY-23

divotech

New member
Есть ли у кого опыт работы с эти модулем? В частности, интересует как читать данные со входов GPIO
 

divotech

New member
У вас не работает google, или яндекс, или youtube?


Видел это единственное видео и эту единственную статью про этот модуль, но там нет информации про чтение данных со входов
 

pvvx

Активный участник сообщества
По поиску у любого продавца этих модулей есть ссылка на PDF.
Но если вы не умеете набрать в google "jdy-23 datasheet" или "jdy-23 at commands", тогда к данному сообщению приложен этот PDF.
Нажмите на картинку "вложения" в низу сообщения и скачайте. Чем просматривать PDF надеюсь знаете...
 

Вложения

divotech

New member
Вам нравится разговаривать таким надменным тоном? Давайте я тоже его включу.
Прочитайте моё первое сообщение, может быть, раза с 4го вы поймёте, что вот именно пункты 6.3 и 6.4 в даташите у меня и вызвали вопросы. И не надо мне из гугл переводчика перевод присылать. Вот он
6.3 APP считывает APP состояния уровня выводов INT в функцию LUID: FFE2 отправляет команду для запроса состояния уровня всех выводов INT (HEX
APP отправляет функции FFE2: модуль ETA1
возвращает статус уровня вывода INT в приложение: E7A2010101 20110101
Описание формата, E7A2 - заголовок данных BY INT 3. PWRCEINT1BINT2 INTAINTS INTOINTY
6.4 Контакт EINT нажат для активной отправки данных в формат APP.
Вывод EINTI отправляет данные в формат APP: FC01010001
Вывод EINT2 отправляет данные в формат APP: FC01010001.
Понятнее от него не становится
 

pvvx

Активный участник сообщества
А что вам непонятно?
Как работает BLE и что такое UUID ? - Тогда вам необходимо сходить на курсы по основам BLE или заняться изучением по документации c https://www.bluetooth.com/, включая поиск разных статей в инет.
 

pvvx

Активный участник сообщества
Ответ на вопрос: “В частности, интересует как читать данные со входов GPIO”:
  • Установить на смартфон с Android программу “nRF connect
  • Запустить программу и на вкладке “Scan” найти ваш модуль и соединиться с модулем.
  • Найти характеристику c 0xFFE1 и включить “notify”. Прочитать значения.
 

divotech

New member
Отправляю FFE1 в терминале. И ничего. Там ответ вообще какой-то должен приходить?
 

pvvx

Активный участник сообщества
Ответ на вопрос: “В частности, интересует как читать данные со входов GPIO” если нет смартфона:
  • Установить на ноутбук или компьютер с Windows программу “Bluetooth LE Explorer
  • Если это дешман-компьютер не имеющий идущий с мамкой BT адаптер, то воткнуть в USB адаптер USB-BT.
  • Запустить программу и на вкладке “Scan” найти ваш модуль и соединиться с модулем.
  • Найти характеристику c 0xFFE1 и включить “notify”. Прочитать значения.
 

pvvx

Активный участник сообщества
Если не смогли купить Windows 10, тогда в комп c Linux или подобие на RPI воткнуть адаптер USB-BT и использовать Gatttool. В ней соединиться с устройством и тыркаться с характеристиками 0xFFE0..0xFFE2.

Если всё-же купили Windows 10, тогда изучаете Web Bluetooth API с примерами и на js пишите программу. Писать js можно прямо в эксплорере...
 

divotech

New member
Я использую Bluetooth USB Terminal для Android. Но суть не в этом
Найти характеристику c 0xFFE1 и включить “notify”. Прочитать значения.
Вот тут что происходит? Просто код FFE1 отправляется на модуль, правильно? И что при этом должно произойти? Прийти какой-то ответ? Или ответ приходит, только когда на вход поступает сигнал?
 

pvvx

Активный участник сообщества
Вот тут что происходит? Просто код FFE1 отправляется на модуль, правильно? И что при этом должно произойти? Прийти какой-то ответ? Или ответ приходит, только когда на вход поступает сигнал?
Ничего подобного не отправляется. Ищется глобальный Service UUID 0xffe0, в нем производится соединение с характеристикой 0xffe1. У неё включается свойство-атрибут "notify". Далее если требуется то соединяетесь и с 0xFFE2 и там управляются пины кодами из таблицы в доке. В какую-то характеристику (0xffe1 или 0xffe2) передаете что написано в PDF - код 0xE7A1.
Свойство "notify" у 0xffe1 включает оповещение, судя по документации, если какой-то EINT:
перевод с китайского:
'EINT PIN-код Нажмите Active, чтобы отправить форматы данных в приложение
EINT1 PIN-код в формат данных приложения: FC01010001
EINT2 PIN-код в формат данных приложения: FC01010001'
 

pvvx

Активный участник сообщества
перевод с китайского:
'Приложение считывает статус уровня INT PIN-код
Приложение отправляет запрос ALL INT PIN-код уровня статуса статуса в функцию UUID: FFE2 (Hex)
Приложение отправляет функцию FFE2: E7A1
(перевод на русский будет типа: в характеристику 0xFFF2 надо записать 2 байта: 0xE7, 0xA1)
Модуль возвращает уровень PIN-кода в состояние приложения: E7A20101010101010101 (перевод на русский будет типа: от какой-то характеристики придет ответ в байтах типа: 0xE7,0xA2,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01)
Описание формата, E7A2 - заголовок данных
Цвет Соответствующий INT PIN-код: PWRCEINT1Eint2int3int4int5int6int7'
 

divotech

New member
перевод с китайского:
'Приложение считывает статус уровня INT PIN-код
Приложение отправляет запрос ALL INT PIN-код уровня статуса статуса в функцию UUID: FFE2 (Hex)
Приложение отправляет функцию FFE2: E7A1
(перевод на русский будет типа: в характеристику 0xFFF2 надо записать 2 байта: 0xE7, 0xA1)
Модуль возвращает уровень PIN-кода в состояние приложения: E7A20101010101010101 (перевод на русский будет типа: от какой-то характеристики придет ответ в байтах типа: 0xE7,0xA2,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01)
Описание формата, E7A2 - заголовок данных
Цвет Соответствующий INT PIN-код: PWRCEINT1Eint2int3int4int5int6int7'
В чём разница между командами E7A1 и E7A2?
 

pvvx

Активный участник сообщества
Давно бы уже все комбинации проверили в “nRF connect”. Там нет ничего сложного и модуль ваш не умрет.
 

divotech

New member
Давно бы уже все комбинации проверили в “nRF connect”. Там нет ничего сложного и модуль ваш не умрет.
Больше 40млн. комбинаций не так быстро вручную перебрать. E7A2 это тоже команда.
E7 A1 присылает ответ E7 A1 00 00 00 00 00 00 00
E7 A2
присылает ответ E7 A2 01 01 01 01 01 01 01 01
 
Сверху Снизу