Перейти к содержимому

 

Фотография

Самодельный датчик влажности почвы. Часть 1 (до сентября 2014)

приборы

  • Закрытая тема Тема закрыта
Сообщений в теме: 743

#381 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 18 October 2013 - 08:58

Странно, что qModMaster ошибочных пакетов не находит. Погонял в цикле через него 1000 пакетов с частотой 1 раз в секунду ни одной ошибки......
Надо его будет на часок запустить для статистики.


Николай, можно попробовать отключить датчик и посмотреть сколько попыток опроса он делает. Скорее всего несколько.

А ошибки те же остались? Вообще странно, шумов нет, а данные искажены на короткой линии и низкой скорости. Нужно в датчик загрузить тестовую программу, которая непрерывно передает 0xF0 в линию, а со стороны компьютера, каким нибудь терминалом, посмотреть, что там приходит.

#382 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 18 October 2013 - 17:39

Николай, можно попробовать отключить датчик и посмотреть сколько попыток опроса он делает. Скорее всего несколько.

При отключенном датчике qModMaster опрос прекращает после первой же попытки.

А ошибки те же остались? Вообще странно, шумов нет, а данные искажены на короткой линии и низкой скорости. Нужно в датчик загрузить тестовую программу, которая непрерывно передает 0xF0 в линию, а со стороны компьютера, каким нибудь терминалом, посмотреть, что там приходит.

В qModMaster есть опция BusMonitor, который показывает запрос - ответ в виде:
для 01 команды
[RTU]>Tx > 17:08:25:926 : 01 01 00 00 00 01 FD CA
[RTU]>Rx > 17:08:25:949 : 01 01 01 01 90 48
для 04 команды
[RTU]>Tx > 17:18:35:825 : 01 04 00 00 00 03 B0 0B
[RTU]>Rx > 17:18:35:853 : 01 04 06 01 9D 00 FF 01 0A 3D 39
и.т.д.
Так что приходит и уходит все четко

Игорь, а вы не используете команды типа 0f или 10 на них у меня ответа не будет.
Я сейчас обрабатываю только 01,03,04,05,06

 

 

Поставил еще одну программу MBTest и задал чтение регистров 30001-30003 одного из датчиков с периодом опроса 300мс. Из 3000 пакетов ошибок нет перезапросов тоже. :unknw:



#383 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 18 October 2013 - 20:54

Николай, получается, что проблемы в управляющем приложении. Пока не могу себе представить, где можно ошибиться в чтении данных из COM порта, причем при полном отладочном обвесе... Если честно, ничего в голову не приходит как проверить... буду думать.

#384 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 19 October 2013 - 08:28

Я во тоже всю голову сломал, ведь ваши датчики работают без ошибок....


Вот именно, Добавлю в отладку вывод полученных данных. Посмотрим, что приходит вместо неправильного ID или команды. Если данные не искажены, то с большой вероятностью имеются пропуски полученных данных.

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

Еще попробую раздобыть какой-нибудь промышленный датчик с модбасом. Посмотрим, как там у него с ошибками будет.



PS: да, команды только 01,03,04,05,06

#385 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 21 October 2013 - 00:05

Добавлю в отладку вывод полученных данных.

Тогда уж при ошибке надо фиксировать отправленный и полученный пакет. Так, пожалуй, понятней будет

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

А порядок величин задержек в микросекундах хватит? Там получается 1 бит примерно за 100мкс передается.

Игорь, а вы стандартным виндовым драйвером ком пользуетесь, или напрямую? Смотрю, люди свои библиотеки для ком пишут.

#386 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 21 October 2013 - 11:58

Тогда уж при ошибке надо фиксировать отправленный и полученный пакет. Так, пожалуй, понятней будет

А порядок величин задержек в микросекундах хватит? Там получается 1 бит примерно за 100мкс передается.

Игорь, а вы стандартным виндовым драйвером ком пользуетесь, или напрямую? Смотрю, люди свои библиотеки для ком пишут.


Николай, задержку неплохо бы попробовать от 0.5 до 3мс. Правда если ошибки пропадут, это все равно не правильно.

Для работы с портом использую достаточно популярный компонент "ComPort Library version 4.10" поверх Windows API. Но что-то не так у меня с определением наличия данных в буфере, по крайней мере, у меня не всегда получается определить верно (как выяснилось). Попробую найти альтернативу.

#387 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 22 October 2013 - 00:56

Игорь, попробовал задержку. 10мкс,100мкс,500мкс,1мс - особо не влияет, 1,5мс - 40%, 2,0мс - 50%,2,5мс - 96%, 3,0мс - 99% ошибок.

#388 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 22 October 2013 - 09:21

Николай, спасибо, понял. Ожидал немного другого, ну ладно. В общем переделал я модуль работы с COM портом, только проверить особо не получается (ошибок как не было, так и нет), а промышленный датчик пока не раздобыл. Попробуйте, может теперь лучше будет. https://docs.google....dit?usp=sharing

#389 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 22 October 2013 - 23:37

Игорь, с новым приложением один датчик гонит 80% ошибок - это тот где задержек не вводил, а второй с 10мкс задержкой 90%.
Добавил в конец файла сегодняшние сообщения http://yadi.sk/d/WoAY5eCCB3F9R
Может чтение ком порта вести с двойной буферизацией? Первый виндовый буфер, а второй в программе. Идея такая: В течении всего таймаута опроса переписывать данные с виндового буфера в свой, а перед новым опросом произвести разбор принятых пакетов. Для удобства можно еще буфер отправленных пакетов сделать, чтобы было что сравнивать.

#390 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 23 October 2013 - 00:35

Николай, то, что в журнале ошибок - это полный хаос :gamer3: Как раз в этом варианте все сделано по науке, выставлены значения таймаутов для чтения каждого байта, производится очистка входных и выходных буферов перед обменом и при ошибке. На осциллографе все выглядит просто идеальным. Мои датчики за несколько часов не выдали ни одной ошибки, причем я еще повесил один сенсор в воздух и приложение периодически включает реле датчика и насоса. Двойной буфер здесь не нужен, я в момент отладки выводил служебную информацию, длина данных во входном буфере не превышает одного байта, в редких случаях двух байтов, и то из-за режима отладки. Завтра поеду искать промышленные датчики. Кажется от охранных сигнализаций подойдут. Больше не вижу способа как-то отладить обмен. PS: может дабы не засорять в ветку, промежуточную отладку в личку?

#391 therion

therion

    Ветеран форума

  • Пользователи
  • PipPipPipPipPip
  • 762 сообщений
  • Меня зовут:Андрей
  • Пол:
  • Город:Батайск
  • Коллекция:посмотреть

Отправлено 06 November 2013 - 17:53

Кто пробовал обрабатывать растения этим препаратом? Какие результаты?

#392 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 29 November 2013 - 00:26

Давно не писал в эту тему. По результатам отладки, как мы с Игорем выяснили, дело оказалось в драйвере USB-RS485. Там по умолчанию стояло ожидание данных 10мс. То есть он принимал в этот таймаут данные, а потом пачкой скидывал в приложение. При настройке на 1мс все выглядит более менее прилично.

#393 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 06 December 2013 - 18:55

Небольшой отчет по работе с сенсором для датчика влажности. Как я уже говорил выше, контактный сенсор имеет серьезный недостаток - сильное изменение показателей в зависимости от плотности прилегания к почве. Возможны варианты, когда после просыхания и последующего полива показания будут невереными и потребуется перекалибровка. Бесконтактный сенсор, теоретически, не должен иметь проблем с плотностью прилегания, однако это не совсем так. За основу для экспериментов я взял конструкцию Николая (ламинированный двухлепестковый сенсор из фольгированного стеклотекстолита). Я испытывал эту конструкцию и заметил ощутимое изменение показателей при случайном изменении положения сенсора. Стабильность значительно улучшилась после добавления пары слоев скотча, но чувствительность заметно ухудшилась. Увеличение частоты исправило проблему с чувствительностью, но и увеличились наводки. В общем решил изобретать сенсор по другому :) Во-первых, по совету Николая, использовал внешний генератор с измерительной цепью расположенный непосредственно на сенсоре. Это избавляет от проблем с соединительным кабелем и позволяет экспериментировать с различными конструкциями сенсора не трогая блок с МК и интерфейсом. Во-вторых, постарался использовать минимальную возможную частоту. И в третьих, использовать максимально толстый диэлектрик. После серии экспериментов получил вот такую конструкцию (абсолютно непригодную для цветочных горшков). Прикрепленный файл  sens_01.jpg   96.92К   23 Количество загрузок: Сенсор состоит из двух пластин из оргстекла толщиной три миллиметра каждая с зажатыми между ними лепестками из сложенной вдвое пищевой фольги. Верхние углы лепестков загнуты еще раз и в изгиб вставлен очищенный многожильный провод. По периметру и в центре пластины оргстекла зашкурены и проклеены. С электроникой все просто, генератор на 7402, измерительная цепь на двух диодах и стабилизатор на 5В. Частота генератора 1.25МГц. На выходе аналоговый сигнал с напряжением 2.7В на воздухе, и 0.4В в воде. Как я уже говорил, для горшков это не подходит, а вот для грядок - самый раз. Показания практически не меняются при "шевелении" сенсора (толщина диэлектрика существенно больше, чем расстояние от почвы до диэлектрика). Охватывается достаточно большой объем почвы для измерений. Низкая частота уменьшает наводки.

#394 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 06 December 2013 - 23:49

Игорь,поздравляю с почином! Наконец перебрались на бесконтактники. Мои мысли по сенсору: Кренка там наверное избыточна. Генератор надо бы сделать на smd и расположить внутри. Конструкция возможна такая. Взять пластину текстолита 150х150 приклеить к ней электроды с платой и заклеить сверху несколькими слоями ткани с компаудом. В итоге получится герметичный сенсор с торчащим из него проводом. Частота у вас получилась ниже моей видимо из за большей площади сенсора.

#395 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 07 December 2013 - 09:27

Игорь,поздравляю с почином! Наконец перебрались на бесконтактники.


Ну... надо все этапы пройти было, чтобы понять.

Мои мысли по сенсору:
Кренка там наверное избыточна. Генератор надо бы сделать на smd и расположить внутри.


Понятное дело, что smd, здесь габарит важен. Пока прототип, номиналы подбирать удобно. Кренка для удобства, можно запитать от чего угодно и не думать про стабильность.

Конструкция возможна такая. Взять пластину текстолита 150х150 приклеить к ней электроды с платой и заклеить сверху несколькими слоями ткани с компаудом. В итоге получится герметичный сенсор с торчащим из него проводом.


Да, хорошая идея. Правда возиться во всем этом липком не хочется :) Тоже вот думаю, во что-бы макнуть всю конструкцию, чтобы она монолитной стала.

Частота у вас получилась ниже моей видимо из за большей площади сенсора.


Да, уменьшал частоту до минимума, который площадь позволяет. Еще пробовал сенсор с пластиной 20 x 20 см. Там можно 700 КГц всего использовать, но размер великоват. Толщину оргстекла разную пробовал, с увеличением толщины габарит сильно растет. Еще хочу попробовать размер поменьше, использовать коробочки из под дисков. Там пластик потоньше и всегда под рукой есть.

Николай, а у вас какое соотношение сигналов между "в воде" и "в грязи"?


Схему в понедельник выложу, с собой нету :)

#396 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 08 December 2013 - 00:48

Николай, а у вас какое соотношение сигналов между "в воде" и "в грязи"?

Игорь, даже озадачили. Я как то даже и не пробовал так тестировать.
По теории это зависит от состава почвы, насыщенностью воздухом и водой и все это в зоне измерений.

Попробовал сегодня потестировать 555 таймер в роли генератора.
Удовлетворительно работает до 2,5мГц - выше частоту не пробовал поднимать за ненадобностью.
При 5в питании немного завален верх переднего фронта.
При увеличении напряжения питания от 7в и выше фронт становится симметричен заднему.

#397 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 08 December 2013 - 09:28


Игорь, даже озадачили. Я как то даже и не пробовал так тестировать.
По теории это зависит от состава почвы, насыщенностью воздухом и водой и все это в зоне измерений.

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

А чем 555 таймер лучше 7402 в данном случае? Я 7402 до 5МГц пробовал. Сигнал кривой, но на работу никак не влияет. На макетке дребезг на фронтах был, на печатке все гладко, только фронты завалены.

#398 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 08 December 2013 - 14:54

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

Игорь, так я и говорю что в разных условиях будут разные результаты.
По крайней мере, у меня дома рабочий диапазон в почве начинается где то от 300-350 едениц при датчике в воде около 100. Это при условии. что до полного болота я не поливаю.
Весь диапазон от 100 до 900.

А чем 555 таймер лучше 7402 в данном случае? Я 7402 до 5МГц пробовал. Сигнал кривой, но на работу никак не влияет.

Размером лучше - soic8. Быстродействие по переключению получилось 50-60 нс при паспортных 100нс, так что запас по частоте еще есть.

#399 UL7AAjr

UL7AAjr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 512 сообщений
  • Меня зовут:Игорь
  • Пол:
  • Город:Алма-Ата

Отправлено 09 December 2013 - 10:09

Схемка генератора с измерительной цепью Прикрепленный файл  gen_msr_net.jpg   36.06К   30 Количество загрузок: Генератор надо переделать на 4001, 7402 подозрительно много жрет ~30мА. Еще попробовал сенсор из коробки из-под дисков. Размер 10 х 10 см. Прикрепленный файл  sens_02.jpg   75.46К   26 Количество загрузок: Материал хрупкий, вырезать не очень просто, легко раскалывается. А вот результат на частоте 1.25МГц почти такой-же. На воздухе 2.9В, в воде 0.5В. В общем направление дизайна стало более-менее понятно. Похоже сенсор вместе с генератором можно травить из фольгированного текстолита, сверху наклеивать пластик 1-1.5 мм и все это заливать чем-нибудь. Можно попробовать макнуть в расплавленный полистирол. Но это для горшков. Для грядки использовать пластик потолще и размер побольше. Николай, для удобства сравнения, привел значения на воздухе к 100, получается, что у вас в воде ~11, у меня ~15. Еще подскажите какие-нибудь популярные диоды в smd. Я так понимаю, что нужны обычные сигнальные а не шоттки?

#400 nikr

nikr

    Активный участник

  • Пользователи
  • PipPipPipPipPip
  • 529 сообщений
  • Меня зовут:Николай
  • Пол:
  • Город:Москва

Отправлено 09 December 2013 - 17:28

Генератор надо переделать на 4001, 7402 подозрительно много жрет ~30мА.


Игорь, само собой большие токи не нужны. У меня на 555 при 5в питании кушает 1,1мА.
Да, и наверное насчет кренки я чуть выше погорячился - с ней пожалуй стабильность измерений будет выше.
В корпусе sot89 они довольно небольшие.
А вы, я смотрю, от температурного датчика не отказались? Вроде он при таком сенсоре уже без надобности.

Материал хрупкий, вырезать не очень просто, легко раскалывается.


Ежели горячей струной резать раскалываться не будет, но лучше на открытом воздухе.

Похоже сенсор вместе с генератором можно травить из фольгированного текстолита, сверху наклеивать пластик 1-1.5 мм и все это заливать чем-нибудь. Можно попробовать макнуть в расплавленный полистирол. Но это для горшков.


для горшков такие размеры не подойдут. Следовательно нужна частота выше и изоляция тоньше.

Еще подскажите какие-нибудь популярные диоды в smd. Я так понимаю, что нужны обычные сигнальные а не шоттки?


Любые ВЧ диоды. Я остановился на стекляшках 1n4148.



Темы с аналогичным тегами приборы

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Copyright © 2024 homecitrus.ru
 

Яндекс цитирования