Уважаемые посетители сайта esp8266.ru!
Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram
Тогда это не пойдет.
ШИМ с использованием аппаратного delta-sigma на I/O так никто и не доделал на ESP8266... Что-то там с аппаратурой не так - похоже на баги в чипе - бьет на низкой частоте и сам выход на достаточно большой частоте зашумляет прием WiFi (попадает в кратность по гармоникам). А программный низкочастотный ШИМ на таймерах в web-свалке отключен.
Тогда это не пойдет.
ШИМ с использованием аппаратного delta-sigma на I/O так никто и не доделал на ESP8266... Что-то там с аппаратурой не так - похоже на баги в чипе - бьет на низкой частоте и сам выход на достаточно большой частоте зашумляет прием WiFi (попадает в кратность по гармоникам). А программный низкочастотный ШИМ на таймерах в web-свалке отключен.
А можно организовать GPIO с буфером, т.е. присланый кусок данных проигрывается побитово с +- одинаковым интервалом в цикле, нужна скорость хотя бы 100 бит в секунду?
А можно организовать GPIO с буфером, т.е. присланый кусок данных проигрывается побитово с +- одинаковым интервалом в цикле, нужна скорость хотя бы 100 бит в секунду?
По нажатию на кнопку отправить 4-10 байт данных на сервер . За основу хочу взять Ваш проект , так как он идеально подходит . Как опросить кнопку - понятно . А какую функцию и в каком файле, применить для передачи простой строки. Другими словами говоря , мне надо не с юарта отправить данные а из внутренней памяти :
Код:
char data_str[]="send data srv!\r\n";
Я так понял что выше указанная функция может это выполнить? А IP и порт она берет из настроек в веб?
Вспомнил Ваш пример чтения температуры . Скажите пожалуйста , этот файл тоже компилируется ? Или его нужно подключить к проекту ??
В принципе мне подходит решение в этом файле . Поменяв сообщение и урл я смогу выполнить задачу .
Поясните пожалуйста как начинающему ..
По поводу глюков station ESP8266. Стабильнее работает когда отключена корректировка частоты:
и используется более старая SDK 1.5.4.
С включенной коррекцией вылетает даже на "протектед" при работе рядом других устройств с WiFi.
Похоже найдена дыра - определенный сигнал в эфире WiFi приводит к багам ESP8266 - вылетает или отсоединяется от AP и начинает петь песни - мешать другим модулям... Зависимость от версии SDK - мала.
Последовательность использования оверлея tcp_client.ovl в проекте WEB сервера
0. Скачиваем проект с репозитория. По умолчанию там был выбран проект TCP2UART (#define PROGECT_NUMBER 0)
1. Выбираем тип проекта - пустой WEB сервер. #define PROGECT_NUMBER 2
2. Делаем Clean
3. Компилируем (цель all). - скомпилилось с ошибкой =(. Если все скомпилилось - идем дальше.
На данном этапе мы имеем скомпилированные оверлеи и основной проект.
4. Загружаем прошивку - "flashAll"
5. Копируем оверлей (изначально файл берем в папке ovls\bin\tcp_client.ovl) в папку WEBFiles - ложим в корень этой папки
6. Загружаем WEB диск с помощью "Upload Web". Перед загрузкой файл веб диска
собираеться из файлов в каталоге "WEBFiles" в бинарный файл "webbin\WEBFiles.bin"
7. На данном этапе должна быть загружена прошивка и файл Web диска с нужным оверлеем
8. Заходим на точку доступа ESP8266 и настраиваем подключение к WIFI точке доступа. получаем IP: 10.10.10.67/
9. Выбираем оверлей: 10.10.10.67/?ovl=tcp_client.ovl
10. Запускаем оверлей: 10.10.10.67/?ovl$=1
11. Нужно ли на данном этапе закрывать все WEB подключения к ESP8266 ?
"Инициализация оверлея ovl_init(1) производится по закрытию Web-HTTP соединения для возможности передачи настроек инициализации в любом порядке, а в случае запроса из websocket – сразу после загрузки."
Получилось запустить данный оверлей на проекте TCP2UART, так как простой WEB сервер не компилился =(
Вопросы:
1) за что отвечает цель "clobber"
2) что размещается в секциях 0x00000 и 0x07000
3) в строчке Makefile - UPLOADOVL = ./ovls/bin/tcp_client.ovl - выбираеться оверлей из папки
скомпилированых оверлев, который будет загружаться во време цели "UPLOAD OVL" ?
4) в папках WEBFiles, WEBFilesRS485, WEBFilesTCP2UART лежат уже файлы оверлеев. После компиляции эти файлынужно заменить, я так понимаю ?
или их просто удалить, и загрузить только тот, который нужно с помощью цели "UPLOAD OVL"
5) При компиляции #define PROGECT_NUMBER 2 появляеться ошибка. В других режимах компилируеться нормально
main/.output/eagle/lib/libmain.a(main.o).text+0x4): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(main.o): In function `drv_recv':
main.c.text+0x174): undefined reference to `mdb_buf'
6) немножко непонятно с адресацией в оверлее:
секция text оверлея накладывается по адресам с секцией lit4 для основной прошивки - это так и должно быть ?
Основная прошивка
Entry Point : 4010013C call_user_start()
------------------------------------------------------------------------------
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE838C| 908
rodata| ReadOnly Data (RAM)| 3FFE838C| 3FFE8E6C| 2784
bss| Uninitialized Data (RAM)| 3FFE8E70| 3FFEFAB8| 27720
lit4| Uninitialized Data (IRAM)| 40105BBC| 401067CC| 3088
text| Uncached Code (IRAM)| 40100000| 40105BBC| 23484
irom0_text| Cached Code (SPI)| 40207000| 40241933| 239923
------------------------------------------------------------------------------
Оверлей:
Entry Point : 40106ABC ovl_init()
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFFDF60| 3FFFDFD1| 113
rodata| ReadOnly Data (RAM)| 3FFFDFD4| 3FFFE014| 64
bss| Uninitialized Data (RAM)| 3FFFE018| 3FFFE020| 8
lit4| Uninitialized Data (IRAM)| 40106BBC| 40106BBC| 0
text| Uncached Code (IRAM)| 40106600| 40106BBC| 1468
irom0_text| Cached Code (SPI)| 40210000| 40210000| 0
------------------------------------------------------------------------------
6. Загружаем WEB диск с помощью "Upload Web". Перед загрузкой файл веб диска
собираеться из файлов в каталоге "WEBFiles" в бинарный файл "webbin\WEBFiles.bin"
Туда-же и пишутся новые версии бинарных оверлеев - {в каталоге "WEBFiles"}.
11. Нужно ли на данном этапе закрывать все WEB подключения к ESP8266 ?
"Инициализация оверлея ovl_init(1) производится по закрытию Web-HTTP соединения для возможности передачи настроек инициализации в любом порядке, а в случае запроса из websocket – сразу после загрузки."
Имеется в виду HTTP-TCP соединение в котором был вызов загрузки оверлея. Экслорер по умолчанию открывает около пяти HTTP-TCP соединений на страницу. Существуют проблемы в последовательности приема и обработки поступающих данных в AJAX. Websocket от это избавлен.
Более полная очистка от временных файлов и итогов компиляции...
2) что размещается в секциях 0x00000 и 0x07000
Общий вопрос по ESP.
3) в строчке Makefile - UPLOADOVL = ./ovls/bin/tcp_client.ovl - выбираеться оверлей из папки скомпилированых оверлев, который будет загружаться во време цели "UPLOAD OVL" ?
Да. Так удобнее отлаживать ovl. Основная прошивка при изменении оверлеев не меняется и не требует перезаписи...
4) в папках WEBFiles, WEBFilesRS485, WEBFilesTCP2UART лежат уже файлы оверлеев. После компиляции эти файлынужно заменить, я так понимаю ?
или их просто удалить, и загрузить только тот, который нужно с помощью цели "UPLOAD OVL"
Зависит от варианта проекта. Это папки с примерами для разных проектов. Makefile отрабатывает только на {в каталоге "WEBFiles"}.
5) При компиляции #define PROGECT_NUMBER 2 появляеться ошибка.
Та и пусть. Зачем голая система? Всё равно будете что-то менять... Мне сложно синхронизировать текущую у меня версию с данной "свалкой", т.к. многое что добавлено у меня не нужно другим, а "свалка" ещё распухнет. Предполагается, что для сборки своего проекта вы удалите большую часть ненужного (помечается сереньким в Eclipse по условиям #if ) , выбрав часть опций.
6) немножко непонятно с адресацией в оверлее:
секция text оверлея накладывается по адресам с секцией lit4 для основной прошивки - это так и должно быть ?
Да. Оверлеи грузятся в остаток IRAM. Её можно увеличить пожертвовав частью 'кэша' Flash, т.е. прибавить +16 кило. Опция в meSDK...
На производительность в данном проекте это не влияет - доли процента...