Направете собствен интелигентен селскостопански сензор с Arduino е проект, който представлява икономична IoT селскостопанска система, измерваща влажността на почвата, температурата на околната среда, влажността на въздуха и нивото на светлината, която при необходимост генерира предупреждения за поливане и може да изпраща данни на уеб панел по желание. В това ръководство ще намерите всичко необходимо за изграждането на Arduino базиран сензор за около 1-2 часа, включително нужните компоненти, схемите за свързване, примерен код, стъпките за калибриране, съвети за устойчивост на полето и методи за наблюдение на данните в интернет.
Интелигентните селскостопански сензори се използват за намаляване на ненужното поливане, ранно откриване на стрес при растенията и цифрово проследяване на производствените условия в много области, от малки хоби градини до оранжерии. Готовите индустриални системи са мощни; обаче модулна система, изградена с Arduino, е по-икономична и образователна за начинаещ производител, студент, създател или малък бизнес. Освен това, с правилния избор на сензори и редовна калибрирация, могат да се получат надеждни резултати за ежедневни решения.
Целта на тази статия не е само да изградите работеща схема, а да разгледате измервателната логика, точността на данните, консумацията на енергия, интернет свързаността и сигурното публикуване. Ако искате да показвате сензорните данни на уебсайт или специален контролен панел, е необходима надеждна инфраструктура за хостване на данни. На този етап можете да разгледате Hostragons решения за уеб хостинг за проектна документация, API крайна точка или администраторски панел и Hostragons проверка на домейн за публикуване на домейн.
Цел на проекта и логика на работа
Този интелигентен селскостопански сензор събира четири основни данни от околната среда на растението: влажност на почвата, температура, влажност на въздуха и светлинна интензивност. Arduino прочита тези данни на определени интервали, сравнява ги с предварително зададени прагове и може да изпраща резултатите на сериен дисплей, LCD дисплей, SD карта или чрез Wi-Fi на уеб сървър. В най-простото приложение системата дава предупреждение с LED или звуков сигнал, когато влажността на почвата падне под зададеното ниво. При по-напреднала употреба може да задейства мини водна помпа с реле.
Например, в малък балкон с домати, ако влажността на почвата дълго време пада под 35%, растението може да изпитва стрес. Вашият сензор прави измервания на всеки 10 минути, проверява средната стойност на последните 6 измервания и уведомява, ако влажността е ниска, че е необходимо поливане. Този подход е по-надежден от вземането на решение на базата на едно неправилно измерване, тъй като сензорите на почвата понякога могат да покажат моментни отклонения поради соленост, качество на контакта или рязка промяна на температурата.
Логиката на IoT е проста: устройството измерва, микроконтролерът анализира, модулът за свързване предава данните, а уеб панелът или базата данни съхраняват историята. Ако планирате да публикувате уеб панела публично, се препоръчва да използвате HTTPS. Въпреки че сензорните данни не изглеждат като лични данни, те могат да предоставят подсказки за местоположение, производствени модели и навици на бизнеса. Затова е добра практика да вземете предвид какво е SSL сертификат и защо е необходим при публикуването на вашия панел.
Необходими материали и приблизителна цена
Следният списък е съставен от стабилно работещи и лесно достъпни компоненти за начинаещи. Цените варират в зависимост от марката, качеството и доставчика, така че е по-добре да се фокусирате върху практическите критерии за избор, вместо да търсите точни цени. Ако планирате да използвате сензора на открито, най-важният компонент е капацитивният сензор за влажност на почвата и водоустойчивият корпус.
- Arduino Uno или Arduino Nano: Uno е подходящ за начинаещи, докато Nano е подходящ за компактен монтаж.
- Капацитивен сензор за влажност на почвата: По-устойчив на корозия в сравнение с резистивните сензори.
- DHT22 или DHT11 сензор за температура и влажност: DHT22 е по-точен и с по-широк обхват.
- LDR сензор за светлина и 10K резистор: Достатъчен е за приблизително измерване на нивото на светлината.
- ESP8266 Wi-Fi модул или директно ESP32 платка: Използва се за интернет свързаност.
- Реле модул и мини водна помпа: Опционално за желаещите да добавят автоматично поливане.
- Външен 5V адаптер или powerbank: Осигурява стабилно захранване на място.
- Breadboard, jumper кабели, инструменти за запояване: Необходими за прототипиране и постоянни връзки.
- IP65 корпус, кабелни уплътнения, силиконов уплътнител: Препоръчителни за устойчивост на открито.
Началната цена обикновено е ниска в сравнение с готовите индустриални системи в повечето сценарии. За основната измервателна система са достатъчни Arduino, сензор за влажност на почвата, DHT сензор и кабели. Цената нараства, когато добавите Wi-Fi, уеб панел, автоматична помпа и защита за открито; обаче ползите от системата също се увеличават. Особено в малки оранжерии, записването на решения за поливане може ясно да покаже в кои дни се е появил воден стрес в рамките на няколко седмици.
Сравнение между Arduino, ESP32 и готови сензорни комплекти
Важно е да определите коя платка да изберете преди да започнете проекта. Arduino Uno предлага лесно обучение, докато ESP32 е предимство за IoT с Wi-Fi и по-висока обработвателна способност. Готовите комплекти предлагат бърза инсталация, но пространството за персонализиране може да бъде ограничено.
| Опция | Предимство | Недостатък | Най-подходяща употреба |
|---|---|---|---|
| Arduino Uno | Много ресурси, лесна свързаност, идеален за обучение | Без вграден Wi-Fi, заема повече място в кутията | Първоначални прототипи и учебни проекти |
| Arduino Nano | Малък размер, ниска цена, подходящ за постоянен монтаж | USB и структурата на пиновете могат да бъдат предизвикателство за начинаещи | Инсталации в саксии, балкони и компактни оранжерии |
| ESP32 | Вграден Wi-Fi/Bluetooth, мощен процесор, нискомощни режими | Потребителят трябва да внимава с логическото ниво 3.3V | IoT системи, които изпращат данни на уеб панел |
| Готов селскостопански комплект | Бързо стартиране, пакетните компоненти са съвместими | Ограничен потенциал за персонализиране и стойност на обучението | Потребители с ограничено време |
Ако правите това за първи път, изграждането на прототип с Arduino Uno и четенето на стойностите на серийния монитор е най-нискорисковия вариант. Когато искате да изпратите данни в интернет, можете да добавите ESP8266 модул или да преминете директно на ESP32. Ако планирате да подготвите професионален мини панел, ESP32 предлага по-малко компоненти и по-чиста архитектура.
Схема на свързване: Основно изграждане на схемата
При основната инсталация капацитивният сензор за влажност на почвата се свързва към аналоговия пин, DHT сензорът към цифровия пин, а LDR с помощта на логиката на делителя на напрежение към аналоговия пин. Преди да изградите схемата, направете всички свързвания без захранване. Особено ако използвате водна помпа или реле, не пренасяйте захранващата линия през Arduino; захранвайте помпата от отделен източник и изпращайте само контролния сигнал от Arduino.
Препоръчани свързвания на пиновете
- Сензор за влажност на почвата VCC: 5V, GND: GND, AO: A0
- DHT22 VCC: 5V, GND: GND, DATA: D2
- LDR: Едната страна на 5V, другата на A1 и GND през 10K резистор
- Предупредителен LED: Свързан към пин D8 с 220 ома резистор
- Реле сигнал: Свързан към пин D7, помпата работи с външно захранване
Пробата на сензора за влажност на почвата трябва да бъде поставена вертикално в почвата; точките на свързване на кабелите не трябва да са в контакт с почвата. Вместо да оставяте сензора постоянно в мокри зони, е по-добре да го поставите близо до кореновата зона, но далеч от местата, където водата се натрупва директно. Ако имате повече от едно саксия или легло, е по-здравословно да използвате отделен сензор за всяка част. Опитът да представите цялата площ с един сензор може да бъде заблуждаващо, особено в системи за капково поливане.
Настройка на Arduino IDE и библиотеки
След като изтеглите Arduino IDE от официалния източник и свържете платката си към компютъра, първо потвърдете, че платката работи с простия пример за мигане. След това инсталирайте необходимата библиотека за DHT сензора. Можете да отворите мениджъра на библиотеки в Arduino IDE и да инсталирате библиотеката за DHT сензор и пакета за Adafruit Unified Sensor. Тази стъпка ще улесни четенето на температурните и влажностните измервания от кода.
Ако планирате да свържете проекта с уеб панела, ще трябва да добавите мениджър на платки за ESP8266 или ESP32 към IDE. Въпреки това, в това ръководство основният код е предоставен с логиката на Arduino Uno. Така измервателната и решаваща алгоритмична логика ще бъде ясно разбираема. След това същата логика може да бъде разширена на ESP32 с HTTP POST или MQTT протокол. Когато създадете API крайна точка, Ръководства за API и интеграции могат да ви помогнат с архитектурното планиране на сървърната страна.
Примерен код за Arduino
Следният код чете влажността на почвата, температурата, влажността на въздуха и нивото на светлината. Когато влажността на почвата е под зададения праг, LED предупреждението светва. Не очаквайте директно процентни стойности без калибриране; всеки сензор и тип почва могат да генерират различни аналогови диапазони. Затова трябва да настроите стойностите за сухо и влажно в кода на базата на вашите измервания.
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
#define SOIL_PIN A0
#define LDR_PIN A1
#define LED_PIN 8
DHT dht(DHTPIN, DHTTYPE);
int dryValue = 820;
int wetValue = 360;
int minMoisture = 40;
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int soilRaw = analogRead(SOIL_PIN);
int lightRaw = analogRead(LDR_PIN);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
int soilPercent = map(soilRaw, dryValue, wetValue, 0, 100);
soilPercent = constrain(soilPercent, 0, 100);
if (soilPercent < minMoisture) { digitalWrite(LED_PIN, HIGH); }
else { digitalWrite(LED_PIN, LOW); }
Serial.print("Влажност на почвата: "); Serial.print(soilPercent); Serial.println("%");
Serial.print("Температура: "); Serial.print(temp); Serial.println(" C");
Serial.print("Влажност на въздуха: "); Serial.print(hum); Serial.println("%");
Serial.print("Сурова стойност на светлината: "); Serial.println(lightRaw);
Serial.println("---");
delay(10000);
}
В кода е използван интервал от 10 секунди за измерване. В реални селскостопански приложения, 10 секунди често е ненужно честа честота. За саксии или оранжерии интервали от 5 до 15 минути може да са достатъчни. Ако използвате батерия, удължаването на интервала за измерване, захранването на сензора само по време на измерване и използването на режими с ниска мощност може сериозно да увеличи живота на батерията.
Калибриране: Най-критичната стъпка за точни измервания
В много Arduino селскостопански проекти грешката не е в схемата, а в калибрирането. Сензорът за влажност на почвата генерира сурови аналогови стойности; тези стойности не означават директно процентна влажност. Първо, трябва да определите суровите стойности на сензора при сухи и влажни условия. Например, когато държите сензора в сух въздух, можете да прочетете 820, докато в напълно напоена почва без да е потопен, можете да прочетете 360. Тези две крайни стойности са дефинирани в кода като dryValue и wetValue.
Стъпки за калибриране
- Работете със сензора в суха среда и вземете 10 измервания; запишете средната стойност като суха стойност.
- Поставете сензора в много влажна почва, но не плуваща във вода; вземете 10 измервания.
- Извършете същата процедура с реалната почвена смес, която ще използвате; торф, глина и пясъчна почва се държат различно.
- Следете измерените стойности от серийния монитор и актуализирайте праговете в кода.
- Опитайте се да определите минималния праг на влажност в зависимост от типа на растението.
На практика стойностите 0% и 100% не представляват абсолютната влажност на селскостопанските култури; те представляват диапазона на сухо-влажността на вашия сензор. Въпреки това, те са много полезни за вземане на решения за поливане. За да получите по-надеждни решения, можете да използвате средната стойност на последните 3 или 5 измервания вместо само едно измерване. Този метод намалява внезапните скокове, причинени от контакт на сензора или електрически шум.
Изпращане на данни към уеб панела и публикуване
Стъпката, която прави интелигентния селскостопански сензор наистина полезен, е проследяването на измерванията в ретроспекция. Вместо да видите само текущата стойност на влажността, е по-правилно да видите нуждите от поливане, температурни промени и тенденции на светлина за последните 7 дни. За целта можете да изпратите данните от сензора на уеб сървър, да ги запишете в база данни с прост PHP или Node.js API и да ги покажете на графичен панел.
Основната архитектура може да бъде следната: ESP32 прочита сензорите, изпраща HTTP POST искане на сървъра в JSON формат, сървърът валидира получените данни и ги записва в MySQL база данни. На панела последните измервания се показват в таблица или графика. За да публикувате този панел на вашия собствен домейн, можете да се възползвате от Как се прави регистрация на домейн и избор на подходящ пакет уеб хостинг за стабилно публикуване.
За сигурност добавете дори просто проверка на токена в API. Например, устройството изпраща тайна ключова стойност с всяка заявка; сървърът не записва данните, без да валидира този ключ. Защитете достъпа до панела с парола, поддържайте софтуера актуален и не забравяйте да използвате HTTPS. Ако искате да споделяте данните публично, не показвайте местоположението в детайли. Локацията на оранжерията, полето или склада може да бъде търговски важна.
Важни аспекти за тези, които искат да добавят автоматично поливане

Добавянето на реле и мини помпа прави проекта по-впечатляващ; обаче трябва да бъдете внимателни, тъй като вода и електричество се комбинират в една и съща система. Arduino трябва да бъде само решаваща единица и помпата не трябва да получава захранване директно от пина на Arduino. За помпата трябва да се използва отделен адаптер, реле или MOSFET драйвер. Нискокачествени 5V или 12V DC помпи са по-безопасни за хоби проекти.
Най-големият риск при автоматичното поливане е помпата да работи прекалено дълго поради грешка в сензора. Затова определете максималното време за поливане в софтуера. Например, дори когато влажността на почвата е ниска, помпата да не работи повече от 20 секунди и да изчака до следващото измерване. Освен това можете да поставите ограничение на максималния брой поливания на ден. Тези видове защитни граници предотвратяват потъването на растението или изчерпването на водния резервоар поради малка повреда в сензора.
Препоръчителна логика за поливане
- Ако влажността на почвата е под прага, първо потвърдете с две последователни измервания.
- Кратко включете помпата; например за 10-20 секунди.
- След поливането изчакайте поне 5 минути, за да може почвата да абсорбира водата.
- Ако влажността все още е ниска, стартирайте втория кратък цикъл на поливане.
- Ограничете максималния брой работни цикли на ден в софтуера.
Устойчивост на открито и поддръжка
Схемата, работеща на лабораторната маса, може да не работи дълго на открито по същия начин. Влага, дъжд, слънце, насекоми, прах и температурни разлики поставят електронните компоненти под натиск. Затова поставете платката в кутия с IP65 ниво, използвайте уплътнения на входовете на кабелите и поставете малки пакети с влагопоглъщател в кутията, за да намалите кондензацията. Когато поставяте сензора в почвата, защитете местата на свързване на кабелите със силикон или термоуспокояваща тръба.
Графикът за поддръжка също е важен. Проверявайте всяка седмица дали сензорът не е разместен, кабелите не са се отпуснали и измерванията са в разумни граници. Преглеждайте стойностите на калибриране веднъж месечно. Ако сензорът дава много различни стойности при същите условия на влажност, пробата може да е замърсена, свързването е корозирало или сензорът е износен. Капацитивните сензори имат по-дълъг живот в сравнение с резистивните, но все пак не могат да издържат неограничено време в постоянно влажна среда.
Често срещани грешки и решения
Най-честата грешка на първоначалните инсталации е да се смятат стойностите на сензора за действителната процентна влажност. Друга грешка е да се използва сензорът за влажност на почвата напълно потопен във вода. Това може да повреди електронната част на сензора. Също така, оставянето на DHT сензора на пряка слънчева светлина може да покаже по-високи температурни стойности от действителността. Сензорът за температура и влажност трябва да бъде разположен на сянка, на място, където може да получава въздушен поток.
- Стойностите постоянно са 0 или 100: Стойностите за калибриране на сухо и влажно може да са объркани или неправилно въведени.
- DHT сензорът показва NaN: Трябва да се провери библиотеката, избора на пин или свързването на кабелите.
- Arduino се нулира, когато помпата работи: Помпата може да натоварва същата захранваща линия; използвайте отделен захранващ източник.
- Wi-Fi връзката прекъсва: Проверете позицията на антената, захранващия източник и нивото на сигнала.
- Измерванията са много променливи: Опитайте да използвате средна стойност, къси кабели и по-стабилно захранване.
Интерпретиране на данни: Превръщане на числа в решения
Основната стойност на интелигентния селскостопански сензор е в превръщането на суровите данни в смислени решения. Например, ако влажността на почвата е ниска, температурата висока и нивото на светлината е високо, растението може да губи вода бързо. Обратно, ако влажността на почвата изглежда ниска, но въздухът е хладен и светлината е ниска, може да се отложи поливането с няколко часа. Затова е по-добре да се гледа на комбинации вместо да се разчита само на данните от един сензор.
Когато записвате данни за една седмица, можете да видите колко бързо спада влажността след поливане. Ако влажността спада бързо по същото време всеки ден, можете да коригирате плана си за поливане. Ако в някои области влажността постоянно остава висока, може да има проблем с отводняването. Тези наблюдения могат да повишат качеството на производството дори в малки мащаби. Ако искате да споделите проекта си като блог или техническа документация, страница на проекта, публикувана на вашия собствен домейн, може да служи като портфолио и образователен ресурс. За това можете да разгледате Ръководство за създаване на уебсайт и инсталация на SSL сертификат за сигурно публикуване.
Идеи за развитие на проекта
След като стартирате основната система, можете да развиете проекта в много различни посоки. Например, можете да добавите сензор за дъжд, за да отложите поливането на открито в зависимост от времето. Можете да следите хранителния разтвор с pH сензор и EC сензор. Можете да добавите OLED екран, за да показвате измерванията локално, или модул за SD карта, за да записвате дори и без интернет. На по-високо ниво можете да използвате MQTT за предаване на данни към платформи като Home Assistant.
- Използване на режим на дълбок сън с ESP32 за удължаване на живота на батерията
- Създаване на независима енергийна система с соларен панел и заряден модул
- Графично отчитане с Grafana или специален панел
- Изпращане на предупреждение за поливане чрез Telegram или имейл
- Проследяване на множество сензори на едно място
- Интеграция на мобилно приложение чрез API
Ако планирате да инсталирате множество устройства, дайте уникален идентификационен номер на всеки сензор. На сървърната страна редовното съхраняване на идентификатора на устройството, времето на измерване, типа на сензора и стойностите ще улесни анализа в бъдеще. Когато базата данни нараства, планът за архивиране също става важен. Ако контролният панел ще се използва при бизнес решения, би било полезно да разгледате теми като Решения за архивиране на хостинг.
Преобразуване на проекта в блог от гледна точка на SEO и публикуване на съдържание
Този проект не трябва да остава само технически опит. Можете да превърнете резултатите от измерванията, снимките от инсталацията, проблемите, с които сте се сблъскали, и стъпките за решаване в блог статия, като по този начин допринасяте за общността и създавате ценен технически ресурс в търсачките. В техническите съдържания „Направи си сам“, Google цени ясни снимки, уникални измервателни данни, стъпки за решаване на проблеми и реални потребителски опити.
Когато публикувате статията си, ясно посочете целевата тема в заглавието, кажете на читателя какво ще научи в първия параграф, предоставете списък с материали в таблица и подкрепете кода с обяснения. Добавянето на вашите тестови резултати е силно в контекста на E-E-A-T. Например, конкретни данни като „капацитивният сензор даде стойности 812 в суха почва, и 428 след поливане“ разделят съдържанието от обикновените копирани ръководства. За бърз и сигурен сайт, на който да публикувате проекта си, можете да разгледате Hostragons пакети за хостинг.
Заключение
Направете собствен интелигентен селскостопански сензор с Arduino проект е приложим стартов проект, който обединява електроника, софтуер и селскостопански наблюдения. С правилния избор на сензори, внимателна калибрирация, безопасно проектиране на захранването и редовно записване на данни, можете да изградите полезна система за подпомагане на решенията за малка градина или оранжерия. Ако искате да наблюдавате данните на уеб панел, надеждното хостинг, домейн и SSL инфраструктура ще направят проекта по-професионален. Когато сте готови, можете да планирате домейна и хостинг средата си чрез Hostragons и да публикувате проекта си безопасно.
Често задавани въпроси
Необходимо ли е да имам софтуерни умения, за да направя интелигентен селскостопански сензор с Arduino?
Основните умения за работа с Arduino IDE и редактиране на готов код са достатъчни. Ако можете да променяте номера на пиновете, праговите стойности и интервалите за калибриране, можете да завършите стартовия проект. За добавяне на уеб панел и API обаче са необходими основни познания по HTTP, бази данни и сървъри.
По-добър ли е капацитивният сензор за влажност на почвата или резистивният сензор?
Капацитивният сензор за влажност на почвата е по-подходящ за дългосрочна употреба. Резистивните сензори са по-склонни към корозия в мокра почва и с времето могат да загубят точността на измерването. В проекти за открито или оранжерия трябва да се предпочита капацитивният модел.
Може ли тази система да се използва в реално земеделие?
Тя е подходяща за малки оранжерии, хоби градини, учебни проекти и предварителни тестове. В търговското производство може да бъде полезна като система за подпомагане на решения; обаче за критични решения за поливане се препоръчват индустриални сензори, резервни измервания и професионална автоматизация за сигурност.
Безопасно ли е да се показват данни от сензора в интернет?
Може да бъде безопасно. Необходимо е да се използва токен за API, да се защити панелът с парола, да се активира HTTPS и да се поддържа софтуерът актуален. Използването на SSL при домейна и хостинга за криптиране на предаването на данни е добро начало.
Мога ли да захранвам Arduino с батерия или слънчев панел?
Да, но е необходимо да намалите консумацията на енергия. Удължаването на интервала за измерване, използването на дълбок сън с ESP32, захранването на сензорите само по време на измерването и добавянето на слънчев панел с подходящ контролен модул за зареждане ще увеличи живота на батерията.