Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь Arduino +esp8266-12е send data to NodeMCU v3(AP)

Тема в разделе "Общие вопросы по esp8266", создана пользователем GinoWalker, 15 май 2018.

  1. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Добрый день! Задача стоит такая: Имеются 2 ардуины про мини, 2 esp8266-12e и 3 платы NodeMCU v3. Надо измерить частоту сигнала поступающего на порт ардуины (на ардуине сделал и работает норм, но надо пока не придумал как померить частоту на Ноде, можно было бы просто заменить все на ноду) частота мереется каждые 100мкс, и каждое значение надо отправить на главный аппарат(server) для уже моих вычислений.
    Вопрос каким способом лучше всего и быстрее передавать данные с ардуинки на Ноду(лолин). (если есть примеру буду признателен)
    Или же если кто знает как замерить частоту на гпио порту Йоды(лолин) по типу FreqCount и так же передать её на сервер.
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    какой диапазон измеряемой частоты?
     
  3. NeoroN

    NeoroN Читатель

    Сообщения:
    150
    Симпатии:
    22
    Я бы подкулючил по последовательному порту и регулярно слал в него "f=5656\n" а в скрипте(lua) на esp8266 UDP подключение, которое раз в 100мс отпраляет эту переменную по сети. Или сервер TCP который по запросу отдает это значение.

    P.S. 5656 это измеренное значение частоты, которое обработает интерпритатор Lua и присвот глобальной переменной f
     
    Последнее редактирование: 16 май 2018
  4. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    1КГц - 100КГц
     
  5. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Почитаю про Ваш метод, Спасибо!
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    Вообще-то 1 кгц - это 1 мс, а у Вас написано что измерения каждые 100 мкс.
    Как вы измеряете частоты с периодом 1 мс каждые 100 мкс?
     
  7. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Спасибо что обратили внимание, я как-то вообще не обращал внимание.
    Немного пересмотрел нужды уточнил что сигнал будет от 10кГц до 80кГц и предавать сигнал надо каждые 10мс
     
  8. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    правильно ли я понял задачу.
    Есть некоторый источник импульсов частота которых меняется от 10 до 80 кГгц с какой-то неизвестной скоростью надо измерить частоту и передать ее по wifi Дискретность измерений 10 мс.
    Возникает вопрос
    Надо мерить частоту или можно мерить интервал между импульсами (период)?
     
  9. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Загвоздка в том что там наложение 2 сигналов меандров, и при их сложении получается другая частота. Так что периоды я и меряю :)
     
  10. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    Если два меандра наложены то что Вы измеряете - среднее число пересечения нуля за 10 мс?
    Если надо измерить частоты двух меандров то надо применить спектральный анализ либо синхронное детектирование
     
  11. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Мне то нужно померить получившуюся частоту, а не узнавать из каких двух она состоит.
    (на картинке как будут выглядеть два меандра сложенных)
     

    Вложения:

  12. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    Тут Вы, похоже, несколько слабы в теории (не обижайтесь :)).
    Понятие "частота" определяется только для идеального бесконечного синусоидального сигнала. Реальный же сигнал описывается понятием "спектр частот". С этим спектром работают разными способами - в зависимости от задачи. Например, используют гармонический анализ - т.е. представляют сложный сигнал в виде суммы простых гармоник (нулевая - это постоянная составляющая, основная - первая гармоника и остальные, вторая, третья и т.д.). Каждая гармоника характеризуется частотой, амплитудой (ну, там, для некоторых задач существенна еще фаза).

    Так что, говоря про частоту сложного сигнала, обычно имеют в виду частоту первой гармоники. И переходами через ноль, я думаю, эту частоту не определишь...
     
  13. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    На обосновую критику никогда не обижусь:) Спасибо за разъяснение!
    Я делал как: на ардуинке мерил частоту библиотекой Freqcount.h эти два сложенных сигнала. И узнав что например 78кГц + 10кГц ардуинка подсчитывает 45кГц (точно не помню) то я мог узнать исходя из этих данных какие контакты соединены и какие нет. И работает вполне норм. и я подумал может можно повторить то-же самое на NodeMCU (Lolin), но понял что надо переделывать библиотеку, а математическим способом высчитать не получилось.
     
  14. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    что-то не увидел двух меандров. Возможно мы с вами по-разному понимаем это.
    У вас на картинке меандр и его гармоники , но нет двух меандров с разной частотой
    Есть один меандр который прошел по искажающей его спектр системе.
    Поясните что за источник этого сигнала
    -----------------------------
    Что же касается понятия "частота" то это как определить.
    Можно как один из параметров синусоиды (два других фаза и амплитуда)
    Можно как среднее в единицу времени число пересечения нулевого уровня знакопеременным сигналом.
    В вашем случае библиотека измеряет именно это т е число импульсов за единицу времени.
    Очевидно у Вас есть два меандра (в идеале две синусоиды) и на выходе вы получаете их смесь
    измеряете среднее число пересечений
    Потом по этому значению определяете ЧТО?
     
    Последнее редактирование: 17 май 2018
  15. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Картинку брал просто похожую для наглядности, если пустите в Мультисиме 2 меандра на осцилограф увидите какое наложение будет. Сам не могу сделать ибо сейчас полностью на Маке сижу.
    зная что получена частота 10кГц то соединен первый контакт, если частота 78кГц то контакт второй. А когда выдавало мне их смесь 48кГц то я знал что оба контакта соеденены
     
  16. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    оба контакта соединены - т е к з между ними?
    Т е Вы подаете на контакты на входе разные частоты
    На другой стороне смотрите частоту и по ее значению определяете номер провода(контакта) или кз
    верно?
     
  17. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    :eek:Сложнее систему, чтобы определить состояние двух контактов (4 возможных сочетания) - я еще не встречал...
     
  18. GinoWalker

    GinoWalker Новичок

    Сообщения:
    17
    Симпатии:
    0
    Именно!
     
  19. nikolz

    nikolz Гуру

    Сообщения:
    4.715
    Симпатии:
    452
    Тогда Вы можете просто измерять среднее число фронтов в единицу времени - Как собственно Вы и делали.
    Алгоритм примерно такой:
    Устанавливаем таймер на 10 мс с автозагрузкой
    В колбеке GPIO считаем в счетчике число вызовов данной функции
    В колбеке таймера отсылаем значение счетчика по WiFi и обнуляем счетчик
    Собственно весь алгоритм.
     
  20. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    Могу только добавить, что в ARDUINO IDE для ESP8266 этот алгоритм реализуется тоже...
     

Поделиться этой страницей