Клапан автозаполнения на базе Arduino своими руками

Содержание

Разработка проекта

На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.

Какие проекты можно создавать на Arduino?

Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:

  • Сборка кубика Рубика (система справляется за 0,887 с);
  • Контроль влажности в подвальном помещении;
  • Создание уникальных картин;
  • Отправка сообщений;
  • Балансирующий робот на двух колесах;
  • Анализатор спектра звука;
  • Лампа оригами с емкостным сенсором;
  • Рука-робот, управляемая с помощью Ардуино;
  • Написание букв в воздухе;
  • Управление фотовспышкой и многое другое.

Как подключить проходной выключатель: одноклавишный, двухклавишный, как обычный, схемы, критерии выбора

Составление проекта для умного дома

Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

Такое здание состоит из пяти основных зон — прихожей, крыльца, кухни, санузла, а также комнаты для проживания.

При составлении проекта стоит учесть следующее:

  • КРЫЛЬЦО. Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
  • САНУЗЕЛ. В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
  • ПРИХОЖАЯ. Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
  • КОМНАТА. Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
  • КУХНЯ. Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

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

После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.

Стоит обратить внимание, что если в доме планируется установка умных розеток, то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения. Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта https://flprog.ru/

Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта https://flprog.ru/.

Компоненты и их описания

Arduino Uno

Arduino взаимодействует через датчики с окружающей средой и обрабатывает поступившую информацию в соответствии с заложенной в неё программой. Подробнее с платой Ардуино Уно можно ознакомиться здесь.

Ардуино Уно

Датчик влажности почвы

Измерение влажности почвы на базе Arduino производится с помощью датчика влажности. Датчик имеет два контакта. Через эти контакты при погружении их в грунт протекает ток. Величина тока зависит от сопротивления грунта. Поскольку вода является хорошим проводником тока, наличие влаги в почве сильно влияет на показатель сопротивления. Это значит, чем больше влажность почвы, тем меньше она оказывает сопротивление току.

Датчик влажности почвы

Этот датчик может выполнять свою работу в цифровом и аналоговом режимах. В нашем проекте используется датчик в цифровом режиме.
На модуле датчика есть потенциометр. С помощью этого потенциометра устанавливается пороговое значение. Также на модуле установлен компаратор. Компаратор сравнивает данные выхода датчика с пороговым значением и после этого даёт нам выходной сигнал через цифровой вывод. Когда значение датчика больше чем пороговое, цифровой выход передаёт 5 вольт (HIGH), земля сухая. В противном случае, когда данные датчика будут меньше чем пороговые, на цифровой вывод передаётся 0 вольт (LOW), земля влажная.

Этим потенциометром необходимо отрегулировать степень сухости почвы, когда как вы считаете нужно начать полив.

Фоторезистор

Фоторезистор (LDR) — это светочувствительное устройство, которое используются для определения интенсивности освещения. Значение сопротивления LDR зависит от освещённости. Чем больше света, тем меньше сопротивление. Совместно с резистором, фоторезистор образует делитель напряжения. Резистор в нашем случае взяли 10кОм.

Делитель напряжения

Подключив выход делителя Uin к аналоговому входу Ардуино, мы сможем считывать напряжения на выходе делителя. Напряжение на выходе будет меняться в зависимости от сопротивления фоторезистора. Минимальное напряжение соответствует темноте, максимальное – максимальной освещённости.

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

Релейный модуль

Реле представляет собой переключатель с электромеханическим или электрическим приводом.

Релейный модуль

Привод реле приводится в действие небольшим напряжением, например, 5 вольт от микроконтроллера, при этом замыкается или размыкается цепь высокого напряжения.

Схема реле

В этом проекте используется 12 вольтовый водяной насос. Arduino Uno не может управлять напрямую насосом, поскольку максимальное напряжение на выводах Ардуино 5 вольт. Здесь нам приходит на помощь релейный модуль.

Релейный модуль имеет два типа контактов: нормально замкнутые и нормально разомкнутые контакты. Нормально замкнутые без управляющего напряжения замкнуты, при подаче напряжения размыкаются. Соответственно нормально разомкнутые без напряжения разомкнуты, при подаче управляющего напряжения замыкаются. В проекте используются нормально разомкнутые контакты.

Водяной насос

В проекте используем 12-и вольтовый погружной насос с 18-ваттным двигателем. Он может поднимать воду до 1,7 метра.

Водяной насос

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

Макетная плата

Макетная плата представляет собой соединительную плату, используемую для создания прототипов проектов электроники, без пайки.

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Клапан автозаполнения на базе Arduino своими руками
Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов
Клапан автозаполнения на базе Arduino своими руками
4WD платформа для Ардуино с необычным видом крепления элементов
Клапан автозаполнения на базе Arduino своими руками
Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2
Клапан автозаполнения на базе Arduino своими руками
Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Автоматический дозатор воды на Arduino Uno

Примерно 71% поверхности земли покрыто водой, но только 2,5% этой воды пригодно для питья. При этом запасы питьевой воды на нашей планете сокращаются с каждым годом. Эксперты прогнозируют, что в ближайшем будущем человечество может столкнуться с нехваткой питьевой воды. Чтобы уменьшить потребление воды вместо обычных механических кранов можно использовать «умные» краны, которые будут открываться только когда необходимо. Поэтому в данной статье мы рассмотрим создание на основе платы Arduino и соленоидного клапана автоматического дозатора воды (Automatic Water Dispenser), который будет автоматически включать подачу воды когда рядом с ним (под краном) будет помещаться стакан.

Клапан автозаполнения на базе Arduino своими руками

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В начале программы нам будет необходимо подключить все используемые библиотеки, в нашем случае их всего две – одна для связи по интерфейсу SPI между платой Arduino и модулем RFID, и вторая – непосредственно для работы с модулем RFID. Обе эти библиотеки можно скачать по следующим ссылкам:

  1. SPI.h.
  2. MFRC522.h.

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

Arduino

int Buzzer = 4;
const int LockPin = 2;
#define SS_PIN 10
#define RST_PIN 9

1
2
3
4

intBuzzer=4;

constintLockPin=2;

#define SS_PIN 10
#define RST_PIN 9

Затем необходимо задать режимы работы для используемых контактов (на ввод или вывод данных), инициализировать связь по протоколу SPI и модуль RFID.

Arduino

pinMode(LockPin, OUTPUT);
pinMode(Buzzer, OUTPUT);
pinMode(hall_sensor, INPUT);
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522

1
2
3
4
5

pinMode(LockPin,OUTPUT);

pinMode(Buzzer,OUTPUT);

pinMode(hall_sensor,INPUT);

SPI.begin();// Initiate  SPI bus    

mfrc522.PCD_Init();// Initiate MFRC522

Внутри цикла void loop мы будем считывать значения с датчика Холла и когда у него на выходе будет напряжение низкого уровня (low), мы будем закрывать дверь.

Arduino

state = digitalRead(hall_sensor);
Serial.print(state);
delay(3000);
if(state==LOW){
digitalWrite(LockPin, LOW);
Serial.print(«Door Closed»);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);}

1
2
3
4
5
6
7
8
9

state=digitalRead(hall_sensor);

Serial.print(state);

delay(3000);

if(state==LOW){

digitalWrite(LockPin,LOW);

Serial.print(«Door Closed»);

digitalWrite(Buzzer,HIGH);

delay(2000);

digitalWrite(Buzzer,LOW);}

Также внутри цикла void loop мы будем проверять присутствует ли рядом с модулем RFID новая RFID карта. И если такая карта присутствует рядом с модулем, мы будем проверять ее UID (уникальный идентификатор). Если карта действующая, то мы будем открывать замок, в противном случае мы будем выдавать в окно монитора последовательной связи сообщение ‘You are not authorized’.

Arduino

if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
String content= «»;
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
content.concat(String(mfrc522.uid.uidByte < 0x10 ? » 0″ : » «));
content.concat(String(mfrc522.uid.uidByte, HEX));
}
Serial.println();
Serial.print(«Message : «);
content.toUpperCase();
if (content.substring(1) == «60 4E 07 1E» ) //change here the UID of the card/cards that you want to give access
{
digitalWrite(LockPin, HIGH);
Serial.print(«Door Unlocked»);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
}
else
{
Serial.println(«You are not Authorised»);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

if(!mfrc522.PICC_IsNewCardPresent())

{

return;

}

// Select one of the cards

if(!mfrc522.PICC_ReadCardSerial())

{

return;

}

//Show UID on serial monitor

Stringcontent=»»;

byteletter;

for(bytei=;i<mfrc522.uid.size;i++)

{

content.concat(String(mfrc522.uid.uidBytei<0x10?» 0″» «));

content.concat(String(mfrc522.uid.uidBytei,HEX));

}

Serial.println();

Serial.print(«Message : «);

content.toUpperCase();

if(content.substring(1)==»60 4E 07 1E»)//change here the UID of the card/cards that you want to give access

{

digitalWrite(LockPin,HIGH);

Serial.print(«Door Unlocked»);

digitalWrite(Buzzer,HIGH);

delay(2000);

digitalWrite(Buzzer,LOW);

}

else

{

Serial.println(«You are not Authorised»);

digitalWrite(Buzzer,HIGH);

delay(2000);

digitalWrite(Buzzer,LOW);

}

}

Как сделать станок для выжигания на различных материалах

Станок с ЧПУ для выжигания отличается от фрезера только рабочим инструментом. Вместо шпинделя с фрезой используется нихромовая нить, разогретая до высокой температуры. Собрать такой станок еще проще, чем фрезерный, поскольку вместо вращающейся фрезы используется неподвижный нагреваемый элемент.

Пиропринтер — выжигатель с ЧПУ, — подходит для решения задач в образовании, штучном и мелкосерийном производстве художественных и ремесленных изделий, декорировании элементов мебели и галантереи. Устройство аппарата обеспечивает более высокий уровень безопасности, чем фрезер. Если провести соответствующую настройку электроники, управлять пиропринтером можно с ноутбука, без LPT-соединения.

Как работает соленоидный клапан

Соленоид представляет собой устройство, которое преобразует электрическую энергию в механическую. Он имеет обмотку, намотанную на проводящий материал – эта система работает как электромагнит. Преимуществом электромагнита по сравнению с естественным магнитом является то, что его можно включить и выключить в любой момент при помощи подачи/отключения питания на обмотку. Поэтому, когда на обмотку подается питание, то в соответствии с законом Фарадея, проводник, по которому протекает электрический ток, формирует вокруг себя магнитное поле. В соленоиде формируется достаточно сильное магнитное поле, достаточное для того, чтобы намагнитить материалы и создать линейное движение.

Клапан автозаполнения на базе Arduino своими руками

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

Во время этих процессов катушка потребляет достаточно много тока, что приводит к проблемам гистерезиса (запаздывание фаз), характерным для подобных систем. В связи с этим невозможно управлять соленоидным клапаном непосредственно с помощью логической схемы. В нашем проекте мы будем использовать соленоидный клапан с питанием от 12V, который часто используется для управления потоками воды. При подаче питания соленоид потребляет около 700mA тока, а пиковое энергопотребление может достигать 1.2A – этот момент мы должны учитывать в нашей схеме.

Шаг 4. Создаем печатную плату

Клапан автозаполнения на базе Arduino своими руками

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.

Возможности

Зачем учиться работать с ардуино и электроникой в целом?

  • Это невероятно интересное, техническое, развивающее мозги и относительно дешёвое “DIY” хобби с бесконечным количеством идей и их реализаций
  • Возможность создания узко-специальных электронных устройств и станков, аналогов которым нет в продаже или они слишком дорогие. В том числе для личных нужд или для работы (знакомый ювелир сделал себе контроллер для муфельной печи, который стоит очень дорого).
  • Возможность создания новых уникальных устройств с целью выхода на краудфандинг и старта продаж и своего бизнеса.
  • Отличная практика в программировании и электронике, особенно перед обучением на соответствующую специальность.
  • Возможности в целом: автоматизация процессов и “машин”, автоматическое регулирование процессов, дистанционное управление, мониторинг различных величин, носимые и стационарные электронные устройства различного назначения.

Простой и интересный проект на Ардуино — подарочная книга с секретом на Ардуино

Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими руками

Необходимые инструменты и материалы для книги с секретом на Ардуино

  • Бумага.
  • Картон.
  • Бархатный картон.
  • Декоративные камни.
  • Черный чай.
  • Ардуино.
  • Сервопривод.
  • 3 светодиода.
  • Акселерометр MPU 6050.
  • 2 геркона.
  • 2 резистора 10 кОм.
  • Резистор 220 Ом.
  • Переключатель.
  • Потенциометр 1 кОм.
  • Батарея 9 В.
  • Провода.
  • Клей.
  • Ножницы.
  • Краска.
  • 3D принтер.
  • Утюг.
  • Паяльник.
  • Клеевой пистолет.

Шаг первый: подготовка листов
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиШаг второй: сервопривод
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиШаг третий: отсеки
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиШаг четвертый: установка сервопривода
Клапан автозаполнения на базе Arduino своими рукамиШаг пятый: обложка
Клапан автозаполнения на базе Arduino своими рукамиШаг шестой: сборка книги
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиШаг седьмой: Ардуино
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими рукамиШаг восьмой: шахматные фигуры
Клапан автозаполнения на базе Arduino своими рукамиКлапан автозаполнения на базе Arduino своими руками

podarochnaya-kniga-s-sekretom.rar

Подключение, запуск и настройка автоустройств на Ардуино

Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:

Популярные статьи  Водяные конвекторы отопления — преимущества, классификация

В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:

/Applications/Arduino.app/Contents/Java/hardware/teensy/avr

Из-за проблемы с внутренним температурным датчиком пользователь устанавливает температурный датчик модуля DS18B20.

  1. Загрузите эскиз display_code, если вы хотите использовать внутренний температурный датчик модуля OB2 I2C OBD-II.
  2. Загрузите эскиз display_code_with_new_temperature_sensor, если вы хотите использовать модуль DS18B20.

Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20, выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.

Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить»

В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.

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

Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.

Клапан автозаполнения на базе Arduino своими руками

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

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

Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.

Делаем защиту от протечки воды. Управление электромагнитным клапаном с помощью Ардуино.

Мы живем в век многоквартирных домов. К моему сожалению у нас очень сильно развивается именно многоквартирная инфраструктура. Хотя я всегда мечтал о частном доме. Да что там говорить я и сейчас мечтаю. Ну и так-как большинство нас живет в квартирах. Одна мысль наверное которая постоянно нас гложет — это «Как бы не затопить соседей».

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

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

В общем полез на наш любимый AliExpress и начал искать какие-нибудь краны с электроприводом.

Но они оказались все стоили довольно дороговато. Особенно для того, чтоб просто попробовать на стенде работу.

И я решил для моих «игрушек» заказать самый дешевый не с электроприводом кран. А с электромагнитным клапаном. Он получился гораздо дешевле. Принцип работы у него немного другой конечно. Но для «Я сделяль» подойдет.

В общем заказал я такую модель:

Питается данный клапан от постоянного тока и 12 Вольт. Выдерживает до 0.8 mpa давления.

Ну а принцип работы у него следующий:

Клапан постоянно опущен и не пропускает через себя воду. Но как только подать на него напряжение. Электромагнит поднимет металлический шарик и клапан откроется.

Конечно такой принцип подойдет не для защиты от протечки воды, а наоборот для наливания воды в ёмкость например. Но мы же для опытов ведь так?

Подавать 12 вольт будем с помощью реле.

Управлять реле будет конечно-же ардуиной. Подключим его к 8 пину arduino.

В качестве датчика протечки воды будем использовать так называемый датчик дождя:

Этот же датчик работает абсолютно по такому-же принципу. Только форм фактор другой.

Его мы будем подключать к Аналоговому пину платы ардуино. А именно к A0.

Ну и собственно все. Далее я набросал простенький скетч. Который можете найти тут.

Все компоненты которые я использовал в примере можно приобрести тут:

Ссылочка на Arduino uno: http://alii.pub/5slrkx Ссылочка на контактные провода: http://alii.pub/5slrot

Ну и как-же без демонстрации работы? А она у нас вот в этом видео:

Источник

Схема подключения и алгоритм работы в проекте «Автополив» на базе мк Arduino

Ниже представлен алгоритм и схема подключения проекта на платформе arduino. Автополив строится следующим образом:

  1. Помещаем плату для сенсора на микроконтроллер.
  2. Подключаем анализатор влажности с помощью платы, описанной выше, к аналогичному пину – А0.
  3. Присоединяем сенсор к микроконтроллеру:
    1. Контакт CS подключается к пину № 9 на плате.
    2. Дисплейные контакты SPI соединяются с соответствующим разъемом на той же плате.
  4. Силовой ключ вставляем в пин №4.
  5. Коммутатор подводим к силовому ключу в разъемы, обозначаются буквами p+, p-.
  6. Теперь подключаем водяную помпу с трубкой с помощью клеммника в контакты с буквами l+ и l-. Постепенно перед конструирующим человеком построится схема.
  7. Втыкаем сенсорную панель, анализирующую влажность, в горшок с цветком.
  8. Конец трубки вставляем с водой в почву. В случае, если растение вместе с горшком по весу не превышает 2 кг, закрепляем шланг отдельно. Иначе водяная капель может опрокинуть цветок.
  9. Опускаем водяную помпу в бутылку, наполненную водой.
  10. Подключаем конструкцию к электрическому питанию.

Ниже предлагаем вам две альтернативные схемы для нашего устройства:

Клапан автозаполнения на базе Arduino своими руками

Клапан автозаполнения на базе Arduino своими руками

Датчик анализирует статус влажности путем определения кислотности земли. Перед вставкой ирригатора в систему необходимо протестировать и откалибровать оборудование:

  1. Записываем сведения, выведенные на дисплей. При этом сенсор воткнут в сухой горшок. Это обозначается, как min влажности.
  2. Поливаем землю с растением. Ждем, когда вода до конца пропитает почву. Тогда показания на сенсорном экране покажут один уровень. Необходимо записать полученные сведения. Это значит max влажности.
  3. В записном блокноте фиксируем константы HUM_MIN и HUM_MAX тем значением, которое было получено в результате калибровки. Прописываем значения в программе, которую переносим затем на микроконтроллер.

Выше описано конструирование автополива для одного цветка. Однако у любителей комнатных растений дом обставлен горшками с цветами. С одной стороны такой вопрос кажется сложным: необходимо подключить несколько помп и анализаторов увлажнения почвы. Но существует более дешевое и простое решение по конструированию автополива.

В шланге от помпы проделываются 25 сантиметровые отверстия с помощью шила. В полученные дырочки втыкаются кусочки стержней ручек шарикового формата. В итоге получается:

  • горшки с растениями выстраиваются в ряд на подоконнике;
  • трубка устанавливается на цветочный горшок так, чтобы вода из каждого отверстия лилась в отдельный горшок;
  • вуаля: изобретение одновременно поливает все растения.

Пользователь самостоятельно выбирает время для полива, но только для одного цветка. Нередко цветки по массе и размерам одинаковы. Следовательно, почва в горшках сохнет за одинаковое время. Для этого придуман метод комбинации: количество горшков делится по группам равного веса и размера.

Пример установки датчика и его опробование

Клапан автозаполнения на базе Arduino своими рукамиРисунок 2: расположение коммуникаций в резервуаре

После того  как вышеприведенная схема собрана, ее необходимо опробовать:

  • Для начала просмотрите места соединения всех проводов – в них должен обеспечиваться хороший электрический контакт.
  • Далее опробуйте датчик на любой подходящей емкости с водой, он должен обеспечивать плотное закрытие клапана.
  • Если клапан полностью не прилегает из-за недостаточного хода сервопривода или тот его через чур перегибает, то величину движения можно изменить в строке команды if (input_val <500) уменьшая или увеличивая цифровой показатель;
  • Элементы водопровода также проверяются на герметичность – вряд ли вы много сэкономите на протекающих трубах и местах их крепления к резервуару.
Популярные статьи  Как сделать гирлянду из лампочек и светодиодов?

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

Программа для загрузки на микроконтроллер:

  Клапан автозаполнения на базе Arduino (532 bytes, скачано: 98)

Шаг 1. Изменения в оригинальной версии

Клапан автозаполнения на базе Arduino своими руками

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

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.

Учитывая все изменения, мы можем записать окончательный список компонентов.

Необходимые инструменты и периферия для реализации проекта «Автополив» на базе микроконтроллера Arduino

Ирригатор – устройство, контролирующее влажность почвы. Приспособление передает данные на датчик влажности, который укажет сконструированному автополиву на начало работы. Для составления программы используется язык программирования С++.

Таблица с требуемыми материалами:

Компонент Описание
Микроконтроллер Arduino Uno Платформа соединяет периферийные устройства и состоит из 2 частей: программная и аппаратная. Код для создания бытовых приборов программируется на бесплатной среде – Arduino IDE.

Чтобы составить и внедрить программу на микроконтроллер, необходимо приобрести usb-кабель. Для автономной работы следует купить блок питания на 10 В.

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

USB-кабель Обязателен в конструировании системы «автополив на ардуино» для переноски кода.
Плата для подключения сенсора – Troyka Shield С помощью платы подключается сенсорная периферия посредством обычных кабелей. По краям располагаются контакты по 3 пина — S + V + G.
Нажимной клеммник Служит фиксатором для пучковых проводов. Конструкция фиксируется с помощью кнопки на пружине.
Блок питания, оснащенный usb-входом

Анализатор влажности почвы

Идеальное средство для подключения платформ. В конструкции предусмотрен фонарик, который говорит о начале работы.

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

●      MAX глубины для погружения в землю – 4 см;

●      MAX потребление электроэнергии – 50 мА;

●      Напряжения для питания – до 4 В.

Помпа с трубкой для погружения в воду Управление осуществляется с помощью коммутатора. Длина кабеля достигает 2 метров.
Силовой ключ Создан для замыкания и размыкания электрической цепи. Если использовать приспособление при конструировании автополива ардуино, не потребуется дополнительных спаек. Подключение к основной панели осуществляется также 3 проводами.
Соединительный провод – «отец-отец» Несколько проводов соединяют периферийные устройства.
Соединительный провод – «мать-отец» Проводки также соединяют устройства периферии.
Комнатный цветок Система пригодна для разного типа комнатных растений.

Просадка напряжения

Пытаясь найти объективную причину зависания, я стал грешить на некачественный блок питания и просадку напряжения при включении реле, особенно когда несколько реле включаются одновременно, ведь зависания происходили не так часто, а всего лишь 1-2 раза в месяц.

Первым делом решил добавить 2 конденсатора по 1000 мкф в надежде, что они уменьшат просадку напряжения при срабатывании реле. Первый поставил параллельно выходу с блока питания (там кстати уже был свой конденсатор, но второй лишним не будет, подумал я), а второй — установил параллельно выходу +5V на плате ардуино, откуда как раз берется питание для реле. С этого же выхода питается и сам микроконтроллер. Складывается логичная ситуация — когда все реле включаются одновременно, микроконтроллеру не хватает напряжения и он зависает.

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

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим ее основные фрагменты.

Основная функция программы будет заключаться в измерении расстояния с помощью ультразвукового датчика HCSR-04. Когда расстояние до объекта будет меньше 10 см мы будем открывать MOSFET транзистор, в противном случае мы будем закрывать его. Также мы будем включать встроенный светодиод на плате Arduino, подключенный к ее контакту 13 чтобы было наглядно видно открыт или закрыт MOSFET транзистор.
Вначале в программе мы должны инициализировать используемые контакты.

Arduino

#define trigger 9
#define echo 8
#define LED 13
#define MOSFET 12

1
2
3
4

#define trigger 9
#define echo 8
#define LED 13
#define MOSFET 12

Внутри функции setup мы зададим режим работы контактов – на ввод или вывод данных.

Arduino

pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(LED,OUTPUT);
pinMode(MOSFET,OUTPUT);

1
2
3
4

pinMode(trigger,OUTPUT);

pinMode(echo,INPUT);

pinMode(LED,OUTPUT);

pinMode(MOSFET,OUTPUT);

Внутри функции loop мы будем вызывать функцию measure_distance(), которая использует ультразвуковой датчик для определения расстояния до объекта и на основе этого обновляет значение переменной ‘distance’. Для измерения расстояний с помощью ультразвукового датчика нам необходимо подать на его контакт trigger сигнал низкого уровня на 2 микросекунды и затем сигнал высокого уровня на 10 микросекунд, а затем снова сигнал низкого уровня на 2 микросекунды. Это приведет к тому, что датчик излучит в окружающее пространство ультразвуковую волну, которая отразится от препятствия. После приема отраженной ультразвуковой волны датчик сформирует соответствующий сигнал на своем контакте echo – по времени появления этого сигнала можно затем рассчитать расстояние до препятствия. Более подробно все эти процессы описаны в статье про измерение расстояний с помощью ультразвукового датчика и Arduino. Фрагмент программы для определения расстояния до препятствия будет выглядеть следующим образом:

Arduino

digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH);
distance=time*340/20000;

1
2
3
4
5
6
7
8

digitalWrite(trigger,LOW);

delayMicroseconds(2);

digitalWrite(trigger,HIGH);

delayMicroseconds(10);

digitalWrite(trigger,LOW);

delayMicroseconds(2);

time=pulseIn(echo,HIGH);

distance=time*34020000;

После определения расстояния до объекта нам необходимо сравнить его с заранее определенной границей (10 см). Если измеренное расстояние меньше 10 см мы будем открывать MOSFET транзистор и включать светодиод, если оно больше 10 см – то мы будем закрывать MOSFET транзистор и выключать светодиод.

Arduino

if(distance<10)
{
digitalWrite(LED,HIGH);digitalWrite(MOSFET,HIGH);
}
else
{
digitalWrite(LED,LOW);digitalWrite(MOSFET,LOW);
}

1
2
3
4
5
6
7
8

if(distance<10)

{

digitalWrite(LED,HIGH);digitalWrite(MOSFET,HIGH);

}

else

{

digitalWrite(LED,LOW);digitalWrite(MOSFET,LOW);

}

Оцените статью
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: