|
Автополив с Ардуино
|
|
| Artur | Дата: Среда, 17.04.2013, 01:17 | Сообщение # 1 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Доброго всем дня). Я недавно наткнулся на такую вещь как микроконтроллер ардуино и сразу задумался как бы его тоже применить. Хочу сделать дома автополив по такой схеме датчик влажности - ардуино - радио модуль - радиоуправляемое реле - полив помпой. При это еще поставить небольшой дисплейчик для отображения текущего уровня влажности. Хотелось бы установить точный параметр влажности, ниже которого бы начинался полив. На самом деле пока довольно смутно представляю как это все будет работать. Реле планирую такое http://www.chipdip.ru/product/mk333/ Посоветуйте пожалуйста модель модель радиомодуля для ардуино для управления данным реле??
|
| |
| |
| Serg | Дата: Среда, 17.04.2013, 07:17 | Сообщение # 2 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| Радиомодуль + реле с магазина "DV-Robot" обойдется Вам в 9 раз дешевле. А для Вашего реле нужен кодовый передатчик. Ищите на том же сайте. Зачем Вы так усложняете свой проект? Нельзя по проводам? Датчик влажности будет от аккумулятора питаться?
|
| |
| |
| Artur | Дата: Среда, 17.04.2013, 18:14 | Сообщение # 3 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Цитата (Serg) Радиомодуль + реле с магазина "DV-Robot" обойдется Вам в 9 раз дешевле. А для Вашего реле нужен кодовый передатчик. Ищите на том же сайте. Зачем Вы так усложняете свой проект? Нельзя по проводам? Датчик влажности будет от аккумулятора питаться? По проводам нет возможности. Датчик будет просто подключен к ардуино, как я понял для него не нужно отдельное питание. Не могли бы вы уточнить что имеется ввиду под кодовым передатчиком?
|
| |
| |
| Serg | Дата: Среда, 17.04.2013, 19:33 | Сообщение # 4 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| Датчики могут быть разные. С питанием и без питания. Если нет возможности использовать провода, значит Ардуино будет около датчика влажности. Ей ведь нужно питание? Значит будет аккумулятор. Реле, которое планируется применить, управляется по радиоканалу с помощью кода-некоторой последовательностью нулей и единиц. То есть, это реле можно включить только определенным передатчиком, который излучает эту последовательность. Такие реле обычно продаются в паре передатчиками. Еще вариант- использовать обычный радиомодуль, а эту последовательность записать в ардуино.
|
| |
| |
| Artur | Дата: Среда, 17.04.2013, 20:30 | Сообщение # 5 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Цитата (Serg) атчики могут быть разные. С питанием и без питания. Если нет возможности использовать провода, значит Ардуино будет около датчика влажности. Ей ведь нужно питание? Значит будет аккумулятор. Реле, которое планируется применить, управляется по радиоканалу с помощью кода-некоторой последовательностью нулей и единиц. То есть, это реле можно включить только определенным передатчиком, который излучает эту последовательность. Такие реле обычно продаются в паре передатчиками. Еще вариант- использовать обычный радиомодуль, а эту последовательность записать в ардуино. Ардуино и будет возле датчика. Ардуино будет питаться от БП. Точно не знаю, но мне кажется датчик влажности просто подключается к ардуино, без доп питания. К радио реле идет маленький пульт с двумя кнопками (на фото видно http://www.chipdip.ru/product/mk333/ ), можно сделать, в принципе, чтобы ардуин замыкал эти кнопки по необходимости и управлял реле. По всей видимости это можно реализовать обычной одинарной релешкой от ардуина.
|
| |
| |
| Serg | Дата: Среда, 17.04.2013, 20:43 | Сообщение # 6 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| после маленькой переделки этот пульт вполне подойдет. Пугает лишь цена комплекта.
|
| |
| |
| Artur | Дата: Среда, 17.04.2013, 21:09 | Сообщение # 7 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Цитата (Serg) после маленькой переделки этот пульт вполне подойдет. Пугает лишь цена комплекта. Спасибо за ваши консультации. Можно вас еще немножко помучить)
В чип и дип цены завышены, можно купить за 1400-1700) Остается еще 2 вопроса) 1. Для подключения этого пульта к ардуино понадобиться реле? 2. Будет ли датчик влажности выдавать количественный уровень влажности (на жк дисплей) или там только путем регулировки встроенного потенциометра возможно управлять сигналом на вкл и выкл?
|
| |
| |
| Serg | Дата: Среда, 17.04.2013, 21:34 | Сообщение # 8 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| здесь можно купить за 150-220 руб. Реле не понадобится. Их можно соединить напрямую. Датчики бывают разные, но почти все позволят вывести уровень влажности на дисплей. А уровень срабатывания можно установить любой в программе.
|
| |
| |
| Artur | Дата: Четверг, 18.04.2013, 22:07 | Сообщение # 9 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| И так я прикинул для реализации сего проекта мне может понадобиться следующий набор (Файл в приложении).
У меня есть БП 12В 1А - думаю от него запитать ардуин через понижающий Как думаете что еще может понадобиться)?
И еще когда у вас появиться датчик темпы и влажности DHT22
Сообщение отредактировал Artur - Четверг, 18.04.2013, 22:22 |
| |
| |
| Serg | Дата: Четверг, 18.04.2013, 22:44 | Сообщение # 10 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| Возьмите лучше большую макетную плату. Датчика DHT11 для Вашего проекта вполне хватит
|
| |
| |
| Artur | Дата: Четверг, 18.04.2013, 23:38 | Сообщение # 11 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| На сколько большую плату? Подойдет такая? http://www.dvrobot.ru/shop/i102.maketnaya_plata_mv-_51a.htm
|
| |
| |
| Ivan-771 | Дата: Пятница, 19.04.2013, 06:37 | Сообщение # 12 |
 5 Вольт
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Offline
| Цитата (Artur) На сколько большую плату? Подойдет такая? http://www.dvrobot.ru/shop/i102.maketnaya_plata_mv-_51a.htm Прото щитом, можно отделаться. А всё нельзя ли спаять? Чтоб выглядело похожее на устройство, а не на кипу проводов? Я себе для аквариума делал, на макетной плате для пайки. Да пайка надёжней.
|
| |
| |
| Artur | Дата: Понедельник, 22.04.2013, 22:05 | Сообщение # 13 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Всем спасибо за помощь . Вроде заказал все что нужно. Попытаюсь сделать на протощите, но на всякий случай взял и макетную плату небольшую. (думаю еще пригодиться). Скажите дисплей LCD Nokia5110 подключается к плате без пайки? Может быть стоит взять Переходник для LCD IIC/I2C?
Хотел уточнить по датчикам влажности. Я читал что у них покрытие окисляется за 2 недели. И они начинают постоянно показывать что сухо. Действительно ли это так? Был ли опыт использования? Может быть заменить "вилку" с покрытием на 2 кусочка от шампуров)).
Чувствую это были не последние вопросы в моем проекте.)) Надеюсь на вашу дальнейшую поддержку.
Сообщение отредактировал Artur - Понедельник, 22.04.2013, 22:16 |
| |
| |
| Serg | Дата: Вторник, 23.04.2013, 07:03 | Сообщение # 14 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| Цитата (Artur) Скажите дисплей LCD Nokia5110 подключается к плате без пайки? Конечно подключается. на плате дисплея есть разъем. Цитата (Artur) Может быть стоит взять Переходник для LCD IIC/I2C? Он нужен для экономии выводов портов Ардуино. Цитата (Artur) Я читал что у них покрытие окисляется за 2 недели. У меня опыта не было, но что мешает протереть вилку раз в неделю? Для экперимента можно попробовать другой материал для электродов.
|
| |
| |
| Artemka1858 | Дата: Воскресенье, 28.04.2013, 02:57 | Сообщение # 15 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
| Цитата (Ivan-771) Я себе для аквариума делал Если не требно покажите скетч пожалуйста. Пытаюсь сделать полив теплицы авто, по проводам. Включение полива по температуре и влажности. Но пока что то не особо
|
| |
| |
| Ivan-771 | Дата: Воскресенье, 28.04.2013, 13:46 | Сообщение # 16 |
 5 Вольт
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Offline
| Цитата (Artemka1858) Я себе для аквариума делалЕсли не требно покажите скетч пожалуйста. Пытаюсь сделать полив теплицы авто, по проводам. Включение полива по температуре и влажности. Но пока что то не особо Исходников нету, ибо в январе собирал. Давно удалил. Вашей теме, вряд ли бы помог.
Сообщение отредактировал Ivan-771 - Воскресенье, 28.04.2013, 13:48 |
| |
| |
| Artur | Дата: Пятница, 14.06.2013, 19:07 | Сообщение # 17 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Всем доброго дня). Мой заказ у меня и появилось время начать во всем разбираться. Вчера попробовал подключить сенсор влажности почвы, скачал стандартный скетч и загрузил. В принципе все заработало, только вот меня смутил один момент. Во всех мануалах по подобным датчикам описано следующее показатель 0-300 сухо, 300-600 влажно, 600-900 очень влажно. У меня же когда сухо показывает 724. Когда в воде 70-90. Может я что то не так подключил. Я подал 5в на Vcc и землю на GND. выход AC к нулевому аналог входу. четвертый выход TLL оставил пустым.
|
| |
| |
| DuZeR | Дата: Пятница, 14.06.2013, 22:50 | Сообщение # 18 |
 5 Вольт
Группа: Пользователи
Сообщений: 42
Репутация: 2
Статус: Offline
| Artur - по идее при замкнутых щупах должно быть максимальное показание сенсора - и наоборот - в воздухе в идеале 0.. если так и есть - значит все в норме - если наоборот - ну тогда меняй условия в скетче.. попробую на днях заказать такой же - проверю - отпишусь.
Возможности машины зависят от фантазии человека...
|
| |
| |
| Serg | Дата: Пятница, 14.06.2013, 22:51 | Сообщение # 19 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| а о чем речь?
|
| |
| |
| Artur | Дата: Пятница, 14.06.2013, 23:12 | Сообщение # 20 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| О том что показание какие то странные снимаются. Сегодня вечером выложу скетч, который используется.
|
| |
| |
| Serg | Дата: Пятница, 14.06.2013, 23:20 | Сообщение # 21 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| с чего снимаются?
|
| |
| |
| Artur | Дата: Пятница, 14.06.2013, 23:20 | Сообщение # 22 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| С датчика влажности субстрата.
|
| |
| |
| winsston | Дата: Вторник, 29.04.2014, 02:52 | Сообщение # 23 |
 1.5 Вольт
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
| Приветствую форумчане Вот тоже решил познакомиться с Arduino И в частности сделать автополив растений. Поскольку опыт в программировании микроконтроллеров нулевой - заранее прошу не ругать строго. Относительно показаний датчиков и индикации на данный момент могу сказать, что датчик HL-69, идущий в паре с платой HL-01 я закинул сразу по причине того, что там всего два положения: "мокро" и "сухо" (выставляется влажность путем регулировки подстроечного резистора на плате HL-01). Меня интересовал более научный подход: отображать примерное содержание влаги в почве в процентах. И потому не долго думая я сварганил датчики, состоящие из пары резисторов и npn-транзистора BC847. (схема на рисунке) Относительно подключения: питание (VCC) подключаем к 5-вольтовому выходу на дуине, ноль (GND) (минус, земля, каждый зовет по-своему) к выходу GND, ну а "Signal" на аналоговый вход дуины (А0, А1...). Скетч, который загрузил в дуину, выглядит примерно так (от моего отличается (я использовал 3 датчика одновременно) , но для демонстрации подойдет):
#include <LiquidCrystal.h> // подключаем библиотеку LCD int dat1 = 0; //объявляем глобальную переменную LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // инициализация библиотеки с перечнем задействованных выводов //Схема подключения LCD: // LCD RS пин к цифр. выходу 7 // LCD Enable пин к цифр. выходу 6 // LCD R/W к Общему // LCD VO пин (пин 3)управление контрастностью - на переменный резистор // LCD D4 пин к цифр. выходу 5 // LCD D5 пин к цифр. выходу 4 // LCD D6 пин к цифр. выходу 3 // LCD D7 пин к цифр. выходу 2 void setup() { lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк lcd.print("Dat1"); // печать сообщения на LCD delay (500); } void loop() { dat1 = analogRead (0); // считываем значение с датчика (вход А0) delay (500); lcd.setCursor(0, 1); lcd.print(" "); // пишем пробелы, чтоб не обновлять весь LCD (вызывает не нужное мерцание) lcd.setCursor(0, 1); lcd.print(dat1); // выводим значение с датчика на LCD delay (500);}
Далее проводя "исследования" заметил несколько особенностей, которыми и хочу поделиться (возможно кому-то пригодятся): - вид почвы (чернозем, торф, песок, вата) и содержание минеральных удобрений в ней - на показания датчика не влияют. (В сплошных удобрениях измерять не пробовал, т.к. сомневаюсь, что растения в них станут расти) - вид щупов на показания влияет. В частности латунь, медь и луженая медь (покрытая оловом) показали себя не с лучшей стороны: слишком резкий получался переход в показаниях датчика, что затрудняет индикацию содержания влаги как таковую. А вот щупы из нержавейки зарекомендовали себя очень даже хорошо. Менее резкий перепад в показаниях и вполне возможно получать данные. На них и остановился. - еще ода особенность измерений заключалась в том, что при введении датчика в почву (после подсушки) значение было завышенным и опускалось до реального в течении 30 минут. На данный момент занимаюсь замерами. После этого на основании полученных данных буду писать скетч, где и будут указаны диапазоны АЦП, соответствующие процентному содержанию влаги в почве.
Сообщение отредактировал winsston - Вторник, 29.04.2014, 02:56 |
| |
| |
| Александр | Дата: Вторник, 06.05.2014, 16:29 | Сообщение # 24 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Цитата Serg (  ) Я читал что у них покрытие окисляется за 2 недели Не советую брать датчики, они и в правду через пару недель окисляются, а еще через некоторое время с них слазит вообще все, метализированное покрытие просто растворяется. Я сам делал датчики, кусок тонкой нержавейки из верхней крышки жесткого диска порезал на полоски, порезал пластиковую карточку и все это склеил, припаял контакты что бы удобно было подключать и резистор на 100кОм. На воздухе 0, средняя влажность-370, полито до 700. Все это дело собрал на макетке, т.к. лениво было что еще делать. Насосом управляет полевик IRF 530, проверка каждые 5 мин, переменным резистором задаю нужную влажность. Если интересует могу поподробнее.
|
| |
| |
| winsston | Дата: Среда, 14.05.2014, 08:40 | Сообщение # 25 |
 1.5 Вольт
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
| Для того, чтобы избежать быстрого окисления покупных датчиков советую запитать датчик от пина дуины (ток, потребляемый датчиком достаточно мал и можно обойтись без лишних транзисторных ключей). Саму же программу стоит писать примерно так (это только пример, для навешивания кнопок, создания меню и т.п. от команды "delay" придется отказаться и использовать программные таймеры/счетчики):
#include // подключаем библиотеку LCD int dat1 = 0; //объявляем глобальную переменную byte DAT = 13; //присваиваем 13-му пину имя DAT LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // инициализация библиотеки с перечнем задействованных выводов //Схема подключения LCD: // LCD RS пин к цифр. выходу 7 // LCD Enable пин к цифр. выходу 6 // LCD R/W к Общему // LCD VO пин (пин 3)управление контрастностью - на переменный резистор // LCD D4 пин к цифр. выходу 5 // LCD D5 пин к цифр. выходу 4 // LCD D6 пин к цифр. выходу 3 // LCD D7 пин к цифр. выходу 2
void setup() { pinMode(DAT, OUTPUT); //используем 13 пин как выход (для включения/выключения датчика) lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк LCD lcd.print("Dat1"); // печать сообщения на LCD delay (500); }
void loop() { digitalWrite (DAT, HIGH); // Включаем питание на датчик delay (100); // задержка (для стабилизации питания датчика) dat1 = analogRead (0); // Считываем показания датчика (датчик в данном случае подключен ко входу А0) digitalWrite (DAT, LOW); // Выключаем питание датчика delay (1000); // Задержка на 1 секунду (1000мкс)
lcd.setCursor(0, 1); //задаем место, с которого на LCD будет начинаться сообщение lcd.print(" "); // пишем пробелы, чтоб не обновлять весь LCD (вызывает не нужное мерцание) lcd.setCursor(0, 1); lcd.print(dat1); // выводим значение с датчика на LCD delay (500); }
Всё дело в том, что датчики окисляются не столько от влаги, сколько под действием электролиза (кто не помнит со школы или не знает, что это такое - википедия в помощь). Чтобы свести данное влияние к минимуму в данном примере кода мы включаем датчик на 0,1 секунду, снимаем с него показания и вновь выключаем суммарно на 1,5 секунды.
Сообщение отредактировал winsston - Среда, 14.05.2014, 08:48 |
| |
| |
| Serg | Дата: Среда, 14.05.2014, 22:53 | Сообщение # 26 |
|
Ампер
Группа: Модераторы
Сообщений: 510
Репутация: 28
Статус: Offline
| При написании кода пользуйтесь тегами code
[code] [/code] или кнопкой на панели.
|
| |
| |
| Александр | Дата: Понедельник, 19.05.2014, 11:23 | Сообщение # 27 |
 3.5 Вольт
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
| Цитата winsston (  ) digitalWrite (DAT, HIGH); // Включаем питание на датчик delay (100); // задержка (для стабилизации питания датчика) От такого метода пришлось отказаться т.к. питание датчика стабилизируется довольно долго, до нескольких минут, идет постоянное повышение сопротивления, а мы измеряем именно сопротивление и на основании его судим о влажности почвы. Причем сопротивление меняется весьма значительно, а следовательно есть шанс досрочно включить полив, ну и залить все. Цитата winsston (  ) Всё дело в том, что датчики окисляются не столько от влаги, сколько под действием электролиза Полностью согласен, именно из-за этого и начал делать датчик из нержавейки.
|
| |
| |