Этот пример демонстрирует использование платы ESP32-Korvo-DU1906 с платформой DuHome AIOT Voice Platform (度家-AIOT语音平台). Плата поддерживает следующие функции:
Плата вместе с платформой предоставляют простой способ разработки умной колонки или устройства AIOT.
Вы можете приобрести эту плату на Taobao.ESP32-Korvo-DU1906
**Примечание**: Этот пример поддерживает только версию платы с флеш-памятью 16М! Если ваша плата имеет флеш-память 8М, пожалуйста, свяжитесь с нами за помощью.
Этот софт предназначен для серии плат, оборудованных DU1906 DSP, таких как:
CUPID board
ESP32-Korvo-DU1906 board
ESP32-DU1906 mini board
.Вы можете легко настроить информацию о плате следующим образом:
make menuconfig
# Перейти к:
# Подсказка: ESP32_KORVO_DU1906
# │ Расположение:
# │ -> Пользовательская аудиоплата
# Будет перечислено все поддерживаемые платы, вы можете выбрать свою плату сейчас.
Этот туториал использует ESP32-Korvo-DU1906 board
в качестве примера.
Чтобы скомпилировать с ESP-IDF вам нужно установить следующие пакеты:
sudo yum install git wget make ncurses-devel flex bison gperf python pyserial
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial
Инструментарий ESP32 для Linux доступен для загрузки с сайта Espressif:
~/esp
:mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
~/esp/xtensa-esp32-elf/
.Чтобы использовать его, вам нужно будет обновить переменную окружения PATH
в файле ~/.profile
. Чтобы сделать xtensa-esp32-elf
доступным для всех сессий терминала, добавьте следующую строку в ваш файл ~/.profile
:
export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
В качестве альтернативы вы можете создать псевдоним для указанной команды. Таким образом, вы сможете получить доступ к инструментарию только тогда, когда это необходимо. Для этого добавьте другую строку в ваш файл ~/.profile
:
alias get_esp32='export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"'
Тогда, когда вам понадобится инструментарий, вы можете ввести get_esp32
в командной строке, и инструментарий будет добавлен в ваш PATH
.Примечание:
Если у вас /bin/bash
установлен как входная оболочка, и существуют как .bash_profile
, так и .profile
, то обновите .bash_profile
вместо этого.
.profile
действительными. Выполните следующую команду, чтобы проверить, правильно ли настроена переменная PATH
:printenv PATH
Вы ищете похожий результат, содержащий путь к инструментарию в конце отображаемой строки:
$ printenv PATH
/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/user-name/esp/xtensa-esp32-elf/bin
Вместо /home/user-name
должен быть указан путь к домашней директории, соответствующий вашей установке.
С некоторыми дистрибутивами Linux вы можете получить сообщение об ошибке Не удалось открыть порт /dev/ttyUSB0
при прошивке ESP32. Это можно исправить, добавив текущего пользователя в группу dialout.
Чтобы запустить предварительно скомпилированный gdb (xtensa-esp32-elf-gdb) в Arch Linux, требуется ncurses 5, но Arch использует ncurses 6.
Компилируемые в обратную совместимость библиотеки доступны в AUR для native и lib32 конфигураций:- https://aur.archlinux.org/packages/ncurses5-compat-libs/
После выполнения указанных выше шагов вы можете использовать инструментарий:
# проверьте, что инструментарий работает
xtensa-esp32-elf-gcc -v
# установите необходимые переменные окружения
export ADF_PATH=/путь/к/dul1906_firmware/dul1906/esp-adf
export IDF_PATH=/путь/к/dul1906_firmware/dul1906/esp-adf/esp-idf
Этот пример разработан на основе ADF и IDF, которые включены в этот пакет. Поэтому вам не нужно самостоятельно загружать их.
Пожалуйста, обратитесь к руководству по быстрому началу работы с ду-жом AIOT и получите код завода (fc), ключ продукта (pk), ключ доступа (ak) и секретный ключ (sk), которые затем следует сохранить в файле profiles/profile.bin
.
Не требуется компилировать проект, достаточно использовать прошивку из этого примера.
Адреса загрузки прошивки указаны в таблице ниже.
Адрес флэш-памяти | Путь к файлу bin |
---|---|
0x1000 | bootloader.bin |
0x8000 | partitions.bin |
0xD000 | ota_data_initial.bin |
0x10000 | korvo_du1906.bin |
0x570000 | DU1906_slave_v1.5.5.D.bin |
0xB10000 | profile.bin |
0xB55000 | audio_tone.bin |
0xB51000 | nvs_blank.bin |
Примечание: замените /dev/ttyUSB0 на ваше реальное имя последовательного порта, например, в MacOS это будет /dev/cu.SLAB_USBtoUART
python $IDF_PATH/components/esptool_py/esptool/esptool.py --chip esp32 \
--port /dev/ttyUSB0 --baud 921600 \
--before default_reset \
--after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect \
0x1000 ./firmware/pre_build/bootloader.bin \
0x8000 ./firmware/pre_build/partitions.bin \
0xd000 ./firmware/pre_build/ota_data_initial.bin \
0x10000 ./firmware/pre_build/korvo_du1906.bin \
0x610000 ./firmware/DU1906_slave_v1.5.5.D.bin \
0xb55000 ./firmware/pre_build/audio_tone.bin \
0xb10000 ./profiles/profile.bin \
0xb51000 ./firmware/pre_build/nvs_blank.bin
шаг 2: Выберите режим загрузки (Режим разработчика)
шаг 3: Выберите микросхему (ESP32)
шаг 4: Откройте директорию прошивки и заполните адрес в соответствии с вышеуказанной таблицей адресов прошивки.
шаг 5: Нажмите кнопку START
на графическом интерфейсе для загрузки прошивки.
После загрузки прошивки нажмите кнопку [RST]
, и на последующем этапе будут отображены логи в последовательном порту.
шаг 1: Скачайте и установите приложение Blufi на мобильный телефон, приложение для Android, приложение для iOS
шаг 2: Включите Bluetooth и откройте приложение Blufi на мобильном телефоне, проведите поиск устройства.
шаг 3: Нажмите кнопку [FUNC]
на устройстве в течение 4 секунд, устройство перейдет в режим настройки Wi-Fi и воспроизведет звуковое сообщение "请点击确认开始配网".
шаг 4: Обновите список поиска, в нем появится устройство с названием "BLUFI_DEVICE", нажмите на него и выберите [连接]
на телефоне.
шаг 5: После подключения к устройству, нажмите [Настройка сети]
, введите ssid и пароль Wi-Fi для подключения.
шаг 6: Нажмите [Подтвердить]
, устройство получит информацию о Wi-Fi и подключится к сети. Если подключение к Wi-Fi прошло успешно, приложение получит строку "hello world", а устройство воспроизведет звуковое сообщение "Сеть подключена успешно".
Примечание: Если настройка не удалась, проверьте вышеуказанный процесс и попробуйте снова. Будьте внимательны и терпеливы!
Примечание: Пожалуйста, убедитесь, что на плате вставлен хотя бы один динамик.
После настройки информации Wi-Fi и подключения к сети, вы можете начать разговор с голосовым словом активации "xiaodu xiaodu", например, следующие поддерживаемые команды:
Нажмите кнопку [MUTE]
на 3-5 секунд, чтобы войти в режим Bluetooth, откройте Bluetooth на вашем телефоне и подключитесь к устройству с названием "ESP_BT_COEX_DEV", после чего вы сможете воспроизводить музыку по Bluetooth на устройстве.#### 2.5.3.3 Использование кнопок
Название кнопки | Кратковременное нажатие | Долгое нажатие |
---|---|---|
VOL + | Увеличение громкости | Н/Д |
VOL - | Уменьшение громкости | Н/Д |
MUTE | Вход в режим глушения | Вход/Выход в режим Bluetooth |
FUNC | Н/Д | Настройка Wi-Fi |
После опыта пришло время собрать пример! Вы также можете добавить некоторые функции самостоятельно и затем собрать проект.
Вы можете использовать GNU make
для сборки проекта:
cd /path/to/dul1906_firmware/dul1906/
make clean
make menuconfig
make -j4 all
Загрузите приложение с помощью make
make flash monitor
Кроме того, ESP32-Korvo-DU1906 имеет три дополнительных файла bin: ./firmware/DU1906_slave_v1.5.5.D.bin
, ./profiles/profile.bin
и ./tone/audio_tone.bin
. Если вы хотите очистить все пользовательские данные, загрузите также nvs_blank.bin
.
python $ADF_PATH/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 \
--port PORT --baud 921600 \
--before default_reset \
--after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect \
0x610000 ./firmware/DU1906_slave_v1.5.5.D.bin \
0xb10000 ./profiles/profile.bin \
0xb55000 ./tone/audio_tone.bin
Адреса загрузки прошивки указаны в таблице выше в разделе jumpstart.
Пожалуйста, обратитесь к разделу jumpstart.
Поддерживается обновление приложения, файлов тона и DSP bin. Эти bin-файлы могут быть сохранены на HTTP-сервере, например, "https://github.com/espressif/esp-adf/raw/master/examples/korvo_du1906/firmware/app.bin". Проверка версий bin-файлов производится после каждого запуска. Дополнительная информация об OTA доступна в компоненте bdsc_ota
.### 2.6.5 Генерация аудио bin
вы получите файл audio_tone.bin, используя следующую команду:
python $ADF_PATH/tools/audio_tone/mk_audio_tone.py -r tone/ -f components/audio_flash_tone
```## 2.7 Пример вывода
После загрузки должны быть выведены следующие журналы.
```c
I (35) загрузка: время компиляции 15:56:22
I (35) загрузка: Включение раннего источника энтропии для RNG...
I (35) режим_qio: Включение по умолчанию режима чтения/записи для flash-чипа QIO
I (36) загрузка: Скорость SPI: 80MHz
I (37) загрузка: Режим SPI: QIO
I (37) загрузка: Размер flash-памяти: 8MB
I (38) загрузка: Таблица разделов:
I (38) загрузка: ## Название Использование Тип ST Смещение Длина
I (39) загрузка: 0 nvs Данные Wi-Fi 01 02 00009000 00004000
I (40) загрузка: 1 otadata Данные OTA 01 00 0000d000 00002000
I (41) загрузка: 2 phy_init Данные RF 01 01 0000f000 00001000
I (42) загрузка: 3 ota_0 Приложение OTA 00 10 00010000 00280000
I (43) загрузка: 4 ota_1 Приложение OTA 00 11 00290000 00280000
I (44) загрузка: 5 dsp_bin Неизвестные данные 01 24 00542000 00280000
I (45) загрузка: 6 profile Неизвестные данные 01 29 007c2000 00001000
I (46) загрузка: 7 flash_tone Неизвестные данные 01 27 007c3000 00020000
I (47) загрузка: Конец таблицы разделов
I (47) загрузка: Нет образа завода, пробую OTA 0
I (48) esp_image: сегмент 0: paddr=0x00010020 vaddr=0x3f400020 size=0x9a5f8 (632312) map
I (208) esp_image: сегмент 1: paddr=0x000aa620 vaddr=0x3ffbdb60 size=0x04bc8 ( 19400) load
I (214) esp_image: сегмент 2: paddr=0x000af1f0 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _WindowOverflow4 в /Users/maojianxin/duros/esp-adf-internal-dev/esp-idf/components/freertos/xtensa_vectors.S:1779
```I (214) esp_image: сегмент 3: paddr=0x000af5f8 vaddr=0x40080400 размер=0x00a18 ( 2584) загрузка
I (216) esp_image: сегмент 4: paddr=0x000b0018 vaddr=0x400d0018 размер=0x171888 (1513608) отображение
0x400d0018: _stext в ??:?I (597) esp_image: сегмент 5: paddr=0x002218a8 vaddr=0x40080e18 размер=0x1a27c (107132) загрузка
I (646) boot: Загрузка приложения из раздела с смещением 0x10000
I (662) boot: Установка фактического ota_seq=1 в otadata[0]
I (662) boot: Отключение раннего источника энтропии для RNG...
I (662) psram: Это чип ESP32-D0WD
I (663) spiram: Найдено устройство SPI RAM на 64 Мбит
I (663) spiram: Режим SPI RAM: флэш 80Мб срам 80Мб
I (664) spiram: PSRAM инициализирована, кэш находится в режиме низкого/высокого (2-ядра).
I (665) cpu_start: Процессор Pro cpu запущен.
I (665) cpu_start: Информация о приложении:
I (666) cpu_start: Время компиляции: 18 июня 2020 года 15:56:19
I (666) cpu_start: SHA256 файла ELF: 3a84593410f44598...
I (667) cpu_start: ESP-IDF: v3.3.2-108-gbd1b1ff20-dirty
I (668) cpu_start: Запуск процессора app, точка входа 0x400814d0
0x400814d0: call_start_cpu1 в /Users/maojianxin/duros/esp-adf-internal-dev/esp-idf/components/esp32/cpu_start.c:268I (0) cpu_start: Процессор app запущен.
I (1148) spiram: Проверка памяти SPI SRAM выполнена успешно.
I (1150) heap_init: Инициализация. Доступная RAM для динамического выделения:
I (1151) heap_init: От 3FFAFF10 длиной 000000F0 (0 KiB): DRAM
I (1151) heap_init: От 3FFB6388 длиной 00001C78 (7 KiB): DRAM
I (1151) heap_init: От 3FFB9A20 длиной 00004108 (16 KiB): DRAM
I (1152) heap_init: От 3FFBDB5C длиной 00000004 (0 KiB): DRAM
I (1153) heap_init: От 3FFC5268 длиной 0001AD98 (107 KiB): DRAM
I (1154) heap_init: От 3FFE0440 длиной 00003AE0 (14 KiB): D/IRAM
I (1155) heap_init: От 3FFE4350 длиной 0001BCB0 (111 KiB): D/IRAM
I (1155) heap_init: От 4009B094 длиной 00004F6C (19 KiB): IRAM
I (1156) cpu_start: Запуск пользовательского кода на процессоре Pro.
I (1157) spiram: Добавление пула 4057K внешней памяти SPI к менеджеру памяти.
I (48) esp_core_dump_common: Инициализация дампа ядра в UART.
E (53) esp_core_dump_common: Не найден раздел для дампа ядра!
I (53) cpu_start: Запуск планировщика на процессоре PRO.
I (0) cpu_start: Запуск планировщика на процессоре APP.
I (54) spiram: Выделение пула 18K внутренней памяти для DMA/внутренних выделений.
I (77) AUDIO_THREAD: Задача esp_periph выделяет стек на внешней памяти.
I (77) SDCARD: Попытка монтирования с базовым путем=/sdcard.
I (148) SDCARD: CID имя SC16G!
I (588) wifi: Задача драйвера Wi-Fi: 3ffcf7b4, приоритет: 23, стек: 3584, ядро: 0.
I (588) system_api: Базовый MAC-адрес не установлен, чтение по умолчанию базового MAC-адреса из блока BLK0 EFUSE.
I (588) system_api: Базовый MAC-адрес не установлен, чтение по умолчанию базового MAC-адреса из блока BLK0 EFUSE.
I (604) wifi: Версия firmware Wi-Fi: 5f8804c.
I (605) wifi: Настройка NVS flash: включена.
I (605) wifi: Настройка nano форматирования: отключена.I (605) wifi:Инициализация числа динамических буферов передачи: 32
I (605) wifi:Инициализация числа динамических буферов приема данных: 512
I (606) wifi:Инициализация числа динамических буферов приема управления: 512
I (606) wifi:Инициализация числа коротких динамических буферов приема управления: 32
I (607) wifi:Инициализация числа статических буферов передачи: 8
I (608) wifi:Инициализация размера статических буферов приема: 1600
I (608) wifi:Инициализация числа статических буферов приема: 16
I (608) wifi:Инициализация числа динамических буферов приема: 512
I (784) phy: Версия phy: 4180, cb3948e, 12 Сентября 2019, 16:39:13, 0, 0
I (785) wifi:Режим: стационарный (fc:f5:c4:37:c1:10)
I (1587) DU1910_APP: Модуль ESP_BLUFI для настройки Wi-Fi выбран
I (1587) BLUFI_CONFIG: Установка пользовательских данных blufi: hello world, длина: 12
I (1591) WIFI_SERV: Подключение к Wi-Fi ssid: steven, пароль: esp123456
I (1729) wifi:новый: <6,2>, старый: <1,0>, ap: <255,255>, sta: <6,2>, профиль: 1
I (1730) wifi:состояние: init -> auth (b0)
I (1738) wifi:состояние: auth -> assoc (0)
I (1748) wifi:состояние: assoc -> run (10)
I (1775) wifi:соединение с steven, aid = 2, канал 6, 40D, bssid = b0:95:8e:17:94:a5
I (1775) wifi:тип безопасности: 4, физика: bgn, rssi: -32
I (1839) wifi:pm start, тип: 1
I (1839) wifi:Интервал пульса AP = 102400 мс, DTIM период = 1
I (2583) event:IP станции: 192.168.1.108, маска: 255.255.255.0, шлюз: 192.168.1.1
I (2584) WIFI_SERV:Получено IP: 192.168.1.108
W (2584) WIFI_SERV:Тип состояния: 2, pdata: 0x0, длина: 0
I (2604) DU1910_APP: PERIPH_WIFI_CONNECTED [64]
I (2605) SNTP_INIT: ------------Инициализация SNTP
I (2606) APP_OTA_UPGRADE: Создание OTA-сервиса
I (2606) APP_OTA_UPGRADE: Запуск OTA-сервисаI (2606) OTA_DEFAULT: URI обновления данных file://sdcard/flash_tone.bin
I (4381) FATFS_STREAM: Размер файла 0 байт, позиция: 0
E (4381) FATFS_STREAM: Не удалось открыть файл /sdcard/flash_tone.bin
E (4382) AUDIO_ELEMENT: [file] AEL_STATUS_ERROR_OPEN, -1
E (4382) OTA_DEFAULT: Не удалось инициализировать поток чтения
E (4383) OTA_SERVICE: Не удалось выполнить процесс OTA-сервиса
E (4384) APP_OTA_UPGRADE: Список ID: 0, OTA не удалась
I (4384) OTA_DEFAULT: URI обновления данных file://sdcard/profile.bin
I (4386) FATFS_STREAM: Размер файла 112 байт, позиция: 0
I (4387) APP_OTA_UPGRADE: Найден файл OTA на SD-карте, URI: /sdcard/profile.bin
I (4435) OTA_DEFAULT: write_offset 0, r_size 112
W (4436) FATFS_STREAM: Больше данных нет, ret: 0
I (4436) OTA_DEFAULT: Успешное обновление профиля раздела
W (4436) AUDIO_ELEMENT: [file] Элемент не создан при AUDIO_ELEMENT_TERMINATE
I (4438) APP_OTA_UPGRADE: Список ID: 1, OTA удалась
E (4438) esp_https_ota: Серверный сертификат не найден в конфигурации esp_http_client
E (4439) OTA_DEFAULT: Начало ESP HTTPS OTA не удалась
E (4440) OTA_SERVICE: Не удалось выполнить процесс OTA-сервиса
E (4440) APP_OTA_UPGRADE: Список ID: 2, OTA не удалась
W (4441) OTA_SERVICE: OTA завершена!
W (4442) APP_OTA_UPGRADE: Обновление завершено, пожалуйста, проверьте результат OTA
I (4443) AUDIO_THREAD: Задача input_key_service выделила стек на внешней памяти
I (4444) TAS5805M: Включение CODEC с GPIO 12
I (4444) gpio: GPIO[12]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 1| Intr:0
I (4451) AUDIO_THREAD: Задача button_task выделила стек на внешней памяти
I (5410) TAS5805M: tas5805m_transmit_registers: запись 1677 регистра завершена
W (5411) TAS5805M: громкость = 0x44
W (5411) I2C_BUS: i2c_bus_create:57: I2C шина уже создана, [порт:0]W (5415) I2C_BUS: i2c_bus_create:57: I2C шина уже создана, [порт:0]
I (5418) AUDIO_HAL: Режим CODEC = 3, Ctrl:1
I (5418) APP_BT_INIT: Инициализация модуля Bluetooth
I (5418) BTDM_INIT: Версия компиляции контроллера Bluetooth [3cd70f2]
I (5419) system_api: Основной MAC-адрес не установлен, чтение по умолчанию из блока BLK0 EFUSEI (5758) BLE_GATTS: инициализация модуля ble gatts
I (5758) APP_BT_INIT: Запуск периферий Bluetooth
I (5759) AUDIO_THREAD: Задача media_task выделила стек в внешней памяти
I (5759) ESP_AUDIO_TASK: media_ctrl_task выполняется. . . , 0x3f81d098----------------------------- ESP Audio Platform -----------------------------
| |
| ESP_AUDIO-v1. 6. 2 |
| Дата компиляции: Июн 16 2020-21:20:16 |
------------------------------------------------------------------------------
I (5764) BLE_GATTS: создание атрибутной таблицы завершено успешно, количество хэндлов = 8
I (5765) BT_HELPER: ap_helper_a2dp_handle_set, 42, 0x0x3f81f114, 0x3ffc4940
I (5767) MP3_DECODER: Инициализация MP3
I (5768) ESP_DECODER: esp_decoder_init, размер стека 5120
I (5770) I2S: Информация о выделении памяти для DMA, datalen=blocksize=1200, dma_buf_count=3
I (5770) BLE_GATTS: SERVICE_START_EVT, статус 0, service_handle 40
I (5772) I2S: APLL: Требуемая частота: 48000, фактическая частота: 47999. 961, BITS: 16, CLKM: 1, BCK_M: 8, MCLK: 12287990. 000, SCLK: 1535998. 750000, diva: 1, divb: 0
I (5775) TAS5805M: громкость = 0x4a
I (5775) APP_PLAYER_INIT: Функция: setup_app_esp_audio_instance, Строка: 157, MEM Общее: 4163856 байт, Интер: 131768 байт, Драм: 111472 байт
I (5776) ИНИЦИАЛИЗАЦИЯ_ИГРОКА: экземпляр esp_audio:0x3f81d098
I (5777) АУДИО_ПОТОК: задача audio_manager_task выделила стек на внешней памятиI (5778) ПОМОЩНИК_СД: инициализация default_sdcard_player
I (5778) ПОМОЩНИК_СД: инициализация default_sdcard_player создание плейлиста
I (5779) ПОМОЩНИК_НЕОБРАБОТАННЫХ_ДАННЫХ: инициализация default_raw_player :106, que:0x3ffe50d0
W (5781) TAS5805M: громкость = 0x58
I (5781) BDSC_ДВИГАТЕЛЬ: версия приложения fdc453bfdba43e38fa5b7728e72442aa2e5e2103
I (5782) ИНИЦИАЛИЗАЦИЯ_SNTП: ------------Инициализация SNTП
I (5787) ПРОФИЛЬ: 56: тип[0x1]
I (5788) ПРОФИЛЬ: 57: подтип[0x29]
I (5788) ПРОФИЛЬ: 58: адрес:0x7c2000
I (5788) ПРОФИЛЬ: 59: размер:0x1000
I (5788) ПРОФИЛЬ: 60: метка:профиль
I (5799) ПРОФИЛЬ: fc = ваш_fc
I (5799) ПРОФИЛЬ: pk = ваш_pk
I (5799) ПРОФИЛЬ: ak = ваш_ak
I (5799) ПРОФИЛЬ: sk = ваш_sk
I (5800) ПРОФИЛЬ: cuid = ваш_cuid
I (5801) ПРОФИЛЬ: mqtt_broker =
I (5801) ПРОФИЛЬ: mqtt_username =
I (5802) ПРОФИЛЬ: mqtt_password =
I (5802) ПРОФИЛЬ: mqtt_cid =
==> сгенерировать_автентификацию_pam
текущее время: 1592467274
==> сгенерировать_автентификацию_sig_needfree
sig: 9c8288d0e2cf59cde94ce384a211e99a
pam_string: {"fc":"ваш_fc","pk":"ваш_pk","ak":"ваш_ak","time_stamp":26541121,"signature":"9c8288d0e2cf59cde94ce384a211e99a"}
I (5806) ЗАДАЧА_АВТОРИЗАЦИИ: тестовый запрос: POST /v1/manage/mqtt HTTP/1. 0
Host: smarthome. baidubce. com
User-Agent: esp32
Content-Type: application/json
Content-Length: 130{"fc":"ваш_fc","pk":"ваш_pk","ak":"ваш_ak","time_stamp":26541121,"signature":"9c8288d0e2cf59cde94ce384a211e99a"}
I (6695) HTTP_TASK: Подключение установлено. . .
I (6696) HTTP_TASK: 266 байт записано
I (6697) HTTP_TASK: Чтение HTTP-ответа. . .
I (6948) HTTP_TASK: 196 байт прочитано
HTTP/1. 0 200 OK
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Date: Thu, 18 Jun 2020 08:01:15 GMT
Server: BWS
X-Bce-Request-Id: 50cbd47c-6f13-44dc-a2cb-a83ceb4bbb2aI (6950) HTTP_TASK: 193 байта прочитано
{"broker":"azsgqzj.iot.gz.baidubce.com","user":"thingidp@azsgqzj|cabcaad9358dd1623427701be534f578|0|MD5","pass":"d57ce60bed6a3243fc12c0cd7dc30906","clientID":"cabcaad9358dd1623427701be534f578"}I (6952) HTTP_TASK: соединение закрыто
I (6957) AUTH_TASK: получено тело: {"broker":"azsgqzj.iot.gz.baidubce.com","user":"thingidp@azsgqzj|cabcaad9358dd1623427701be534f578|0|MD5","pass":"d57ce60bed6a3243fc12c0cd7dc30906","clientID":"cabcaad9358dd1623427701be534f578"}
I (6958) BDSC_ENGINE: результат аутентификации: broker: azsgqzj.iot.gz.baidubce.com, clientID: cabcaad9358dd1623427701be534f578, username: thingidp@azsgqzj|cabcaad9358dd1623427701be534f578|0|MD5, pwd: d57ce60bed6a3243fc12c0cd7dc30906I (7006) BDSC_ENGINE: профиль сохранен успешно
I (7007) gpio: GPIO[27]| Входной режим: 0| Выходной режим: 1| Открытый дренаж: 0| Включение резистора: 0| Выключение резистора: 0| Триггер: 0
I (7007) ESP32_GPIO_DRIVER: Инициализация GPIO завершена успешно.
I (7008) dsp_download_imp: esp32_spi_init. . .
I (7009) ESP32_SPI_DRIVER: Инициализация SPI завершена успешно, частота тактового сигнала 16МГц, режим 0.
I (7010) bds_connection:[bds_connection_create]: вход
I (7012) gpio: GPIO[38]| Входной режим: 1| Выходной режим: 0| Открытый дренаж: 0| Включение резистора: 1| Выключение резистора: 0| Триггер: 1
E (7012) gpio: gpio_install_isr_service(412): сервис ISR GPIO уже установлен
esp32_intr_gpio_init здесь.
I (7013) wakeup_hal: esp32_intr_gpio_init, ret:0
I (7014) GEN_PAM: ==> generate_dcs_pam
I (7015) connect_strategy:[set_params]: настройка параметров подключения
I (7016) client_adapter:[bdsc_adapter_start]: bdsc_adapter_start
I (7016) client_adapter:[bdsc_adapter_start]: загрузка DSP. . .
GPIO_DSP_RST в высоком состоянии.
I (7227) BDDSP_SPI_DRIVER: bddsp_load_bin_slave: вход. . .
I (7227) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:5ff60000 src:60000000 хранилище src:00000240 длина:131072.
I (7227) BDDSP_SPI_DRIVER: индекс: 0 общее: 8.md5:2675DC9799DD5E211B3EC04E78AB10A3.
I (7920) BDDSP_SPI_DRIVER: время ожидания md5 78.
I (7990) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:5ff80000 src:60000000 хранилище src:00020240 длина:507904.
I (7990) BDDSP_SPI_DRIVER: индекс: 1 общее: 8.
md5:78B4858292EAB00224440192FF79569E.
I (10416) BDDSP_SPI_DRIVER: время ожидания md5 304.
I (10656) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:60050000 src:60050000 хранилище src:0009c240 длина:536576.
I (10656) BDDSP_SPI_DRIVER: индекс: 2 общее: 8.
md5:4DB293568E4BE8AA442EAF0F0F529F08.
I (13246) BDDSP_SPI_DRIVER: время ожидания md5 321.
I (13496) BDDSP_SPI_DRIVER: тип: aa, загрузка dst:5ff60000 src:50000000 хранилище src:0011f240 длина:16.
I (13496) BDDSP_SPI_DRIVER: индекс: 3 общее: 8.
I (13497) BDDSP_SPI_DRIVER: адрес запуска ядра: 0x5ff60000 0x50000000
I (13498) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:5ff60000 src:a0000000 хранилище src:0011f250 длина:131072.
I (13499) BDDSP_SPI_DRIVER: индекс: 4 общее: 8.
md5:4EC0706C8D6A17D6A5F5589C2CF51121.
I (14141) BDDSP_SPI_DRIVER: md5 время ожидания 78.
I (14141) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:5ff80000 src:a0000000 хранилище src:0013f250 длина:507904.
I (14142) BDDSP_SPI_DRIVER: индекс: 5 общее: 8.
md5:CA47B800EE4C95967A87328DAB12C364.
I (16616) BDDSP_SPI_DRIVER: md5 время ожидания 304.
I (16616) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:a0000000 src:a0000000 хранилище src:001bb250 длина:487424.
I (16617) BDDSP_SPI_DRIVER: индекс: 6 общее: 8.
md5:80CA6C2A586F552A7BA1203E0BC45281.
I (19030) BDDSP_SPI_DRIVER: md5 время ожидания 292.
I (19030) BDDSP_SPI_DRIVER: тип: 55, загрузка dst:60010000 src:60010000 хранилище src:00232250 длина:189264.
I (19031) BDDSP_SPI_DRIVER: индекс: 7 общее: 8.
md5:FB5B58F142826F181F8C8BB62CA8F322.
I (19947) BDDSP_SPI_DRIVER: md5 время ожидания 113.
I (19947) BDDSP_SPI_DRIVER: тип: aa, загрузка dst:5ff60000 src:50000000 хранилище src:002605a0 длина:16.
I (19948) BDDSP_SPI_DRIVER: индекс: 8 общее: 8.I (19948) BDDSP_SPI_DRIVER: адрес загрузки core1: 0x5ff60000 0x50000000
I (19949) BDDSP_SPI_DRIVER: Загрузка DSP bins выполнена успешно.
I (19950) dsp_download_imp: проверка состояния DSP перед
I (19958) dsp_download_imp: проверка состояния DSP завершена: 0
I (19958) BDDSP_SPI_DRIVER: <bddsp_get_dsp_version>Версия DSP: 1.4.0C
I (19958) client_adapter:[bdsc_adapter_start]: результат загрузки DSP: 0
E (19959) BDSC_ENGINE: !!! Неизвестное событие 7000 !!!
I (19960) client_adapter:[bdsc_adapter_send]: отправка ключа=700, длина=15, содержимое=0x3ffe7e04
I (19961) client_adapter:[bdsc_adapter_send]: отправка ключа=500, длина=0, содержимое=0x0
I (19961) BDDSP_SPI_DRIVER: запись параметра режима ASR
I (19962) client_adapter:[bdsc_adapter_send]: отправка ключа=200, длина=0, содержимое=0x0
I (19963) nqe_result:[update_dsp_current_audio_mode]: результат записи режима ASR: 0
I (19964) MQTT_TASK: mqtt_app_start ==>
clientid: cabcaad9358dd1623427701be534f578, sub: $iot/cabcaad9358dd1623427701be534f578/user/your_fc/your_pk/your_ak/down, pub: $iot/cabcaad9358dd1623427701be534f578/user/your_fc/your_pk/your_ak/up
I (19965) bds_base_online:[bds_start_net_env]: начало подключения
I (19968) net_machine:[machine_connect]: +++
I (19968) MQTT_TASK: Другое событие id:7
I (19969) disconnected_state:[state_connect]: +++
I (19970) strategy_mbedtls:[tls_init]: Инициализация генератора случайных чисел
I (19971) net_machine:[switch_state]: +++ 2
I (19972) net_machine:[switch_state]: ----
I (19972) disconnected_state:[state_connect]: ----
I (19973) net_machine:[machine_connect]: ---
I (19974) client_wakeup:[bdsc_wakeup_start]: wakeup=0x3f8222d0, machine=0x3f823df4, listen=0x4022b1c8
0x4022b1c8: start_listen в /home/meng/work_bench/1.2.4/light-asr-sdk/light-bdspeech-sdk/main_build/wp_asr/components/bds_light_sdk/wakeup/bdsc_wakeup_machine.c:32
I (19974) strategy_mbedtls:[tls_init]: Инициализация структуры SSL/TLS.
I (19975) wakeup_uninitial_state:[start_listen]: start_listen
I (19976) wakeup_stop_state:[start_listen]: start_listen
I (19977) wakeup_start_state:[start_listen]: start_listen esp32_intr_gpio_add, ret 0.
I (19978) strategy_mbedtls:[tcp_connect]: host = leetest. baidu. com, port=443
E (19978) wakeup_hal: wakeup cmd 0x57414b45+++
E (19982) wakeup_hal: wakeup cmd---
I (20066) strategy_mbedtls:[tcp_connect]: создание сокета успешно
I (20100) strategy_mbedtls:[tcp_connect]: подключение успешно
I (20101) strategy_mbedtls:[tls_connect]: Выполнение SSL/TLS handshake...
I (20110) MQTT_TASK: MQTT_EVENT_CONNECTED
I (20111) MQTT_TASK: отправка subscribe успешна, msg_id=43775
I (20177) MQTT_TASK: MQTT_EVENT_SUBSCRIBED, msg_id=43775
I (20725) strategy_mbedtls:[net_connect]: tls подключение успешно
I (20725) disconnected_state:[do_connect_exec]: открытие I/O потока
I (20726) io_watch_dog:[bds_io_watchdog_start]: запуск watch dog
I (20726) bds_socket_stream:[open_stream]: запуск задачи чтения
I (20728) bds_socket_stream:[open_stream]: запуск задачи записи
I (20782) net_machine:[switch_state]: +++ 1
I (20782) EVENT_IN: Обработка события SDK началась.
I (20782) AUDIO_PLAYER: воспроизведение тона, тип:203, текущий тип медиа:203
I (20783) net_machine:[switch_state]: ----
I (20783) disconnected_state:[do_connect_exec]: завершение подключения
I (20784) bds_socket_stream:[send_msg_impl]: длина записи = 447, id: 1392302861, тип = 0x2, idx = -1
I (20784) AP_HELPER: audio_player_helper_default_play, тип:203,url:flash://tone/0_linked.mp3,pos:0,block:0,auto:0,mixed:0,inter:1
I (20787) AUDIO_MANAGER: ap_manager_play, 620, inter:1, тип:203, auto:0, block:0, UNKNOWN
W (20788) AUDIO_MANAGER: ap_manager_backup_audio_info, текущая операция не найдена
W (20789) AUDIO_MANAGER: ap_manager_play, 669, тип:203,auto:0,block:0
I (20790) ESP_AUDIO_TASK: Это декодер
I (20790) ESP_AUDIO_TASK: 1. CUR IN:[IN_flash],CODEC:[DEC_auto],RESAMPLE:[48000],OUT:[OUT_iis],rate:0, ch:0
I (20792) ESP_AUDIO_TASK: 2. Обработчики,IN:0x3f81ef5c,CODEC:0x3f8224e8,FILTER:0x3f836674,OUT:0x3f822664
I (20793) ESP_AUDIO_TASK: 2. 2 Обновление всей конвейерной линии
I (20794) ESP_AUDIO_TASK: 2. 3 Подключение новой конвейерной линии
I (20796) ESP_AUDIO_TASK: 3.Предыдущее начало. . .
I (20797) AUDIO_THREAD: Задача DEC_auto выделяет стек на внешней памяти
I (20798) ESP_DECODER: Готов к проверке типа аудио, pos:0, (строка 104)
I (20798) flashPartition: 146: label:flash_tone
Я (20798) TONE_STREAM: заголовок тег 2053, формат 1
Я (20799) TONE_STREAM: хвост тона аудио DFAC
Я (20800) TONE_STREAM: Желаемый индекс тона флэш 0
Я (20800) TONE_STREAM: Смещение тона:00000248, Длина тона:3960, общее количество:5, позиция:0
W (20811) TONE_STREAM: Больше данных нет, ret:0, info. byte_pos:3960
I (20812) ESP_DECODER: Определен тип аудио как MP3
I (20812) MP3_DECODER: MP3 открыт
I (20818) RSP_FILTER: сброс частоты дискретизации исходных данных: 16000, сброс количества каналов исходных данных: 1
I (20818) ESP_AUDIO_TASK: Получено музыкальное сообщение, отправлено MEDIA_CTRL_EVT_PLAY
I (20819) ESP_AUDIO_TASK: MEDIA_CTRL_EVT_PLAY, статус:UNKNOWN, 0
I (20820) AUDIO_THREAD: Задача пересчета частоты дискретизации выделила стек на внешней памяти
I (20822) AUDIO_THREAD: Задача OUT_iis выделила стек на внешней памяти
I (20823) I2S_STREAM: AUDIO_STREAM_WRITER
I (20826) RSP_FILTER: частота дискретизации исходных данных: 16000, количество каналов исходных данных: 1, частота дискретизации целевых данных: 48000, количество каналов целевых данных: 2
I (20827) ESP_AUDIO_TASK: Состояние ESP_AUDIO: AEL_STATUS_STATE_RUNNING
I (20828) ESP_AUDIO_TASK: Func:media_ctrl_task, Line:801, MEM Total:3935184 Bytes, Inter:99372 Bytes, Dram:79076 BytesI (20830) ==========: ---> ---> EVENT_LINK_CONNECTED buffer_length=24, buffer={"????flash://tone/0_linked.mp3"}
I (20831) MAIN: ==> Получено BDSC_EVENT_ON_LINK_CONNECTED
I (20832) EVENT_OUT: Обработка события SDK завершена.
W (20832) ==========: Stack: 1992
I (20833) AUDIO_MANAGER: СТАТУС АУДИО МЕНЕДЖЕРА:RUNNING, err:0, media_src:203
W (20834) DU1910_APP: AUDIO_PLAYER_CALLBACK отправил OK, статус:1, err_msg:0, media_src:203, ctx:0x0
I (21160) bds_handle_data:[do_logic_connected]: проверка значения : {"status":0,"msg":"OK","data":[]}
I (22479) MP3_DECODER: Закрыт
I (22479) ESP_AUDIO_TASK: Получено последнее положение: 3960 байт
I (22835) ESP_AUDIO_TASK: Получено последнее время: 1984 мс
I (22835) ESP_AUDIO_TASK: Состояние ESP_AUDIO: AEL_STATUS_STATE_FINISHED
I (22836) ESP_AUDIO_TASK: Func:media_ctrl_task, Line:801, MEM Total:3976456 Bytes, Inter:100108 Bytes, Dram:79812 Bytes
W (22837) ESP_AUDIO_TASK: Уничтожение старого конвейера
W (22838) ESP_AUDIO_TASK: Старый конвейер уничтожен
I (22838) AUDIO_MANAGER: СТАТУС АУДИО МЕНЕДЖЕРА:FINISHED, err:0, media_src:203
W (22839) DU1910_APP: AUDIO_PLAYER_CALLBACK отправил OK, статус:4, err_msg:0, media_src:203, ctx:0x0
I (22841) AUDIO_MANAGER: АУДИО СТАТУС ЗАВЕРШЕН, resume:0, is_backup:0
I (22842) AUDIO_MANAGER: Режим воспроизведения АУДИОPLAYER_ONE_SONG
## 2.8 Устранение неполадок### 2.8.1 Некорректные `fc`, `pk`, `ak` и `sk`.
```c
Я (4499) RAW_HELPER: default_raw_player_init :106, que:0x3ffe8804
П (4500) TAS5805M: volume = 0x58
Я (4500) BDSC_ENGINE: версия приложения 750c6318a6d33aa382452446f7d9b792974acbb5
Я (4501) SNTP_INIT: ------------Инициализация SNTP
Я (4506) PROFILE: 56: type[0x1]
Я (4506) PROFILE: 57: subtype[0x29]
Я (4507) PROFILE: 58: address:0x7c2000
Я (4507) PROFILE: 59: size:0x1000
Я (4507) PROFILE: 60: label:profile
Я (4517) PROFILE: fc = xx
Я (4517) PROFILE: pk = xx
Я (4517) PROFILE: ak = xx
Я (4517) PROFILE: sk = xx
Я (4518) PROFILE: cuid = xx
Я (4518) PROFILE: mqtt_broker =
Я (4519) PROFILE: mqtt_username =
Я (4520) PROFILE: mqtt_password =
Я (4520) PROFILE: mqtt_cid =
==> generate_auth_pam
текущее ts: 1591943265
==> generate_auth_sig_needfree
sig: 043cfeb0d0b752258024131142e4ac0b
pam_string: {"fc":"xx","pk":"xx","ak":"xx","time_stamp":1591943265,"signature":"043cfeb0d0b752258024131142e4ac0b"}
Я (4523) AUTH_TASK: тестовый запрос: POST /v1/manage/mqtt HTTP/1.0
Host: smarthome.baidubce.com
User-Agent: esp32
Content-Type: application/json
Content-Length: 100
```{"fc":"xx","pk":"xx","ak":"xx","time_stamp":26532387,"signature":"043cfeb0d0b752258024131142e4ac0b"}
Я (5508) HTTP_TASK: Подключение установлено...
Я (5509) HTTP_TASK: 236 байт записано
Я (5509) HTTP_TASK: Чтение HTTP-ответа...
Я (6109) HTTP_TASK: 202 байт прочитано
HTTP/1.0 200 OK
Cache-Control: no-cache
Content-Length: 57
Content-Type: application/json
Date: Fri, 12 Jun 2020 06:27:45 GMT
Server: BWS
X-Bce-Request-Id: 5367c504-d620-4e93-8966-74047f0b9175
Я (6112) HTTP_TASK: 57 байт прочитано
{"error_code":1,"err_msg":"fc:xx, pk:xx не зарегистрированы."}Я (6113) HTTP_TASK: соединение закрыто
Я (6117) AUTH_TASK: получено тело: {"error_code":1,"err_msg":"fc:xx, pk:xx не зарегистрированы."}
О (6118) AUTH_TASK: аутентификация не удалась, повторная попытка!
==> generate_auth_pam
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )