Тэхналогія

Як зрабіць свой разумны сельскагаспадарчы датчык на Arduino: Практычны DIY-гайд

  • 12 хв чытання
  • Каманда Hostragons
Як зрабіць свой разумны сельскагаспадарчы датчык на Arduino: Практычны DIY-гайд

Праект "Як зрабіць свой разумны сельскагаспадарчы датчык на Arduino" — гэта бюджэтная IoT-сістэма, якая дазваляе аўтаматычна кантраляваць вільготнасць глебы, тэмпературу, вільготнасць паветра і ўзровень святла, а таксама, пры неабходнасці, выдаваць папярэджанне аб паліве і перадаваць дадзеныя на вэб-панэль. У гэтым гайдзе вы знойдзеце ўсё, што трэба для зборкі Arduino-датчыка за 1–2 гадзіны: спіс частак, схему падключэння, прыклад кода, этапы каліброўкі, парады па надзейнасці для адкрытага паветра і спосабы маніторынгу дадзеных праз інтэрнэт.

Разумныя агра-датчыкі выкарыстоўваюцца ад хатніх грэдак да цяпліц для аптымізацыі паліву, ранняга выяўлення стрэсу раслін і лічбавага кантролю ўмоў росту. Гатовыя прамысловыя сістэмы магутныя, але для пачаткоўцаў, студэнтаў, maker-аў ці малых гаспадарак модульнае рашэнне на Arduino — больш даступнае і навучальнае. Пры правільным выбары датчыка і рэгулярнай каліброўцы вы атрымаеце дастаткова дакладныя вынікі для штодзённых рашэнняў.

Мэта гэтага артыкула — не проста зрабіць працуючую схему, а ўсебакова разабраць логіку вымярэнняў, дакладнасць даных, энергазатраты, падключэнне да інтэрнэту і бяспечную публікацыю. Калі вы захочаце паказваць вынікі на сайце ці ў спецыяльнай панэлі, вам спатрэбіцца надзейная інфраструктура. Для дакументацыі праекта, API-эндпойнтаў ці кіруючых панэляў можна выкарыстоўваць Hostragons рашэнні для веб-хостынгу, а для дамэннай публікацыі — Hostragons праверка дамена.

Мэта праекта і прынцып працы

Гэты разумны агра-датчык збірае чатыры асноўныя параметры з навакольнага асяроддзя: вільготнасць глебы, тэмпературу, вільготнасць паветра і інтэнсіўнасць святла. Arduino перыядычна счытвае гэтыя дадзеныя, параўноўвае іх з вызначанымі парогамі і можа выводзіць вынікі на серыйны экран, LCD, SD-карту або праз Wi-Fi на вэб-сервер. У простым варыянце, калі вільготнасць глебы ніжэй зададзенага ўзроўню — загараецца LED або buzzer, у больш складаным — рэле запускае міні-помпу для паліву.

Напрыклад: калі на балконе, дзе растуць памідоры, вільготнасць глебы доўгі час трымаецца ніжэй за 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 — мае Wi-Fi і больш магутны працэсар для IoT. Гатовыя наборы хутка запускаюцца, але менш гнуткія.

Параўнанне Arduino, ESP32 і гатовых набороў
ВарыянтПлюсыМінусыЛепшае прымяненне
Arduino UnoМноства інструкцый, простыя злучэнні, ідэальна для навучанняWi-Fi няма, займае больш месцаПрататыпы і навучальныя праекты
Arduino NanoМаленькі памер, танна, зручна для пастаянных мантажоўUSB і піны могуць быць складанымі для пачаткоўцаўГрэдакі, балконы, кампактныя цяпліцы
ESP32Убудаваны Wi-Fi/Bluetooth, магутны, эканоміць энергіюЛогіка 3.3V патрабуе ўвагіIoT-сістэмы з вэб-панэлямі
Гатовы агра-наборХуткі старт, сумяшчальныя кампанентыМала магчымасцяў для гнуткасці і навучанняДля тых, у каго мала часу

Пачаткоўцам лепш пачаць з Arduino Uno і серыйнага манітору. Для онлайн-вываду даных — ESP8266 або ESP32. Для прафесійнага міні-панэля — ESP32, бо ён патрабуе менш частак і забяспечвае чыстую архітэктуру.

Схема падключэння: базавая зборка

У базавым варыянце капацтыўны датчык глебы падключаецца да аналогавага піну, DHT — да лічбавага, LDR праз падзел напружання — да аналогавага. Падключайце ўсё пры выключаным харчаванні. Для помпы або рэле харчаванне павінна быць асобнае, а Arduino толькі дае сігнал кіравання.

Рэкамендаваныя піны

  • Датчык глебы VCC: 5V, GND: GND, AO: A0
  • DHT22 VCC: 5V, GND: GND, DATA: D2
  • LDR: адзін канец — 5V, другі — A1 і праз 10K рэзістар — GND
  • LED: D8 праз 220 Ом рэзістар
  • Сігнал рэле: D7, помпа — асобнае сілкаванне

Праб датчыка глебы ўстаўляйце вертыкальна ў грунт, а кабельнае злучэнне не павінна дакранацца да глебы. Лепш размясціць датчык каля каранёў, але не ў месцы, дзе пастаянна стоіць вада. Для некалькіх грэдак — асобныя датчыкі. Адзін датчык на ўсю плошчу можа быць недакладным, асабліва пры кропельным паліве.

Настройка Arduino IDE і бібліятэк

Спачатку спампуйце Arduino IDE з афіцыйнага сайта, падключыце плату і праверце працаздольнасць праз прыклад "blink". Далей усталюйце бібліятэку для DHT — у Library Manager знайдзіце DHT sensor library і Adafruit Unified Sensor. Гэта палегчыць чытанне тэмпературы і вільготнасці ў кодзе.

Калі вы хочаце вэб-панэль, дадайце ESP8266 або ESP32 Board Manager у IDE. У гэтым гайде код прыводзіцца для Arduino Uno — гэта дазваляе зразумець логіку вымярэнняў і рашэнняў. Затым яе можна пашырыць для ESP32 з HTTP POST або MQTT. Для стварэння API-эндпойнтаў глядзіце Кіраўніцтва па API і інтэграцыях.

Прыклад Arduino-кода

Код ніжэй счытвае вільготнасць глебы, тэмпературу, вільготнасць паветра і святло. Калі глеба сухая — LED сігналізуе. Не чакайце працэнтных значэнняў без каліброўкі — кожны датчык і грунт даюць свае аналагавыя межы. "dryValue" і "wetValue" трэба падстроіць пад ваш грунт.

#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 секунд. У рэальных умовах гэта занадта часта — для грэдак ці цяпліцы 5–15 хвілін хапае. Калі працуеце на батарэі — павялічвайце інтэрвал, сілкуйце датчыкі толькі падчас замераў і выкарыстоўвайце рэжымы нізкага спажывання для павелічэння часу працы.

Каліброўка: ключ да дакладных вымярэнняў

Самая частая памылка — некарэктная каліброўка глебавага датчыка. Датчык выдае аналагавы сыры паказчык — гэта не ёсць працэнт вільготнасці. Спачатку вызначце, што для вашага датчыка лічыцца "сухім" і "вільготным". Напрыклад: у сухім паветры паказчык 820, у мокрай глебе — 360. Гэта dryValue і wetValue ў кодзе.

Этапы каліброўкі

  • Пакладзіце датчык у сухое асяроддзе, зрабіце 10 замераў, возьміце сярэдняе — dryValue.
  • Пакладзіце ў вельмі мокрую глебу (без вады), зрабіце 10 замераў — wetValue.
  • Зрабіце тое ж з грунтам, які будзе выкарыстоўвацца — торф, гліністы, пясчаны даюць розныя значэнні.
  • Глядзіце вынікі ў серыйным маніторы і абнаўляйце межы ў кодзе.
  • Падстройвайце мінімальны парог пад від раслін.

Працэнт 0 і 100 — гэта не абсалютная вільготнасць, а ваш дыяпазон сухога і мокрага для дадзенага датчыка. Для паліву гэтага цалкам дастаткова. Для больш дакладных рашэнняў бярыце сярэдняе з 3–5 апошніх замераў — гэта зніжае рызыку выпадковага скачка з-за кантакту ці электрычных перашкод.

Перадача даных на вэб-панэль і публікацыя

Сапраўдная карысць разумнага датчыка — аналіз гісторыі. Важна бачыць, як вільготнасць, тэмпература і святло змяняліся за 7 дзён, а не толькі зараз. Для гэтага даные можна перадаваць на вэб-сервер, захоўваць праз просты PHP або Node.js API, і візуалізаваць у графічнай панэлі.

Простая архітэктура: ESP32 счытвае датчыкі, пасылае дадзеныя ў фармаце JSON праз HTTP POST на сервер, сервер валідуюе і запісвае ў MySQL. Панэль паказвае апошнія замеры ў табліцы ці графіку. Для публікацыі панэлі на сваім дамене скарыстайце Як зарэгістраваць домен і для стабільнай работы — Выбар адпаведнага пакета вэб-хостынга.

Бяспека: дадайце token-палі для API. Пры кожным запыце прылада дасылае сакрэтны ключ — сервер без праверкі не захоўвае дадзеныя. Панэль абараняйце паролем, абнаўляйце ПЗ і абавязкова выкарыстоўвайце HTTPS. Калі даные адкрыты, не паказвайце дакладнае месцазнаходжанне — гэта можа быць камерцыйна адчувальным.

Парады для аўтаматычнага паліву

Парады для аўтаматычнага паліву

Рэле і міні-помпа робяць праект больш цікавым, але патрабуюць увагі — вада і электрычнасць у адной сістэме небяспечныя. Arduino толькі прымае рашэнне, але не сілкуе помпу — для помпы патрэбен асобны адаптар, рэле або MOSFET. Для DIY падыходзяць 5V або 12V DC-помпы.

Галоўная рызыка — памылка датчыка і празмерная праца помпы. У кодзе абмежуйце максімальную працягласць паліву — напрыклад, не болей 20 секунд за раз, потым перапынак да наступнага замеру. Можна абмежаваць колькасць паліву за дзень. Гэта абароніць расліны і не дасць спустошыць рэзервуар вады.

Рэкамендуемы алгарытм паліву

  • Пры парозе вільготнасці робіце два паслядоўныя замеры для пацверджання.
  • Уключайце помпу на 10–20 секунд.
  • Пасля паліву чакайце мінімум 5 хвілін, каб глеба ўбрала ваду.
  • Калі вільготнасць малая — другі палів.
  • Абмежуйце колькасць паліву за суткі ў кодзе.

Надзейнасць у адкрытым паветры і абслугоўванне

Схема, якая працуе на стале, можа не вытрымліваць на вуліцы месяцамі. Вільготнасць, дождж, сонца, шкоднікі, пыл і тэмпературныя змены — выпрабаванне для электронікі. Скрынку трэба выбіраць IP65, кабельныя ўводы — герметычныя, унутры — пакеты для паглынання вільгаці. Кабельныя злучэнні абараняйце сіліконам або тэрмаўсадкай.

Абслугоўванне: раз на тыдзень правярайце, ці не зрушаны датчык, ці добра трымаюцца кабелі, ці рэалістычныя замеры. Раз на месяц пераглядзіце каліброўку. Калі датчык дае нестандартныя паказчыкі ў аднолькавых умовах — магчымы бруд, акісленне ці знос. Капацтыўныя датчыкі больш даўгавечныя за рэзістыўныя, але ў пастаянна мокрай глебе вечна не працуюць.

Тыповыя памылкі і іх вырашэнне

Часта пачаткоўцы прымаюць сырыя значэнні датчыка за працэнт вільготнасці. Іншая памылка — поўнае занурэнне датчыка глебы ў ваду, што шкодзіць электроніцы. DHT датчык пад сонцам паказвае завышаную тэмпературу — яго трэба размяшчаць у цені, з доступам паветра.

  • Значэнні заўсёды 0 або 100: Магчыма, dryValue і wetValue ў кодзе пераблытаны або памылковыя.
  • DHT выдае nan: Праверце бібліятэку, пін і кабелі.
  • Arduino перазагружаецца пры працы помпы: Помпа перагружае агульную лінію — патрэбна асобнае сілкаванне.
  • Wi-Fi зрываецца: Праверце антену, сілкаванне і сігнал.
  • Замеры нестабільныя: Скараціце кабелі, бярыце сярэдняе, зменіце сілкаванне.

Аналіз даных: ад лічбаў да рашэнняў

Галоўная вартасць датчыка — пераўтварэнне сырых даных у карысныя высновы. Напрыклад: калі глеба сухая, тэмпература высокая і святло яркае — расліны хутка губляюць ваду. Але калі глеба сухая, а паветра халоднае і святла мала — палів можна адкласці. Камбінаваная аналіз даных дае лепшы вынік, чым адзін датчык.

Запіс за тыдзень пакажа, як хутка падае вільготнасць пасля паліву. Калі гэта адбываецца кожны дзень у адзін і той жа час — можна падладзіць графік паліву. Калі некаторыя зоны пастаянна мокрыя — магчыма праблемы з дрэнажам. Такія назіранні павышаюць якасць нават у малых гаспадарках. Публікацыя праекта як блог або тэхнічная дакументацыя на сваім дамене — гэта і партфоліо, і навучальны матэрыял. Для гэтага скарыстайце Кіраўніцтва па стварэнню сайта і Устаноўка сертыфіката SSL.

Ідэі для развіцця праекта

Пасля запуску базавай сістэмы яе можна пашыраць: напрыклад, дадаць датчык дажджу для кіравання палівам у адкрытым грунце, pH-датчык і EC-датчык для кантролю раствораў, OLED-экран для лакальнага вываду даных, SD-карту для аўтаномнай запісу, MQTT для інтэграцыі з Home Assistant.

  • ESP32 з deep sleep для павелічэння часу працы ад батарэі
  • Сонечная панэль і модуль зарадкі для незалежнага сілкавання
  • Графічная справаздача праз Grafana або ўласную панэль
  • Паведамленні ў Telegram або e-mail пра палів
  • Маніторынг некалькіх датчыкаў у адной панэлі
  • Мабільная інтэграцыя праз API

Калі ў вас некалькі прылад — кожны датчык павінен мець унікальны ID. На серверы варта захоўваць ID, час замеру, тып датчыка і значэнне — гэта спрасціць аналіз у будучыні. Пры вялікай базе даных важна наладзіць бэкап. Калі панэль дапамагае ў гаспадарчых рашэннях — пачынайце вывучаць Рашэнні для рэзервнага капіравання хостынгу на ранніх этапах.

Як пераўтварыць праект у блог (SEO і кантэнт)

Гэты праект — не проста тэхнічны эксперымент. Публікуйце вынікі замераў, фота зборкі, апісанне памылак і рашэнняў у блогу — гэта дапаможа супольнасці і зробіць ваш сайт каштоўным для пошукавікаў. Для DIY Google любіць: якасныя фота, унікальныя вынікі, этапы рашэння памылак і рэальны досвед.

Публікуючы, пазначайце тэму ў загалоўку, тлумачце, што чытач даведаецца, давайце табліцу камплектуючых, каментуйце код, дадавайце свае вынікі (E-E-A-T). Напрыклад, "капацтыўны датчык выдаў 812 у сухой глебе, 428 пасля паліву" — такія канкрэтныя даные адрозніваюць ваш блог ад стандартных гайдаў. Для хуткай і бяспечнай публікацыі скарыстайце Hostragons пакеты хостынгу.

Вынік

Праект Arduino "Разумны агра-датчык" — гэта рэальны старт для тых, хто сумяшчае электроніку, праграмаванне і агра-назіранне. З правільнымі датчыкамі, акуратнай каліброўкай, бяспечным сілкаваннем і рэгулярным запісам даных вы можаце стварыць карысную сістэму для грэдак ці цяпліцы. Для вэб-моніторынгу спатрэбіцца надзейны хостынг, дамен і SSL — гэта зробіць праект прафесійным. Калі гатовыя, сплануйце дамен і хостынг праз Hostragons — і пераходзьце да бяспечнай публікацыі.

Частыя пытанні

Ці патрэбна веданне праграмавання для зборкі агра-датчыка на Arduino?

Дастаткова базавых навыкаў працы з Arduino IDE і ўмення рэдагаваць гатовы код: мяняць піны, парогі, каліброўку. Для вэб-панэлі і API патрэбныя базавыя веды HTTP, баз даных, сервераў.

Які датчык глебы лепшы — капацтыўны ці рэзістыўны?

Для доўгатэрміновага выкарыстання капацтыўны датчык пераважней. Рэзістыўныя схільныя да карозіі ў мокрай глебе, з часам страчваюць дакладнасць. Для цяпліц і вулічных праектаў — лепш капацтыўны.

Ці можна выкарыстоўваць гэтую сістэму ў рэальнай аграрнай вытворчасці?

Яна падыходзіць для малых цяпліц, грэдак, навучальных і пробных праектаў, можа быць асновай для падтрымкі рашэнняў у малым бізнесе. Для крытычнага паліву — патрэбны прамысловыя датчыкі, дубляж і аўтаматызацыя.

Ці бяспечна публікаваць даные датчыка ў інтэрнэце?

Можна зрабіць бяспечна: выкарыстоўвайце API-token, пароль на панэль, HTTPS, рэгулярна абнаўляйце ПЗ. SSL на дамене і хостынгу — добры старт для шыфравання даных.

Ці можна запусціць Arduino-датчык ад батарэі або сонечнай панэлі?

Так, але варта зменшыць спажыванне: павялічвайце інтэрвал замераў, выкарыстоўвайце deep sleep на ESP32, сілкуйце датчыкі толькі падчас замераў, дадавайце модуль зарадкі для сонечнай панэлі.

Падзяліцеся гэтым артыкулам:

Каманда Hostragons

Актуальныя кіраўніцтва ад нашай каманды экспертаў па хостынгу, серверах і даменных імёнах. Давайце разам знойдзем правільнае рашэнне для вашага праекта.

Звяжыцеся з намі