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

 

Фотография

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

приборы

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

#241 nikr

nikr

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

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

Отправлено 15 August 2013 - 01:00

Думал сейчас о составе сенсоров на датчике. Для температуры наверное неплохо один термометр в грунте и один на плате (для температуры воздуха). Ставить наверное лучше аналоговые они дешевле, например lm35 или tmp36 они есть в smd корпусах. Еще дешевле температуру p-n переходом замерять, но там чувствительность в 5 раз меньше да и калибровать по двум точкам надо. Можно еще влажность воздуха и освещенность замерять. правда эти сенсоры уже в крону надо выносить.

#242 UL7AAjr

UL7AAjr

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

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

Отправлено 15 August 2013 - 09:26

Дополнительный термометр на плате - пожалуй да. Пусть будет регистр 30003. Предлагаю такой-же формат хранения как у DS18B20. Четыре младших бита в word задают дробную часть. Для преобразования в число с плавающей запятой, делим содержимое регистра на 16.

По поводу аналоговых lm35. Они по цене не сильно отличаются от DS18B20. У нас LM35 - 1.5USD, DS18B20 - 2.5USD. Опять же при необходимости двух датчиков температуры, проще навешать их на одну шину (экономия на стоимости разъема и места под него).

Кстати, у STM8L уже есть термометр в чипе. Пожалуй подключу его, как предлагал, на регистр 30003.

Задумался о ценах, и вообще интересная вещь получается. Оказывается МК серии STM8L15x, которые и так имеют встроенный термометр, стоят дешевле DS1820! Бред какой-то. Получается вместо термометра, выгодней целый МК использовать, тем более, что ему вообще никакой обвес не нужен.

Тем не менее, процесс разработки управляющего приложения идет полным ходом. Вот уже как это выглядит.
Прикрепленный файл  gm.jpg   86.59К   26 Количество загрузок:

Это уже частично работоспособный вариант.

Предусмотрел несколько типов датчиков:
1. Влажность и температура
2. Насос
3. Освещение
4. Шторы
5. Сигнализация

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

Вопросы и пожелания приветствуются :)



#243 vovka.sv19

vovka.sv19

    Участник

  • Пользователи
  • PipPipPip
  • 43 сообщений
  • Меня зовут:Владимир
  • Пол:

Отправлено 15 August 2013 - 10:00

Датчик дождя - если окно проветривания находится на крыше, то на время дождя закрывать/прикрывать. Концевики крайних положений окон или датчики угла поворота окон Может еще датчик ветра - для закрытия окон? Или направления ветра - чтобы с ветренной стороны закрывать окна, а с другой открывать. Как-то так... Датчик движения человека для сигнализации

#244 UL7AAjr

UL7AAjr

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

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

Отправлено 15 August 2013 - 10:35

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

Сейчас как раз прорабатываю метод описания взаимодействия различных датчиков. Есть два варианта:

1. Скрипт на каком-либо языке. Может быть затруднительно для пользователя.
2. Куча переключателей в настройках датчика. Затруднительно для разработчика :)



#245 nikr

nikr

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

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

Отправлено 15 August 2013 - 22:18

По поводу аналоговых lm35. Они по цене не сильно отличаются от DS18B20. У нас LM35 - 1.5USD, DS18B20 - 2.5USD. Опять же при необходимости двух датчиков температуры, проще навешать их на одну шину (экономия на стоимости разъема и места под него).

У нас LM35 в TO92 - 45р, а DS18B20 в таком же корпусе 90р. Если Взять Soic8 то DS18B20 уже 180р. Свободных каналов АЦП еще много.
Опять же разъемы для сенсоров влажности и температуры я делать не собираюсь - все на одной плате. Попробовал спиливать наждачным бруском ТО92 - при желании до 1мм толщины аккуратно сточить можно, так что можно в ямку на текстолитовом сенсоре запихать.

Кстати, у STM8L уже есть термометр в чипе. Пожалуй подключу его, как предлагал, на регистр 30003.

Насчет термометра в чипе особо не обольщайтесь.Скорее всего он очень не точный и служит в основном для контроля перегрева кристала. На некоторых Атмегах 328 такая штука тоже имеется.

#246 nikr

nikr

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

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

Отправлено 15 August 2013 - 22:35

Тем не менее, процесс разработки управляющего приложения идет полным ходом.

Игорь, а какие еще режимы пересчета влажности предусмотрены?

#247 UL7AAjr

UL7AAjr

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

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

Отправлено 16 August 2013 - 08:30

У нас LM35 в TO92 - 45р, а DS18B20 в таком же корпусе 90р. Если Взять Soic8 то DS18B20 уже 180р. Свободных каналов АЦП еще много.
Опять же разъемы для сенсоров влажности и температуры я делать не собираюсь - все на одной плате. Попробовал спиливать наждачным бруском ТО92 - при желании до 1мм толщины аккуратно сточить можно, так что можно в ямку на текстолитовом сенсоре запихать.


LM35 калибровать придется или можно обойтись без калибровки и сделать пересчет в управляющем приложении. Надо какие-то настройки на пересчет добавить. Видимо два значения: смещение и коэффициент.

 

Насчет термометра в чипе особо не обольщайтесь.Скорее всего он очень не точный и служит в основном для контроля перегрева кристала. На некоторых Атмегах 328 такая штука тоже имеется.


В STM8L15x термометр не сказать, что плохой, но среднего качества. Линейность +/- 1 градус. Он правда как-то калибруется на стадии производства. По крайней мере так в доках написано. Но для измерения температуры воздуха вполне пойдет. Сам МК вообще не греется, жрет меньше 1ma.

А режимов пересчета пока два. Один "заточен" под мой вариант сенсора, а второй для линейного преобразования. Просто задается значения АЦП для 0% и 100%. Остальные значения не используются. В уме держу третий вариант - таблица значений, но пока не делал.

Сейчас тружусь над логикой обработки датчиков. Вроде как основная стратегия готова. Настраиваю переключателями в установках датчика. Уже работает потихоньку.

Прикрепленный файл  gm1.jpg   83.6К   13 Количество загрузок:

Добавил режим пересчета температуры по двум точкам.



#248 nikr

nikr

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

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

Отправлено 16 August 2013 - 16:50

LM35 калибровать придется или можно обойтись без калибровки и сделать пересчет в управляющем приложении. Надо какие-то настройки на пересчет добавить. Видимо два значения: смещение и коэффициент.

Ну да, там линейный график 10мв/град. У вас похожий режим уже сделан для основного сенсора.

Николай, а вы уже rs485 и modbus прикрутили?


Сейчас как раз в процессе прикручивания modbus. Пока упирается. Все железо на данный момент навесное. Руки пока не дошли печатную плату развести.

#249 nikr

nikr

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

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

Отправлено 17 August 2013 - 02:12

Николай, если это поможет, могу выслать свой модуль для ModBus на ST Assembler (с комментариями).

Да нет, Игорь, не поможет. Я пишу на С, да еще стараюсь меньше задевать специфичное ардуиновское распределение ресурсов. Пока только один из таймеров на свои задачи забрал. Остановился на частоте накачки 2,66 мГц и оптимизировал по времени измерительную цепь, а то на исходной слишком долго процес заряда разряда шел. Теперь заряд и разряд по 50мс. В принципе заряжается за 30мс, но одинаковыми интервалами переключать генратор код короче получается. Так что процесс идет потихоньку. Вот от управляющей я бы не отказался, конечно когда ее закончите.



#250 UL7AAjr

UL7AAjr

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

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

Отправлено 19 August 2013 - 07:28

Да нет, Игорь, не поможет. Я пишу на С, да еще стараюсь меньше задевать специфичное ардуиновское распределение ресурсов. Пока только один из таймеров на свои задачи забрал. Остановился на частоте накачки 2,66 мГц и оптимизировал по времени измерительную цепь, а то на исходной слишком долго процес заряда разряда шел.
Теперь заряд и разряд по 50мс. В принципе заряжается за 30мс, но одинаковыми интервалами переключать генратор код короче получается. Так что процесс идет потихоньку. Вот от управляющей я бы не отказался, конечно когда ее закончите.


2.66 MHz - уже можно по радио слушать :) Не сильно много? Тем не менее, если вы используете цепь из поста #247, то динамический диапазон можно увеличить без увеличения частоты, увеличивая номинал резистора R1. Но есть предел, при котором линейность начнет ухудшаться.

Управляющее приложение более-менее работает, по крайней мере уже умеет поливать. Но вот в самой идее я, кажется, здорово протормозил. У меня вся иерархия классов датчиков "заточена" на наличие двух 16-ти разрядных и двух булевых регистров. А мне, идиоту, надо было вообще к регистрам не привязываться, и добавлять их по мере необходимости. Технология получается более сложная, но универсальная, позволяющая использовать готовые, промышленные датчики. Сейчас вот сижу и тупо размышляю, либо все с нуля переделать, либо затычек (как в Windows) наставить :)

Склоняюсь к переделке. Изучаю наличие, характеристики и доступность промышленных датчиков. Если есть какие интересные ссылки - прошу поделиться.

#251 nikr

nikr

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

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

Отправлено 19 August 2013 - 12:47

2.66 MHz - уже можно по радио слушать :) Не сильно много? Тем не менее, если вы используете цепь из поста #247, то динамический диапазон можно увеличить без увеличения частоты, увеличивая номинал резистора R1. Но есть предел, при котором линейность начнет ухудшаться.


Как мне помнится, промышленные датчики такого типа работают на несколько больших частотах. При исследовательских работах применяют частоты вплоть до 50-100 гГц, а у промышленных датчиков обычно 70 мГц.
При стандартной тактовой частоте ардуины в 16 мГц реально без внешнего генератора получить частоты только до 8 мГц.
Если увеличивать R1 увеличится время накачки. При номиналах из поста #247 это время было около 5 сек при этом приемлемый динамический диапазон достигался на 500кГц. Для поливалки это конечно не особо критично. Для увеличения скорости измерений пришлось уменьшить в 10 раз номиналы R1,C3,R2. При этом естественно пришлось повышать частоту до 2,66 мГц, чтобы не потерять диапазон. Остался трехкратный запас по частоте - можно геометрией сенсора еще поиграть.

Склоняюсь к переделке. Изучаю наличие, характеристики и доступность промышленных датчиков. Если есть какие интересные ссылки - прошу поделиться.

Давно не изучал данную тему, но вот ссылочка на обзор нескольких датчиков
http://www.decagon.ru/control.pdf

Игорь, тут очередная мысль возникла. Может не стоит постоянно датчику землю пытать? Сделать режим измерения по запросу от управляющей программы. В DS18B20, например, есть два режима постоянное измерение и по запросу.

#252 UL7AAjr

UL7AAjr

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

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

Отправлено 19 August 2013 - 16:25

Про 2.66 MHz. Это ладно, не критично. Если датчик рядом, проблем не должно быть. А вот время накачки от R1 не должно зависеть. R1 C1 и сенсор - это просто делитель, а вот R2 и C3 - сильно влияют. На такой частоте, я бы поставил С3 = 0.1Mf или даже 0.01Mf, а R2 оставил бы 100K. Главное, чтобы t(R2 C3) было существенно больше периода импульса накачки. По поводу периодичности замера влажности. Самый оптимальный момент вызова процедуры замера - сразу после опроса датчика. Их, по любому, раз в минуту, а я даже думаю раз в 5 сек, опрашивать надо. За ссылку - спасибо:-D В итоге, решил все переписать. И все-таки придется скрипты добавить. Добавлю бейсик и паскаль. Иначе никак не получается. В конце-концов для умных людей это все делается:-D

#253 nikr

nikr

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

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

Отправлено 20 August 2013 - 15:45

А вот время накачки от R1 не должно зависеть. R1 C1 и сенсор - это просто делитель, а вот R2 и C3 - сильно влияют. На такой частоте, я бы поставил С3 = 0.1Mf или даже 0.01Mf, а R2 оставил бы 100K. Главное, чтобы t(R2 C3) было существенно больше периода импульса накачки.


R1 и C3 напрямую влияют на постоянную заряда, а R2 и C3 на постоянную разряда цепи. Шунтирование реактивным сопротивлением сенсора влияет в основном на напряжение до которого зарядится накопительный конденсатор, а постоянная заряда от него сильно не меняется. Попробую по вашей рекомендации увеличить R1,R2 и уменьшить С3 посмотрю какой эффект даст.

Modbus прикрутил, обрабатываются команды 1,2,3,4,5,6 - наверное для датчика достаточно если не будем пользовательский диапазон использовать.

Игорь, появилась идея сделать на датчике управляемый выход со стандартным ШИМ сигналом для управлением сервоприводом.
Штука очень удобная должна получиться тем более что китайские сервы довольно дешевые. Можно под это выделить регистр хранения, например 40001. В него можно грузить угол поворота сервы в градусах с диапазоном от 0 до 180.

 

а что будет вращать серва?

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

#254 UL7AAjr

UL7AAjr

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

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

Отправлено 21 August 2013 - 07:40

Николай, R2 вообще можно убрать. Он там просто для "порядку" стоит (например для симуляции в Multisim). Есть же еще входное сопротивление МК, да и сам конденсатор , надеюсь, не танталовый. Базовых команд modbus вполне достаточно. Если честно, я вообще не стал обслуживать команды записи типа write multiply. Выглядят эти команды опасными и ненужными :) По поводу дополнительных регистров - не проблема. Я так понимаю, что в этом регистре будет хранится настройка угла поворота сервы? В приложении просто вручную задается значение. Или как-то по другому? Еще можно поподробней про сервы китайские? А то для поворота крана, я к стеклоподъемникам от жигулей присматриваться начал :)

#255 oduvan

oduvan

    Участник

  • Пользователи
  • PipPipPip
  • 55 сообщений
  • Меня зовут:Сергей

Отправлено 21 August 2013 - 10:10

А клапан от стиралки не проще? у меня на ура работает только пока в мануальном режиме :(
Могу предположить что не охота тащить 220 в теплицу но его можно и на выходе из водопровода дома/в сарае поставить.
Ну или вот такую штуку на 12 в прилепить http://m8928.ru/good...-воды?from=NzI5

#256 nikr

nikr

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

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

Отправлено 21 August 2013 - 10:50

А клапан от стиралки не проще? у меня на ура работает только пока в мануальном режиме :(
Могу предположить что не охота тащить 220 в теплицу но его можно и на выходе из водопровода дома/в сарае поставить.
Ну или вот такую штуку на 12 в прилепить http://m8928.ru/good...-воды?from=NzI5

Логический выход 12в 0.2а на датчике присутствует - так что такими клапанами управлять можно.
Давайте рассмотрим домашнюю оранжерею, там куча горшков и у каждого растения свои требования к поливу. Здесь уже логичней развести магистраль из резервуара с одним насосом и кучу миниатюрных краников перекрывающих капиллярные трубки.

#257 dimmich

dimmich

    Участник

  • Пользователи
  • PipPipPip
  • 28 сообщений
  • Меня зовут:dimmich
  • Пол:
  • Город:Владимир

Отправлено 21 August 2013 - 11:26

Дешевле и доступнее клапаны от автомобилей. Вот например:
Электромагнитный клапан омывателя стекол ВАЗ 2109
...хотя думаю клапаны других производителей в магазинах еще дешевле встречаются.

Вот случайно попалась реализация полива растений:
http://radiokot.ru/f...417310#p1417310

#258 nikr

nikr

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

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

Отправлено 21 August 2013 - 11:33

Николай, R2 вообще можно убрать. Он там просто для "порядку" стоит (например для симуляции в Multisim). Есть же еще входное сопротивление МК, да и сам конденсатор , надеюсь, не танталовый.

Я организовал цикл замера таким образом: заряд пачкой импульсов до значения когда график уже близок к горизонтали, чтение АЦП и полный разряд конденсатора. Так что R2 мне нужен. На макетке пока стоит электролит, а на плате наверное будет smd керамика.

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

Да, предполагаю хранить угол поворота от 0 до 180 град. Можно хранить скважность от 1000 до 2000 мкс, но угол поворота выходного вала как то наглядней.

Еще можно поподробней про сервы китайские? А то для поворота крана, я к стеклоподъемникам от жигулей присматриваться начал :)

Серва (рулевая машинка) применяются в моделизме. Состоит из микродвигателя(коллекторный, бесколлекторный), редуктора( пластик, металл), датчика положения и схемы управления(аналоговая, цифровая).
Напряжение питания 5-6 вольт. Момент на валу от 1кг/см у микросерв и выше.Управляются ШИМ сигналом периодом от 20мс( цифровые сервы могут обрабатывать входной сигнал с меньшим периодом) скважностью 1000-2000мкс.
Подробнее почитать можно -http://www.rcdesign....dio/servo_intro

#259 nikr

nikr

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

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

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

Дешевле и доступнее клапаны от автомобилей. Вот например:
Электромагнитный клапан омывателя стекол ВАЗ 2109
...хотя думаю клапаны других производителей в магазинах еще дешевле встречаются.

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


Если речь идет о индивидуальном подходе то конечно вопрос отпадает)



#260 UL7AAjr

UL7AAjr

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

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

Отправлено 21 August 2013 - 18:55

Николай, между циклами замера, конденсатор по-любому успеет разрядиться. На частоте 2Mhz электролит точно не нужен, хватит и 100n, главное успеть считать показания пока он не разрядился. Ну да ладно, особо не важно, при отладке по-любому "устаканится".

По поводу доп. регистров для хранения настроек. Сделаю функцию добавление регистров настроек к датчикам с возможностью записи данных.

Идею сервомоторов знаю :) Думал подскажете что-то конкретное. Мне кран обычный шаровый D25 открывать-закрывать надо. Моторедуктор от стеклоподъемников Жигулей выглядит многообещающе и не дорого. У меня сейчас на долив емкости стоит электромагнитный клапан на 220В (достаточно дорогой ~80USD), который при нулевом давлении открывается, но есть проблема, при 2.5Атм на входе, он открыться не может, гудит и греется.

На грядках успешно трудятся мастеркитовские клапана на 12В, жрут не много, монтировать удобно, по цене приемлемо и, главное, что у нас продаются. Для капилярного шланга протока хватает. Вот такие http://www.masterkit...?code_id=887029.

О!, dimmich, с приездом :) Клапана от омывателей не пробовал, они при 2Атм сколько литров в час пропускают?



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

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

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

Copyright © 2024 homecitrus.ru
 

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