Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Автоматика с веб управлением на основе esp32 и pzem

Форум самогонщиков Автоматика
1 ... 36 37 38 39 40 41 42 ... 61 39
serjrv Кандидат наук Камышин 382 205
Отв.760  16 Дек. 21, 23:27
sechevoy, У тебя с чтением текста проблемы? Если ПАРОЛЬ к роутеру не верен, не будет и точки доступа поднято, просто железка будет в ауте...
Трахайтесь в общем то дальше тогда сами.
sechevoy Специалист Запорожье 148 26
Отв.761  16 Дек. 21, 23:39 (через 12 мин)
Новая железка после первой прошивки знает какую-то сеть wi-fi?
serjrv Кандидат наук Камышин 382 205
Отв.762  17 Дек. 21, 00:11 (через 33 мин)
Новая железка после первой прошивки знает какую-то сеть wi-fi?sechevoy, 16 Дек. 21, 23:39
Для тех кто в танке...
При первом подключении, ESP`шка не знает название домашней сетки (SSID), соответственно и подключиться к ней не пытается, а просто поднимает точку доступа (AP). А вот если название/имя (SSID) (я хер его знает как доступно объяснять народу, кому ОКЕЙ ГУГЛ недоступен...) ПРИСУТСТВУЕТ уже в памяти контроллера, а ее вы нихрена не стираете при пере прошивке, контроллер и пытается подрубиться к домашней сетке, и совершенно насрать что парольик не тот или пуст. Контроллер думает, если уж пользователь задал что то, и тем более SSID сошлось, значит и паролик к сетке берем не задумываясь (который кстати разработчик бездумно и бесконтрольно сразу во внутреннюю структуру класса прописывает). Вот именно от этого у вас проблемы... Ну и если не только последние сообщения читаешь, мог бы и увидеть/прочитать, почему прошивка посредством самой среды в большинстве случае работает, а прошивая ВСЕГО 4 выложенных файлика - ни черта.

Надеюсь сейчас доступно?

p.s. Однозначно последняя подсказка, задолбало такое общение с гордыми, но не компетентными орлами...
sechevoy Специалист Запорожье 148 26
Отв.763  17 Дек. 21, 00:57 (через 47 мин)
Но по логике библиотеки после нескольких неудачных попыток подключения к "старой" сети еспэшка должна подымать точку доступа. Судя по логам она не пытается подключиться к wi-fi сети.
Очень жаль, что топикстартер давно не появляется в ветке.
Коллеги, попробуйте скомпилировать бинарники по совету serjrv. Поможет, поблагодарим от души, не поможет, будем копать дальше.
gol_avto Доцент Москва-Серпухов-Анапа 1.5K 524
Отв.764  17 Дек. 21, 06:08
p.s. Попробуй все же файлик "hd_wifi.c" из 71 версии заменить в 74.serjrv, 15 Дек. 21, 20:53
Где ж его взять то? Архива на Гитхабе старой версии нет, у меня тоже. Так что менять нечем.
========
Ещё раз попробовал и 071 и 074 версии прошить бинарниками с последующим выкл/вкл Wi-Fi на ноуте - увы фокус не удался. Ноут ESP не увидел. Через среду всё восстановилось.
Так что у всех фломастеры разные, у кого то 071 работает, а 074 - нет. У меня обе мертвые через бинарники.
Браузер Chrome - версия 96.0.4664.110 (Официальная сборка), (64 бит)
P.S. бедная ESP-шка, уже изнасиловал её перепрошивками.
сообщение удалено
Volume Доктор наук Уфа 610 342
Отв.765  17 Дек. 21, 10:40
Если выбрать свою сеть, но ввести "левый" пароль (или не ввести), модуль вечно будет по WiFi недоступенserjrv, 16 Дек. 21, 22:12
если добавлять проверки везде где пользователь может накосячить, код как минимум удвоится.
В коммерческих проектах это маст хэв, но в некоммерческих , как в этом, резоны совершенно иные - минимизировать свои трудозатраты. Автор и так массу времени на проект потратил, просто чтоб запускался и работал, поэтому к нему никаких вопросов.
Развитие проекта - дело коллективное. У меня как будет свободное время - попробую разобраться. Пока занят другим проектом
сообщение удалено
serjrv Кандидат наук Камышин 382 205
Отв.766  17 Дек. 21, 12:59
Volume, Там делов на 5 минут, у меня просто среда не установлена НУЖНЫМ для проверки способом (уже писал об этом).
Но чтобы тебе долго не ковырять:
В файле hd_wifi.c в последней функции wifiSetup(), надо полностью переписать код инициализации WiFi

Основные косяки вот:
if (!WIFI_knowApCount) {
// Нет заданных точек доступа - переходим в режим AP
... }

Т.е. точку доступа ESP`шка поднимет ТОЛЬКО если наш роутер ни разу не прописан, или его не увидели.

Далее:
else {
...
strlcpy((char*) wifi_config.sta.ssid, w->ssid, sizeof(wifi_config.sta.ssid));
if (strlen(w->password)) strncpy((char*) wifi_config.sta.password, w->password, sizeof(wifi_config.sta.password));
...
}

Вот именно здесь надо проверять не только на пустой пароль, но и на его максимальную длину и допустимость символов (т.е. любой символ в пароле > 0x20 && < 0x80). SSID кстати тоже не повредит проверить аналогичным образом, вдруг это первая прошивка с "кашей" в памяти. Именно из за бардака в этом месте кода, у народа и вечные перезагрузки, и прочие глюки.

Далее надо завести таймер секунд на 20 - 30, и если за это время не смогли подключиться к домашней WiFi, идем поднимать свою точку доступа (AP).

p.s. Вот кстати у кого точка доступа не появляется, могли бы у себя так проверить: выключить из розетки свой роутер, а затем уже подать питание на ESP`шку. Поднимется точка доступа в этом случае? Если да, то я прав на 100%, если не поднимется AP, значит есть и еще косяки в коде. Просто глянув чутка внимательнее, видно что у автора просто куски кода из разных проектов надерганы и адаптированы к данной прошивке (уж слишком сильно различается стиль написания в разных кусках кода).
sechevoy Специалист Запорожье 148 26
Отв.767  17 Дек. 21, 16:08
Переименовал свой SSID на роутере и включил еспэшку, ребуты повторились.
serjrv Кандидат наук Камышин 382 205
Отв.768  17 Дек. 21, 16:49 (через 41 мин)
sechevoy, Ну так выложи сюда свой лог загрузки, чтобы было видно в какой момент (на каком шаге загрузки) у тебя сбой происходит. Посмотреть лог загрузки можно к примеру монитором порта среды Arduino, скорость 115200.
К примеру если не выводит как минимум это:
Скрытый текстrst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5736
load:0x40078000,len:14452
load:0x40080400,len:3864
entry 0x4008065c
I (415) cpu_start: Pro cpu up.
I (415) cpu_start: Application information:
I (415) cpu_start: Project name: esp32_hd
I (417) cpu_start: App version: c725aad-dirty
I (423) cpu_start: Compile time: Apr 12 2020 16:43:47
I (429) cpu_start: ELF file SHA256: 0afc069ca9a60c29...
I (435) cpu_start: ESP-IDF: v4.2-dev-414-g132cc67c0
I (441) cpu_start: Single core mode
I (445) heap_init: Initializing. RAM available for dynamic allocation:
I (452) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (458) heap_init: At 3FFBA308 len 00025CF8 (151 KiB): DRAM
I (465) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM
I (471) heap_init: At 40078000 len 00008000 (32 KiB): IRAM
I (477) heap_init: At 40097CB4 len 0000834C (32 KiB): IRAM
I (483) cpu_start: Pro cpu start user code
I (501) spi_flash: detected chip: gd
I (502) spi_flash: flash io: dio
I (502) cpu_start: Starting scheduler on PRO CPU.
I (517) hd_esp32: RAM left 267032
I2C installed
>> i2cScanner 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
I (556) hd_esp32: Initializing SPIFFS
I (578) hd_esp32: Reset reason: Vbat power on reset

то виноват даже не wifi, а просто видимо криво прошиваешь.
Volume Доктор наук Уфа 610 342
Отв.769  17 Дек. 21, 17:38 (через 50 мин)
Основные косяки вот:serjrv, 17 Дек. 21, 12:59
думаю дело не в коде, а в технологии прошивки. Как тут уже сообщали - при прошивке пайтоновской утилитой esp-шной среды проблем не возникает. При ровно том же коде исходника.
Просто лично я всегда из среды программирования шью, поэтому граблю с прошивкой бинарниками ни разу не видел. Чтоб разобраться, надо разницу искать между прошивкой бинарника утилиткой и прошивкой из idf-ной среды
serjrv Кандидат наук Камышин 382 205
Отв.770  17 Дек. 21, 18:33 (через 56 мин)
думаю дело не в коде, а в технологии прошивки.Volume, 17 Дек. 21, 17:38
Код тоже надо править, иначе при правильном SSID, НО неверном пароле, AP не поднимется.
В принципе я могу скомпоновать прошивку и выложить архив с "выдернутой" прошивалкой из Platform IO с насадкой ESP-IDF. Правда у меня конкретно под винду, на яблоке или линухе не заведется. Ну было бы неплохо если бы файлик boot_app0.bin (или как он у вас обзывается я не знаю) тоже кто то выдернул и выложил (выше что и как я писал). В итоге просто надо будет распаковать архив и просто запустить programm.cmd, далее выбрать COM порт из доступных и все (без выеживания с утилитой flash_download_tool).

Добавил утилитку для прошивки 74-й версии, пробуйте.
- распаковываем архив
- подключаем модуль ESP по USB к компу
- запускаем файлик programm.cmd
- выбираем 2-й пункт для полного предварительного стирания памяти ESP`шки
- выбираем свой номер COM порта
- ждем пока не напишет: "Для продолжения нажмите любую клавишу..."
- перегружаем модуль и проверяем
_bin_074.zip 4.0 Мб
sechevoy Специалист Запорожье 148 26
Отв.771  17 Дек. 21, 22:00
К сожалению результат тот же. Ниже прилагаю лог из сериал порта.
log.txt 2.4 Кб
Volume Доктор наук Уфа 610 342
Отв.772  18 Дек. 21, 11:13
попробовал прошить утилиткой - все прошилось, все работает. Что делал:
1. скачал последнюю версию прошивальщика с https://www.espressif.com/en/support/download/other-tools
2. скачал архив 074 из [сообщение #13879601]
3. указал в прошивальщике 3 первых файла в соответствии с инструкцией ТС (образ spiff не шил - приложение при старте само отформатирует файловую систему)
4. ткнул "Start", дождался "Finish". Нажал "Stop", после чего закрыл приложение прошивальщика
5. выдернул шнурок USB, воткнул обратно (типа - рестарт espшки).

Запустил putty на COM-порт esp32, вижу лог нормального старта. Посмотрел в ноуте доступные WiFi точки - вижу точку hd_esp32

Сравниваю свой лог старта с логом sechevoy, вижу различия:
1я строчка, у меня
ets Jun 8 2016 00:22:57 (ets Jul 29 2019 12:21:46)
6я строчка
mode:DIO, clock div:2 (mode:DIO, clock div:1)
Вот этих строк у меня нет:
E (29) esp_image: image at 0x110000 has invalid magic byte
E (29) boot: OTA app partition slot 0 is not bootable
serjrv Кандидат наук Камышин 382 205
Отв.773  18 Дек. 21, 12:03 (через 50 мин)
mode:DIO, clock div:2 (mode:DIO, clock div:1)Volume, 18 Дек. 21, 11:13
Это только от установленной микросхемки флеша зависит, div:1 это просто максимальная скорость по шине SPI. У меня кстати тоже данный делитель равен единичке.
Вот этих строк у меня нет:
E (29) esp_image: image at 0x110000 has invalid magic byte
E (29) boot: OTA app partition slot 0 is not bootableVolume, 18 Дек. 21, 11:13
А это уже ругань идет...

Кстати у sechevoy, такое впечатление что на инициализации I2C все стопориться и перегружается.

Немного переделал прошивальщик, убрал заливку spiffs, все равно образ бардачный...
_bin_074_2.zip

Ну и ложка дегтя, когда рухнет сервак обновлений, откуда первоначально нужные файлики подтягиваются, у народа опять проблемы нарисуются.
gol_avto Доцент Москва-Серпухов-Анапа 1.5K 524
Отв.774  18 Дек. 21, 12:40 (через 38 мин)
1. скачал последнюю версию прошивальщика с https://www.espressif.com/en/support/download/other-tools
2. скачал архив 074 из [сообщение #13879601]
3. указал в прошивальщике 3 первых файла в соответствии с инструкцией ТС (образ spiff не шил - приложение при старте само отформатирует файловую систему)
4. ткнул "Start", дождался "Finish". Нажал "Stop", после чего закрыл приложение прошивальщика
5. выдернул шнурок USB, воткнул обратно (типа - рестарт espшки).Volume, 18 Дек. 21, 11:13
Проделал тоже самое, смотрю в ноуте доступные WiFi точки - НЕ вижу точку hd_esp32
=============
Перепрошил ещё 3 раза, точки нет, подождал дольше (больше минуты) - точка появилась. Прошивал также 3 файла
2021-12-18_12-58-44.png
2021-12-18_12-58-44.png Автоматика с веб управлением на основе esp32 и pzem. Автоматика.
2021-12-18_13-03-36.png
2021-12-18_13-03-36.png Автоматика с веб управлением на основе esp32 и pzem. Автоматика.
serjrv Кандидат наук Камышин 382 205
Отв.775  18 Дек. 21, 13:07 (через 28 мин)
gol_avto, попробуй прошиться просто последний выложенный мной архив "_bin_074_2.zip", именно запустив programm.cmd после распаковки архива.
sechevoy Специалист Запорожье 148 26
Отв.776  18 Дек. 21, 13:24 (через 18 мин)
Ничего не помогло.
Откатился на 0.7.1
Подскажите, что было исправлено в 0.7.4 в сравнении с 0.7.1? Интересно знать, что я теряю.
Остаётся ждать автора прошивки (((.
log.txt 2.3 Кб
serjrv Кандидат наук Камышин 382 205
Отв.777  18 Дек. 21, 13:59 (через 35 мин)
sechevoy, К самому модулю что то подключено из внешних устройств (датчик давления, датчики температуры, дисплей)?
sechevoy Специалист Запорожье 148 26
Отв.778  18 Дек. 21, 14:03 (через 4 мин)
sechevoy, К самому модулю что то подключено из внешних устройств (датчик давления, датчики температуры, дисплей)?serjrv, 18 Дек. 21, 13:59
Голая ESP32
gol_avto Доцент Москва-Серпухов-Анапа 1.5K 524
Отв.779  18 Дек. 21, 14:03 (через 1 мин)
gol_avto, попробуй прошиться просто последний выложенный мной архив "_bin_074_2.zip", именно запустив programm.cmd после распаковки архива.serjrv, 18 Дек. 21, 13:07
Прошил. Всё ОК. Wi-Fi работает.
Вот лог прошивки
Скрытый текстSelect item to program:

1 - Update program and WEB interface.
2 - Erase entire memory of the module. Update program and WEB interface.
Q - Exit.

2

Enter COM port number:
8 - COM8
6 - COM6
3 - COM3
Q - Exit.

3
esptool.py v2.6
Serial port COM3
Connecting......
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:0a:c4:c5:64:fc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Erasing flash (this may take a while)...
Chip erase completed successfully in 8.5s
Hard resetting via RTS pin...
esptool.py v2.6
Serial port COM3
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:0a:c4:c5:64:fc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000d000 in 0.0 seconds (effective 4681.2 kbit/s)...
Hash of data verified.
Flash params set to 0x022f
Compressed 24160 bytes to 14600...
Wrote 24160 bytes (14600 compressed) at 0x00001000 in 0.2 seconds (effective 1033.6 kbit/s)...
Hash of data verified.
Compressed 1019232 bytes to 645249...
Wrote 1019232 bytes (645249 compressed) at 0x00010000 in 9.0 seconds (effective 908.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 153...
Wrote 3072 bytes (153 compressed) at 0x00008000 in 0.0 seconds (effective 1890.5 kbit/s)...
Hash of data verified.
Compressed 983040 bytes to 59454...
Wrote 983040 bytes (59454 compressed) at 0x00110000 in 2.0 seconds (effective 3879.8 kbit/s)...
Hash of data verified.