- Необходими компоненти за проекта за система за поливане на растения Arduino
- Обяснение на веригата:
- Работно обяснение:
- Обяснение на програмирането:
Винаги, когато излизаме извън града за няколко дни, винаги сме се притеснявали за нашите растения, тъй като те се нуждаят редовно от вода. И така, тук правим автоматична система за напояване на растения, използвайки Arduino, която автоматично осигурява вода на вашите растения и ви държи в течение, като изпраща съобщение до вашия мобилен телефон.
В тази система за поливане на растенията, сензорът за влага в почвата проверява нивото на влага в почвата и ако нивото на влага е ниско, Arduino включва водна помпа, за да осигури вода на централата. Водната помпа се изключва автоматично, когато системата намери достатъчно влага в почвата. Всеки път, когато системата включи или изключи помпата, до потребителя се изпраща съобщение чрез GSM модул, актуализиращо състоянието на водната помпа и влагата в почвата. Тази система е много полезна във ферми, градини, дома и т.н. Тази система е напълно автоматизирана и няма нужда от човешка намеса.
Необходими компоненти за проекта за система за поливане на растения Arduino
- Arduino Uno
- GSM модул
- Транзистор BC547 (2)
- Свързващи проводници
- 16x2 LCD (по избор)
- Захранване 12v 1A
- Реле 12v
- Помпа за воден охладител
- Сензор за влага в почвата
- Резистори (1k, 10k)
- Променлива съпротива (10k, 100k)
- Съединител на терминала
- Регулатор на напрежение IC LM317
GSM модул:
Тук сме използвали TTL SIM800 GSM модул. SIM800 е пълен четири-лентов GSM / GPRS модул, който може да бъде вграден лесно от клиент или любител. GSM модулът SIM900 предоставя индустриален стандартен интерфейс; SIM800 предоставя GSM / GPRS 850/900/1800 / 1900MHz производителност за глас, SMS, данни с ниска консумация на енергия. Дизайнът на този GSM модул SIM800 е тънък и компактен. Той е лесно достъпен на пазара или онлайн от eBay.
- Четирилентов GSM / GPRS модул в малък размер.
- GPRS активиран
- TTL изход
Научете повече за GSM модула и AT командите тук. Също така проверете нашите различни проекти, използващи GSM и Arduino, за да разберете правилно тяхното взаимодействие.
Обяснение на веригата:
В тази напоителна система за растения ние използвахме домашна сонда за сензор за влага в почвата, за да определим нивото на влага в почвата. За да направим сонда, ние изрязахме и гравирахме медна облицована дъска, съгласно показаната по-долу снимка. Едната страна на сондата е директно свързана с Vcc, а другият терминал на сондата отива към основата на транзистора BC547. Към основата на транзистора е свързан потенциометър за регулиране на чувствителността на сензора.
Arduino се използва за контрол на целия процес на тази автоматична система за поливане на растенията. Изходът на веригата на почвения сензор е директно свързан към цифров щифт D7 на Arduino. В схемата на сензора се използва светодиод, състоянието ВКЛ на този светодиод показва наличието на влага в почвата, а състоянието OFF изключва липсата на влага в почвата.
GSM модулът се използва за изпращане на SMS до потребителя. Тук сме използвали TTL SIM800 GSM модул, който дава и приема директно TTL логиката (потребителят може да използва всеки GSM модул). За захранване на SIM800 GSM модула се използва регулатор на напрежение LM317. LM317 е много чувствителен към номиналното напрежение и се препоръчва да се прочете неговият лист с данни преди употреба. Номиналното му работно напрежение е 3.8v до 4.2v (моля, предпочитайте 3.8v, за да го управлявате). По-долу е схемата на захранването, дадена на GSM модула TTL sim800:
Ако потребителят иска да използва SIM900 TTL модул, тогава той трябва да използва 5V, а ако потребителят иска да използва SIM900 модул, тогава приложете 12v в слота DC Jack на платката.
А 12V реле се използва за контрол на 220VAC малка водна помпа. Релето се задвижва от транзистор BC547, който е допълнително свързан към цифров щифт 11 на Arduino.
За показване на състоянието и съобщенията се използва и допълнителен LCD дисплей. Контролните щифтове на LCD, RS и EN са свързани към щифтове 14 и 15 на Arduino, а щифтовете за данни на LCD D4-D7 са директно свързани към щифтове 16, 17, 18 и 19 на Arduino. LCD се използва в 4-битов режим и се управлява от вградената LCD библиотека на Arduino.
По-долу е схемата на тази напоителна система с ардуино и сензор за влага в почвата:
Работно обяснение:
Работата с тази автоматична система за напояване на растенията е съвсем проста. На първо място, това е напълно автоматизирана система и няма нужда от работна ръка за управление на системата. Arduino се използва за управление на целия процес, а GSM модулът се използва за изпращане на предупредителни съобщения до потребителя на мобилния му телефон.
Ако в почвата присъства влага, тогава има проводимост между двете сонди на сензора за влажност на почвата и поради тази проводимост транзисторът Q2 остава в задействано / включено състояние и Arduino Pin D7 остава нисък. Когато Arduino чете LOW сигнал при D7, той изпраща SMS до потребителя за „Влагата на почвата е нормална. Двигателят е изключен ”и водната помпа остава в изключено състояние.
Сега, ако в почвата няма влага, тогава транзисторът Q2 се изключва и Pin D7 става висок. След това Arduino чете ПИН D7 и включва водния мотор, а също така изпраща съобщение до потребителя за „Открита ниска влажност на почвата. Двигателят е ВКЛЮЧЕН ”. Двигателят автоматично ще се изключи, когато в почвата има достатъчно влага. По-нататък проверете демонстрационното видео и кода (дадени в края) за по-добро разбиране на работния процес на проекта.
Обяснение на програмирането:
Кодът за тази програма е лесно разбираем. На първо място включихме библиотека SoftwareSerial, за да направим щифтове 2 и 3 като Rx & Tx, както и LiquidCrystal за LCD. След това дефинирахме някои променливи за мотор, сензор за влага в почвата, LED и т.н.
#include
След това във функция void setup () серийната комуникация се инициализира при 9600 bps и се дават указания на различните Pins. Функцията gsmInit се извиква за инициализиране на GSM модула.
Serial1.begin (9600); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (мотор, ИЗХОД); pinMode (сензор, INPUT_PULLUP); lcd.print ("Water Irrigaton"); lcd.setCursor (4,1); забавяне (2000); lcd.clear (); lcd.print ("Circuit Digest"); lcd.setCursor (0,1); lcd.print ("Приветства те"); забавяне (2000); gsmInit ();
След това сензорът се чете във функция void loop () и двигателят се включва или изключва в съответствие със състоянието на сензора и SMS също се изпраща до потребителя чрез функцията sendSMS . Проверете различните функции в пълен код, даден в края.
цикъл void () {lcd.setCursor (0,0); lcd.print ("Автоматичен режим"); if (digitalRead (сензор) == 1 && flag == 0) {delay (1000); if (digitalRead (сензор) == 1) {digitalWrite (led, HIGH); sendSMS ("Открита е ниска влажност на почвата. Двигателят е ВКЛЮЧЕН"); lcd.begin (16,2); lcd.setCursor (0,1);…………………
Тук функцията gsmInit () е важна и потребителите най-вече се затрудняват да зададат правилно. Използва се за инициализиране на GSM модула, като първо GSM модулът се проверява дали е свързан или не чрез изпращане на команда „AT“ към GSM модула. Ако е получен отговор ОК, означава, че е готов. Системата продължава да проверява за модула, докато не стане готов или докато не се получи 'OK'. След това ECHO се изключва чрез изпращане на командата ATE0, в противен случай GSM модулът ще повтори всички команди. След това накрая наличността на мрежата се проверява чрез „AT + CPIN?“ команда, ако поставената карта е SIM карта и има ПИН, тя дава отговор ГОТОВ. Това също се проверява многократно, докато мрежата бъде намерена. Това може да се разбере ясно от видеото по-долу.
void gsmInit () {lcd.clear (); lcd.print ("Намиране на модул.."); булева стойност at_flag = 1; докато (at_flag) {Serial1.println ("AT"); докато (Serial1.available ()> 0) {if (Serial1.find ("OK")) at_flag = 0; } закъснение (1000); }……………….
Така че с тази автоматична напоителна система не е нужно да се притеснявате за вашите растения, когато сте далеч от дома си. Той може да бъде допълнително подобрен, за да се управлява и наблюдава по интернет.