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

Постоянная загрузка данных.

pvvx

Активный участник сообщества
Плиз уточните.
Мне не нужны сотни замеров в секунду, мне нужна автоматическая передача замера в комп чаще 1 раза в секунду.
Ваш пример про это?
Да. И все ранее приведенные. Именно это и делают, без глюков в TCP, если это ESP или без других хулиганств от ардуино-зависимых.
 

pvvx

Активный участник сообщества
Как я понял тут ищут самый сложный путь, но разбираться в программировании не хотят. Хотят чтобы с форума по запросу бесплатно прислали готовое изделие и с пивом :)
 
Иными словами, чем длиннее (по времени) loop, тем больше должен быть аргумент delay в её конце.
Хм. я вообще delay в loop не использую. ну вы помните. и все работает.
Вот пример лога времени обратных посылок со страницы в ESP (то есть esp послала данные в сокет, страница ответила обратно пустой посылкой)
лог снят в мониторе порта arduino. Данные успели сходить туда обратно примерно 60 раз за секунду.

12:57:21.037 ->
12:57:21.037 ->
12:57:21.037 ->
12:57:21.084 ->
12:57:21.084 ->
12:57:21.132 ->
12:57:21.132 ->
12:57:21.132 ->
12:57:21.179 ->
12:57:21.179 ->
12:57:21.179 ->
12:57:21.226 ->
12:57:21.226 ->
12:57:21.226 ->
12:57:21.274 ->
12:57:21.274 ->
12:57:21.274 ->
12:57:21.309 ->
12:57:21.309 ->
12:57:21.355 ->
12:57:21.355 ->
12:57:21.355 ->
12:57:21.402 ->
12:57:21.402 ->
12:57:21.402 ->
12:57:21.448 ->
12:57:21.448 ->
12:57:21.448 ->
12:57:21.494 ->
12:57:21.494 ->
12:57:21.541 ->
12:57:21.541 ->
12:57:21.541 ->
12:57:21.588 ->
12:57:21.588 ->
12:57:21.588 ->
12:57:21.634 ->
12:57:21.634 ->
12:57:21.634 ->
12:57:21.681 ->
12:57:21.681 ->
12:57:21.681 ->
12:57:21.728 ->
12:57:21.728 ->
12:57:21.728 ->
12:57:21.775 ->
12:57:21.775 ->
12:57:21.821 ->
12:57:21.821 ->
12:57:21.821 ->
12:57:21.868 ->
12:57:21.868 ->
12:57:21.868 ->
12:57:21.916 ->
12:57:21.916 ->
12:57:21.916 ->
12:57:21.962 ->
12:57:21.962 ->
12:57:21.962 ->
12:57:22.010 ->
12:57:22.010 ->
12:57:22.010 ->
12:57:22.057 ->
12:57:22.057 ->
12:57:22.104 ->
12:57:22.104 ->
12:57:22.104 ->
12:57:22.150 ->
12:57:22.150 ->
12:57:22.150 ->
12:57:22.196 ->
12:57:22.196 ->
12:57:22.196 ->
12:57:22.244 ->
12:57:22.244 ->
12:57:22.244 ->
12:57:22.291 ->
12:57:22.291 ->
12:57:22.338 ->
12:57:22.338 ->
12:57:22.338 ->
12:57:22.385 ->
12:57:22.385 ->
12:57:22.385 ->
12:57:22.432 ->
12:57:22.432 ->
12:57:22.432 ->
12:57:22.480 ->
12:57:22.480 ->
12:57:22.480 ->
12:57:22.526 ->
12:57:22.526 ->
12:57:22.526 ->
12:57:22.573 ->
12:57:22.573 ->
12:57:22.573 ->
12:57:22.620 ->
12:57:22.620 ->
12:57:22.667 ->
12:57:22.667 ->
12:57:22.667 ->
12:57:22.713 ->
12:57:22.713 ->
12:57:22.713 ->
12:57:22.760 ->
12:57:22.760 ->
12:57:22.760 ->
12:57:22.807 ->
12:57:22.807 ->
12:57:22.807 ->
12:57:22.854 ->
12:57:22.854 ->
12:57:22.854 ->
12:57:22.901 ->
12:57:22.901 ->
12:57:22.901 ->
12:57:22.949 ->
12:57:22.949 ->
12:57:22.949 ->
12:57:22.997 ->
12:57:22.997 ->
12:57:22.997 ->
12:57:23.044 ->
12:57:23.044 ->
12:57:23.091 ->
12:57:23.091 ->
12:57:23.091 ->
12:57:23.138 ->
12:57:23.138 ->
12:57:23.138 ->
12:57:23.184 ->
12:57:23.184 ->
12:57:23.184 ->
12:57:23.232 ->
12:57:23.232 ->
12:57:23.232 ->
12:57:23.279 ->
12:57:23.279 ->
12:57:23.325 ->
12:57:23.325 ->
12:57:23.325 ->
12:57:23.372 ->
12:57:23.372 ->
12:57:23.372 ->
12:57:23.420 ->
12:57:23.420 ->
12:57:23.420 ->
12:57:23.467 ->
12:57:23.467 ->
12:57:23.467 ->
12:57:23.514 ->
12:57:23.514 ->
12:57:23.514 ->
12:57:23.560 ->
12:57:23.560 ->
12:57:23.606 ->
12:57:23.606 ->
12:57:23.606 ->
12:57:23.654 ->
12:57:23.654 ->
12:57:23.654 ->
12:57:23.701 ->
12:57:23.701 ->
12:57:23.701 ->
12:57:23.747 ->
12:57:23.747 ->
12:57:23.747 ->
12:57:23.793 ->
12:57:23.793 ->
12:57:23.793 ->
12:57:23.842 ->
12:57:23.842 ->
12:57:23.842 ->
12:57:23.888 ->
12:57:23.888 ->
12:57:23.935 ->
12:57:23.935 ->
12:57:23.935 ->
12:57:23.982 ->
12:57:23.982 ->
12:57:23.982 ->
12:57:24.028 ->
12:57:24.028 ->
12:57:24.028 ->
12:57:24.075 ->
12:57:24.075 ->
12:57:24.075 ->
12:57:24.122 ->
12:57:24.122 ->
12:57:24.122 ->
12:57:24.168 ->
12:57:24.168 ->
12:57:24.215 ->
12:57:24.215 ->
12:57:24.215 ->
12:57:24.262 ->
12:57:24.262 ->
12:57:24.262 ->
12:57:24.309 ->
12:57:24.309 ->
12:57:24.309 ->
12:57:24.356 ->
12:57:24.356 ->
12:57:24.356 ->
12:57:24.403 ->
12:57:24.403 ->
12:57:24.403 ->
12:57:24.450 ->
12:57:24.450 ->
12:57:24.450 ->
12:57:24.497 ->
12:57:24.497 ->
12:57:24.544 ->
12:57:24.544 ->
12:57:24.544 ->
12:57:24.590 ->
12:57:24.590 ->
12:57:24.590 ->
12:57:24.637 ->
12:57:24.637 ->
12:57:24.637 ->
12:57:24.684 ->
12:57:24.684 ->
12:57:24.684 ->
12:57:24.730 ->
12:57:24.730 ->
12:57:24.730 ->
12:57:24.776 ->
12:57:24.776 ->
12:57:24.824 ->
12:57:24.824 ->
12:57:24.824 ->
12:57:24.872 ->
12:57:24.872 ->
12:57:24.872 ->
12:57:24.918 ->
12:57:24.918 ->
12:57:24.918 ->
12:57:24.965 ->
12:57:24.965 ->
12:57:24.965 ->
12:57:25.012 ->
12:57:25.012 ->
12:57:25.012 ->
12:57:25.059 ->
12:57:25.059 ->
12:57:25.059 ->
12:57:25.105 ->
12:57:25.105 ->
12:57:25.152 ->
12:57:25.152 ->
12:57:25.152 ->
12:57:25.198 ->
12:57:25.198 ->
12:57:25.198 ->
12:57:25.245 ->
12:57:25.245 ->
12:57:25.245 ->
12:57:25.302 ->
12:57:25.302 ->
12:57:25.302 ->
 
Такое случается, но рано или поздно Вы на этот delay напоретесь.
не напорюсь. Мне он тут не нужен. ведь я понимаю зачем он там в теории. Но даже с ним и с моргающей лампочкой, и с Serial.println() данные успеют сбегать за секунду раз 20 в обе стороны как минимум, если реализовывать все верно.
 

ART_HA

Member
не напорюсь. Мне он тут не нужен. ведь я понимаю зачем он там в теории. Но даже с ним и с моргающей лампочкой, и с Serial.println() данные успеют сбегать за секунду раз 20 в обе стороны как минимум, если реализовывать все верно.
ОК, поставьте в loop четыре преобразования АЦП и запустите его без delay, а потом расскажете, увидели ли Вы свой ESPв WiFi.
 

ART_HA

Member
Как я понял тут ищут самый сложный путь, но разбираться в программировании не хотят. Хотят чтобы с форума по запросу бесплатно прислали готовое изделие и с пивом :)
Понятно. Названия альтернативы ESP8266 Вы не знаете, примера, альтернативного примерам Сергея Третьякова и Rui Santos у Вас тоже нет. :p
Зато мусорить в чужих темах Вы горазды... :confused:
 

ART_HA

Member
это как? там же всего один аналоговый канал вроде? Я туда аналоговый датчик холла уже пихал, вроде никаких проблем не было.
А что, аналоговый коммутатор нынче слишком дорог?
Но Вы можете все четыре раза прочитать один и тот же порт, это роли не играет, тут проблема со временем.

да и вместо delay(10) пишите delay(0) или yield();
delay(10) - не описка, просто с неё надо начинать, постепенно уменьшая.
Вот прямо сейчас у меня стоит delay(5), этот аргумент получен в результате подбора аргумента после четырех читок аналогового порта с последующим усреднением результата. То есть ни о каких delay(0) или yield() в таком loop и речи быть не может.
 
А что, аналоговый коммутатор нынче слишком дорог?
нет конечно, но он не АЦП, это просто ключ(типа релюха электронная). он практически мгновенно переключается и не требует затрат ресурсов.
Но Вы можете все четыре раза прочитать один и тот же порт
C:
#define hall A0
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode (hall, INPUT);
}
void loop() {
  int start = millis();
  for(int i=1;i<100;i++)
  {
     int x = analogRead(hall);
     // Serial.println(x);
  }
  int end=millis();
  Serial.println(end-start);
}
100 чтений аналогового порта заняло 10 мс. по логу

delay(10) - не описка, просто с неё надо начинать, постепенно уменьшая.
Не надо ничего постепенно уменьшать, это шаманство какое то. посмотрите для начала результат в мониторе порта.
 

ART_HA

Member
Не надо ничего постепенно уменьшать, это шаманство какое то. посмотрите для начала результат в мониторе порта.
Это не шаманство, а метод тыка. :)
Проинструктируйте плиз поконкретнее - что и как посмотреть.
Приблуда у меня на столе, нет проблем проверить на практике.
 
Дык в стандартном мониторе куда пишет Serial.Println();
Tools-Serial Monitor
Попробуйте для начала собрать только свой код без всяких веб серверов и страниц.
 

ART_HA

Member
Сломался монитор, даже собственный IP не может вывести. Хотя сама система работает - вывод на экран функционирует нормально.
Снимок.JPG
 
сделайте пустой скетч, перенесите в setup и loop только свой код.
Первая строчка в setup
Serial.begin(115200);
 

ART_HA

Member
Запустился.
1 - в начале loop
2 - в конце loop перед delay(5)
3 - в конце loop после delay(5)
Снимок.JPG
 
как видите все ваши измерения пролетают практически мгновенно. если ничего не путаю аналоговый порт читается за 10 микросекунд,
 

ART_HA

Member
как видите все ваши измерения пролетают практически мгновенно.
А я разве где-то утверждал иначе?
Речь ведь не мгновенности операций, а об отбирании этими мгновенными операциями времени у не менее мгновенных операций обслуживания WiFi.
 
не это другая на rtl8720, а мне надо такую как тут https://github.com/pvvx/UBIA но в форме как та что вы привели :)
попозже выложу вам свой упрощенный проект, я его делал когда глюки отлавливал, там всего по минимуму. счас работы привалило...
 
Сверху Снизу