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

Разработка ‘библиотеки’ малого webсервера на esp8266.

aloika

Active member
Измените пока в конфиге по умолчанию: UART0_REGCONFIG0DEF, UART1_REGCONFIG0DEF
Разобрался, это был мой глюк, похоже.
Выглядело так, что устанавливалась по умолчанию галка RXD inverse, хотя в маске не было этого. В веб-интерфейсе можно было снять и далее работало все как надо.

Оказалось, что это происходило из-за вызова

os_timer_disarm(&swbd_uart0_rx_timer);

- т.е. просто остановки моего таймера ДО вызова system_init_done_cb(init_done_cb);

Похоже, так нельзя делать - трогать таймеры до system_init_done_cb(init_done_cb) - вот такие вот глюки получаются.
 

aloika

Active member
FGX, а на ATmega какого уровня сигнал приходит? А как он формируется? А опорное какое напряжение?

У меня опорное 1,1 В, а сигнал изначально с электретного микрофона и усиливается транзистором (а в микрофоне, насколько я понимаю, еще и свой транзистор). Вот, похоже, на этих транзисторах эти пики и выделяются.

И еще у меня усиление на ATtiny441 включено в 100 раз (дифф. вход).
 

FGX

Member
FGX, а на ATmega какого уровня сигнал приходит? А как он формируется? А опорное какое напряжение?

У меня опорное 1,1 В, а сигнал изначально с электретного микрофона и усиливается транзистором (а в микрофоне, насколько я понимаю, еще и свой транзистор). Вот, похоже, на этих транзисторах эти пики и выделяются.

И еще у меня усиление на ATtiny441 включено в 100 раз (дифф. вход).
Я просто измеряю сетевое напряжение через трансформатор, диодный мост и делитель напряжения (1/3, т.к. трансформатор 12 В), опорное напряжение то что и питающее=5В. Ничего не сглаживаю, вывожу что есть. При этом питаю от повербанка, хотя там и есть преобразователь повышающий до 5В, но он хороший, не шумит, обычные сетевые зарядки шумят жутко и появляются не то что пики а провалы здоровые.
 

aloika

Active member
pvvx, еще какой-то глюк (может мой):

включаю модуль, он находится в STATIONAP_MODE.

Ввожу имя своей домашней вай-фай сети, пароль, ставлю галочку Autoconnect, нажимаю Set Config.
И почему-то компьютер отцепляется от точки доступа модуля, она в этот момент отключается, что-ли? Надо снова подключиться, и тогда уже можно посмотреть полученный IP (станцией).
 

aloika

Active member
FGX, условия разные, сложно что-то сказать. У вас и питание 5 В (у меня 3,3), и сигнал изначально большой (а у меня с микрофона, там милливольты, усиливать надо).

Я эти пики вижу... Просто скидываю в уарт аттини и смотрю на графике - есть пики. Убираю модуль esp8266 (он на разъеме у меня) - пики исчезают, все гладко становится. Так что это точно модуль, а не источник питания, например.
 

FGX

Member
@aloika, модуль, но наводит он не в самом МК а в той части которая у вас усиливает сигнал, или в источнике питания, может под металлическую крышку нужно измерительную часть засунуть, типа экранировать как-то.
 

aloika

Active member
Вам поможет дифференциальный усилитель для микрофона, и экран обязательно.
Один транзистор в таких схемах -это плохо. ;)
Ну так-то да, есть такая вот штука, например: http://www.adafruit.com/products/1063
Или вот: https://www.sparkfun.com/products/9964

Если бы мне надо было получить чистый звук, то наверное, так и надо было поступить.

А мне надо просто узнать - есть звук, или нет. И все. Для этой задачи и одного транзистора хватит.

(хотя надо будет попробовать собрать адафрутный вариант, микросхема там дешевая и доступная).
 
Привет pvvx,
Скачал последнюю ревизию.

Модуль ESP-07 512к питание oт лабораторного источника 3.3в.
Запустил UDP Wave Port:

Ip: 255.255.255.255
Port: 1001
F: 20 000
Iпотр.=190мА. (потому что раздаю всему интернету и окраинам :p.)
Поток идет.
Модуль нагрелся...:(

Поменял IP.
Ip: 192,168,4,2
Port: 1001
F: 20 000
Iпотр.=80мА.
Поток идет.


Что это может быть?:(

 

pvvx

Активный участник сообщества
включаю модуль, он находится в STATIONAP_MODE.
Ввожу имя своей домашней вай-фай сети, пароль, ставлю галочку Autoconnect, нажимаю Set Config.
Иногда это проще сделать это в меню сканирования (быстрее и вводить надо только пароль).
И почему-то компьютер отцепляется от точки доступа модуля, она в этот момент отключается, что-ли? Надо снова подключиться, и тогда уже можно посмотреть полученный IP (станцией).
При смене режима WiFi AP/ST/AP+ST всегда происходит отключение.
 

pvvx

Активный участник сообщества
Ip: 255.255.255.255
Iпотр.=190мА. (потому что раздаю всему интернету и окраинам :p.)
Наверно пакетов отсылает больше - c AP и по ST.
Синхронизировать ADC с источником помехи.
При передаче данных WiFi там эти "помехи" идут почти постоянно.
Борьба только одна - уменьшить длину "антенн" (проводников) на наводимые элементы.
Может помочь установка резистора перед самым выводом микросхемы, тогда получаем ВЧ наводку в нутре чипа с вывода с меньшим током и сказывается емкость вывода. Т.е. уровень детектирования падает (добротность приемных контуров падает).
Использование диф.входов не спасет. Наводка возникает в нутре чипа, т.к. принята по обоим входным ножкам в кристалл, а не только на входные цепи... Это же импульсная ВЧ наводка, а не НЧ смещение в окне диф.входов. Экран тоже не спасет, если из под него торчат провода... Удаление от антенны и выходов к ней у WiFi тоже помогает :) Падение же мощи эми квадратичное от расстояния...

Открывайте тему "Wi-Fi осциллограф";).
И логический анализатор на ~12 MГц/бит (I2S с DMA)
 
Последнее редактирование:

Tomahawk

New member
В примере esphttpd из UDK реализована интересная вещь: при подключении к нашей точке доступа происходит выдача ip-адреса нам как клиенту через DHCP, а потом в смартфоне появляется уведомление "подключение", когда мы его нажимаем автоматически открывается браузер с веб-интерфейсом. Таким образом, нам даже не надо настраивать настройки для подключения, достаточно тыкнуть на AP в списке, а потом ещё 1 раз на подключении и вуаля, мы видим сайт. Возможно сюда стоит добавить такую же штуку? :)
 
Борьба только одна - уменьшить длину "антенн"
И и еще выключить CPU и Wi-Fi:p
Использование диф.входов не спасет. Наводка возникает в нутре чипа
Помогает, но частичною.
Нужен комплексный подход, керамика NPO, тантал, дроссели, экран.
И главное- правильная разводка платы.:p
И логический анализатор на ~12 MГц/бит (I2S с DMA)
можно и ADC взять и по круче 2ГГц.
Передавать по Wi-Fi, а далее на PC хоть логический анализатор, и анализатор спектра...

У меня в "детском" осциллографе такой ADC запаян, и по Wi-Fi может работать;)
вот такой и получиться в 2нс/клетка 199,7 мГц. 200МГЦ.GIF
только за 2,4$+ ADC:p
 
Наверно пакетов отсылает больше - c AP и по ST.
Подсмотрел эфир:
Режим: только AP.
F:20000Гц
IP:255.255.255.255
Ip255.png
IP:192.168.4.2
ip19216841.png
и не понял китайской шутки? :(
Брод каст по китайски это рассылка на каждый адрес из всех 0x0000-0xFFFF отдельно!:p
 
Последнее редактирование:

pvvx

Активный участник сообщества
В примере esphttpd из UDK реализована интересная вещь:
После подключения через свисток с копа не зайти ни на один сайт, т.к. dns на модуле переадресует всё на себя, включая запросы разных приложений :)
У нас точечный источник излучения получается - кубическое ослабление мощности.
Все равно не легче :p
Угу - с рефлекторной антенной на соседних проводниках у телепузиков, составленной из китайского набора соединительных проводов воткнутых в переходник с 2.0 на 2.54 :)
 

pvvx

Активный участник сообщества
В примере esphttpd из UDK реализована интересная вещь: при подключении к нашей точке доступа происходит выдача ip-адреса нам как клиенту через DHCP, а потом в смартфоне появляется уведомление "подключение", когда мы его нажимаем автоматически открывается браузер с веб-интерфейсом. Таким образом, нам даже не надо настраивать настройки для подключения, достаточно тыкнуть на AP в списке, а потом ещё 1 раз на подключении и вуаля, мы видим сайт. Возможно сюда стоит добавить такую же штуку? :)
У меня на Andro-утом Samsung Note 4 так не выходит. Ничего не вылезает. Долго думает и о чем-то своем, но после, если запустить chome, то по любой ссылке вылазит сайт. Аналогично он лезет на все запросы телефона :)
В винде esphttpd кроме описанного тоже ничего не вылезает. Чтобы вылезало надо дописывать отдачу правильного IP на запрос у DNS модуля "www.msftncsi.com" = 131.107.255.255. Но когда вылезет :) то пойдет не на порт 80, а на 443 - ssl для авторизации. А там беда с ssl пока у всех :(...

Для теста есть прошивка с немного скорректированной версией DNS у AP отсылающей всех на Web (http://aesp8266/)
Вызывает это в винде:
cdns.gif
 
Последнее редактирование:

Tomahawk

New member
pvvx, прошил вашим файлом, со смартфона (андроид 4.4.2) автовыдачи не произошло, работает только как обычно, т.е. с ручным вводом ip. Через компьютер работать я пока не пробовал.
 

pvvx

Активный участник сообщества
pvvx, прошил вашим файлом, со смартфона (андроид 4.4.2) автовыдачи не произошло, работает только как обычно, т.е. с ручным вводом ip. Через компьютер работать я пока не пробовал.
esphttpd у меня так-же работает с андроидом (5.0.1). Т.е. что эта прошивка, что = esphttpd. А с windows на прошивке = то, что указано выше - вылазит сообщение. В esphttpd не вылазит.
Обе работают не "с ручным вводом ip", а с запросом любого адреса, хоть google.com - открывается web.

http://windowsnotes.ru/other/kak-windows-opredelyaet-podklyuchenie-k-internetu/

• При подключении к сети система посылает HTTP-запрос по адресу http://www.msftncsi.com/ncsi.txt. Это обычный текстовый файл, в котором содержится всего одна строка Microsoft NCSI. В случае успешного запроса от сервера должен прийти ответ с заголовком 200 ОК, содержащий эту строку;
• На втором этапе проверяется работоспособность службы DNS, для чего NCSI пытается разрешить в IP-адрес имяdns.msftncsi.com. Ожидаемое значение 131.107.255.255

По завершении проверки, если оба этапа были успешно пройдены, система считает что доступ в Интернет имеется. Если файл ncsi.txt недоступен, а dns.msftncsi.com не разрешается или разрешается с другим IP-адресом, то система сообщает о невозможности подключения к Интернет. В том случае, если ncsi.txt недоступен, но dns.msftncsi.com разрешается в правильный IP — система выдает сообщение о необходимости аутентификации через браузер.

Это в прошивке и сделано, а остальное скопировано из esphttpd. Код в git. Включить (раскоментировать) опцию // [HASHTAG]#define[/HASHTAG] USE_CAPTDNS в https://github.com/pvvx/esp8266web/blob/master/app/include/user_config.h#L62

Андроид лезет за clients3.google.com/generate_204 но там другой механизм. В esphttpd ничего по этому поводу не наблюдается.
В Андроид 4.4 обработка generate_204 : http://androidxref.com/4.4_r1/xref/...ava/android/net/CaptivePortalTracker.java#372
 
Последнее редактирование:

aloika

Active member
Обе работают не "с ручным вводом ip", а с запросом любого адреса, хоть google.com - открывается web.
А что будет, если в Windows 2 (и более) сетевых карты и, соответственно, соединения - например, по проводной сети идет инет, а по wi-fi "свистку" - соединяюсь с ESP8266. И что получится тогда, при вводе любого адреса будет перекидывать на ESP?
 
Сверху Снизу