Talaan ng mga Nilalaman:

DIY - Automated Garden Irrigation - (Arduino / IOT): 9 Mga Hakbang (na may Mga Larawan)
DIY - Automated Garden Irrigation - (Arduino / IOT): 9 Mga Hakbang (na may Mga Larawan)

Video: DIY - Automated Garden Irrigation - (Arduino / IOT): 9 Mga Hakbang (na may Mga Larawan)

Video: DIY - Automated Garden Irrigation - (Arduino / IOT): 9 Mga Hakbang (na may Mga Larawan)
Video: Arduino Garden Controller - Automatic Watering and Data Logging 2024, Nobyembre
Anonim
DIY - Automated Garden Irrigation - (Arduino / IOT)
DIY - Automated Garden Irrigation - (Arduino / IOT)
DIY - Automated Garden Irrigation - (Arduino / IOT)
DIY - Automated Garden Irrigation - (Arduino / IOT)
DIY - Automated Garden Irrigation - (Arduino / IOT)
DIY - Automated Garden Irrigation - (Arduino / IOT)

Ipapakita sa iyo ng proyektong ito kung paano bumuo ng isang irrigation controller para sa isang hardin sa bahay. May kakayahang sukatin ang mga pagbabasa ng kahalumigmigan sa lupa at paganahin ang patubig mula sa isang hardin kung ang lupa ay naging masyadong tuyo. Kasama rin sa controller ang isang sensor ng temperatura at halumigmig. Hindi isasaaktibo ng Controller ang hardin kung ang temperatura ay masyadong mababa. Ang mga pagbabasa ng sensor at istatistika tungkol sa paggamit ng tubig / oras ng pagpapatakbo ay naitala sa ThingsBoard IOT para sa visualization at analytics. Ang mga alerto at email ay napalitaw kung ang tagapagpatuloy ng patubig ay tumitigil sa paglilipat ng data, ang lupa ay naging masyadong tuyo o sobrang puspos.

Mga Pangangailangan

  • Ang kaalaman sa Arduino kabilang ang hindi bababa sa pangunahing pag-coding para sa Arduino at paghihinang.
  • 1x pressurized hardin tapikin

Bill Ng Mga Materyales

  • Garden irrigation poly pipe, jet, driper atbp.
  • Dalawang dial electronic tap timer (hal: Aqua Systems Electronic Digital Tap Timer)
  • Tapikin ang reducer ng presyon ng 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (Hindi kinakailangan kung mayroon kang isang lokal na saklaw na gateway ng Mga bagay Network)
  • DHT11 Temperatura sensor ng Humidity
  • 5v Relay
  • Telepono Cable
  • Mga Tali ng Cable
  • Automotive Split Corrugated Tubing
  • Mga Strip ng Connector ng Automotive Terminal
  • 2x Galvanized na mga kuko
  • 1x Resistor
  • Silicon / Caulk
  • PVC Cement
  • Panimula ng PVC
  • PVC Pipe 32mm lapad x 60mm haba
  • Ang PVC Pipe na 90mm ang lapad x 30cm ang haba
  • 3x PVC Push End Caps 90mm
  • 1x PVC Screw End Cap 90mm
  • 1x PVC Threaded Insert Fitting 90mm
  • 1x PVC Push End Caps 32mm
  • 1x 3.2V pinagmulan ng kuryente (tap timer) [baterya, AC multivolt adapter]
  • 1x 6-12V pinagmulan ng kuryente (arduino) [baterya, USB, USB sa AC adapter]
  • thread selyo tape
  • electrical tape

Hakbang 1: Mag-install ng Irigasyon sa Hardin

Mag-install ng Irigasyon sa Hardin
Mag-install ng Irigasyon sa Hardin
Mag-install ng Irigasyon sa Hardin
Mag-install ng Irigasyon sa Hardin

Layout poly pipe, fit jet, drip lines at driper. Gagana ang tagakontrol ng patubig sa anumang pag-aangkop sa patubig. Sa core nito sinusukat nito ang pagbabasa ng kahalumigmigan sa lupa at paganahin ang tap timer kung at kailan ang lupa ay masyadong tuyo. Ang calibrator ay maaaring i-calibrate upang maitakda ang mababang punto para sa saturation, kung gaano katagal dapat buksan ang tap timer at kung gaano kadalas dapat suriin ng tagontrol ang saturation.

Ang mga setting na ito ay maaaring mabago sa arduino at maiimbak sa memorya ng EPROM. Ang mga setting ay maaari ring mai-update ng pagsasama ng IOT. Patakbuhin ng proyektong ito ang controller tuwing apat na oras at i-on ang gripo para sa 3 minuto kung ang lupa ay masyadong tuyo. Maaari itong tumakbo ng ilang beses sa isang hilera kung tuyo / mainit o isang beses sa isang araw o dalawa kung hindi man.

Hakbang 2: Pagkasyahin ang Tapikin ang Timer

Pagkasyahin ang Tapikin ang Timer
Pagkasyahin ang Tapikin ang Timer

Pagkasyahin ang tap timer at mag-eksperimento sa mga naaayos na mga pagdayal upang mag-ehersisyo ang isang magaspang na dalas at patakbuhin ang oras na pinakamahusay na gumagana para sa iyong pag-install ng irigasyon. Aalisin namin ang timer at binabago ito upang gumana sa isang Arduino.

Hakbang 3: Bumuo ng Arduino

Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build

Gamitin ang diagram ng mga kable bilang isang gabay para sa pagbuo. Sa mga larawan ang mga kable ng telepono ng telepono ay ginamit at i-tornilyo ang mga strip ng terminal para sa mga puntos ng kantong. Kinakailangan ang ilang paghihinang.

I-tap ang Pagbabago ng Timer

Maingat na ihiwalay ang tap timer. Mahihirapan kaming mag-kable ng dalawang naaayos na mga dayal upang makontrol nila ng arduino sa halip na mga manu-manong pagdayal. Ang kaliwang dalas ng dial ay magiging matigas na naka-wire sa posisyon ng pag-reset upang ang tamang pag-dial ay maaaring i-toggle sa pagitan ng posisyon na on / off. Ang tamang dial ay magkakaroon ng isang wire na nagmumula sa kanang contact sa gitna at ang panlabas na kanang contact tulad ng ipinakita. Bilang default ang timer ay nasa posisyon na off. Kung ang dalawang wires ay makipag-ugnay sa timer ay bubuksan. Gamit ang dalawang wires na konektado sa isang 5V relay, ang isang arduino ay maaaring magsara / buksan ang contact sa pagitan ng dalawang mga wire. Sa isang kawad sa karaniwang terminal ng relay at ang iba pa sa karaniwang saradong terminal ay titiyakin namin na ang timer ay naka-off kapag ang arduino ay naka-off. Ang pagtatakda ng relay pin sa TAAS ay magbubukas sa timer; ang pagtatakda nito sa LOW ay papatayin ang timer.

Probe ng Lupa

Para sa proyektong ito ang dalawang mga kuko ay solder sa wire na konektado sa mga terminal ng tornilyo. Ang isang terminal ng kuko ay dumidiretso sa lupa. Ang iba pang kumokonekta sa isang analog na input sa arduino at isang risistor. Ang risistor ay kumokonekta sa signal ng arduinos 5v. Ipinapakita sa diagram ng wring.

Temp / Humidity Sensor

Ang DHT11 Temp / Humidity Sensor ay naka-wire sa 5V ng arduino, ground at isang digital pin sa arduino.

Lora kalasag

Gumamit din ang proyektong ito ng isang Dragino Lora Shield (hindi ipinakita sa diagram ng mga kable).

Base sa PVC

Ang PVC Base para sa arduino na ginamit sa proyektong ito ay dinisenyo upang ang temp / kahalumigmigan sensor ay maaaring mailantad habang pinapanatili ang lahat ng iba pang mga sangkap na naka-secure sa loob ng hindi tinatagusan ng tubig na enclosure ng PVC. Ang isang maliit na butas ay drilled / cut para sa sensor at ang silikon ay ginagamit upang hawakan ito sa lugar habang pinipigilan ang kahalumigmigan mula sa pag-abot sa arduino. Ipinapakita sa diagram.

Hakbang 4: Arduino Programming

Programming ng Arduino
Programming ng Arduino

Ikonekta ang mga sangkap nang magkasama sa pamamagitan ng isang breadboard o terminal strips para sa pag-program at pagsubok

Pag-configure ng EPROM

Una kailangan naming magsulat ng mga variable ng pagsasaayos sa memorya ng EPROM. Patakbuhin ang sumusunod na code sa iyong arduino:

Magagamit ang code sa Github

Narito ang DRY_VALUE ay nakatakda sa 960. Ang 1024 ay nangangahulugang ang lupa ay ganap na tuyo, 0 ay nangangahulugang kumpletong saturation, 960 ay isang mahusay na antas ng saturation para sa resistor, haba ng cable at mga kuko na ginamit. Maaari itong mag-iba depende sa iyong sariling pagsasaayos.

Ang VALVE_OPEN ay nakatakda sa 180000 miliseconds (3 minuto). Kailan / kung nakabukas ang tap timer ay maiiwan itong bukas sa loob ng 3 minuto.

Ang RUN_INTERVAL ay nakatakda sa 14400000 miliseconds (4 na oras). Nangangahulugan ito na susuriin ng taga-kontrol ang kahalumigmigan sa lupa tuwing apat na oras at i-on ang tap timer para sa 3 minuto kung ang saturation ay mababa (mas malaki sa 960).

Maaaring baguhin ang code sa itaas at mabago ang mga halagang ito anumang oras.

Code ng Programa

Magagamit ang code sa Github

Mga dependency:

  • TimedAction
  • Head ng Radyo

Ang halimbawang ito ay ginamit ang kalasag ng Dragino Lora at partikular ang kasabay na halimbawa ng Lora na may kalasag na kumokonekta nang direkta sa Dragino Lora Gateway.

Maaari itong iakma upang magamit ang Things Network sa pamamagitan ng pag-alis ng code sa ilalim ng seksyon na "MAGSIMULA: lora vars" at binago ang programa upang isama ang sumusunod na halimbawa ng Dragino o inangkop upang gumana sa iba pang mga radio / wifi Shield atbp.

Ipinapalagay ng ibinigay na code na ang DHT11_PIN ay digital pin 4, ang RELAY_PIN ay digital pin 3 at ang ground moisture analog pin ay analog input 0.

Ang isang variable ng debug ay maaaring itakda sa totoo upang ang mga Serial debug na mensahe ay maaaring naka-log sa baudrate 9600.

Hakbang 5: Bumuo ng Enclosure

Bumuo ng Enclosure
Bumuo ng Enclosure

Gupitin ang tubo ng PVC upang umangkop sa tap timer at base ng Arduino. Mag-drill ng mga butas para sa tap timer tap tap at fitting ng hose. Mag-drill ng mga butas sa tubo na sapat na lapad para sa automotive conduit, i-slip ang haba ng 10cm ng tubo sa mga butas at tuksuhin ang mga wire mula sa arduino at i-tap ang timer. Dapat itong isama ang:

Mula sa Arduino

  • Mga wires ng supply ng kuryente at / o isang usb cable mula sa USB port ng arduino.
  • Mga kable ng Soid Moisture (VCC, GND, A0)
  • Dalawang wires mula sa NC & Mga karaniwang terminal ng tornilyo ng Relay

Mula sa tap timer

  • Mga kable ng supply ng kuryente
  • Dalawang wires mula sa tamang dial contact

Hakbang 6: Subukan ang Controller Bago Magdikit

Test Controller Bago Magdikit
Test Controller Bago Magdikit
Test Controller Bago Magdikit
Test Controller Bago Magdikit

Tiyaking gumagana pa rin ang lahat bago i-sealing ang lahat.

Ang mga larawan sa itaas ay nagpapakita ng isang sample na pag-set up sa isang esky kung saan ang probe ng kahalumigmigan sa lupa ay inilagay sa isang palayok at ang tap timer ay nilagyan ng tubig na nagmumula sa isang bote ng softdrink.

Ang isang dripper ay naka-attach sa tap timer.

Ito ay isang mahusay na paraan upang subukan na ang pag-setup ay hindi higit o sa ilalim ng tubig sa halaman.

Ang halimbawang ito ay maaaring patakbuhin hangga't kinakailangan upang i-calibrate ang controller.

Hakbang 7: Mga Pandikit / Hindi tinatagusan ng tubig na Enclosure

Pandikit / Hindi tinatagusan ng tubig na Enclosure
Pandikit / Hindi tinatagusan ng tubig na Enclosure

Gumamit ng PVC Primer at PVC Cement upang ma-secure ang mga end cap at pagkabit.

Gumamit ng caulk / silikon upang punan ang anumang mga puwang sa paligid ng auto conduit at tapikin ang mga fittings ng timer.

Dito ginagamit ang isang takip ng dulo ng tornilyo sa enclosure ng arduino para sa kakayahang mai-access.

Hakbang 8: I-install

I-install
I-install
I-install
I-install
I-install
I-install

I-install sa isang malinaw na araw. Ang mga bahagi at wire ay kailangang manatiling tuyo bago sila selyadong.

Ilagay ang controller sa isang lugar na nakasentro sa pagitan ng kung saan matatagpuan ang gripo ng hardin at kung saan ilalagay ang probe ng lupa.

Pagkasyahin ang tap timer at tiyaking wala itong lakas hanggang sa matapos ang pag-install.

Pagkasyahin ang probe ng lupa.

Ikabit ang mga terminal ng strip sa bawat bahagi at pagkatapos ay itabi ang mga cable ng telepono mula sa mga terminal ng tornilyo ng bawat bahagi na tinitiyak na ang cable ay sakop sa auto conduit. Pagkonekta ng lahat nang magkasama

I-seal ang lahat ng mga terminal at anumang iba pang nakalantad na mga bahagi gamit ang thread seal tape pagkatapos ng electrical tape.

Seal ng anumang maluwag / nakalantad na mga lugar ng split conduit na may thread seal tape pagkatapos ng electrical tape.

Ikonekta ang timer sa isang mapagkukunang 3.2v na kuryente. Alinman sa isang pack ng baterya o sa isang 3.2V DC - AC adapter na tumatakbo sa isang outlet ng mains.

Ikonekta ang Arduino sa isang 6-12V DC na mapagkukunan ng kuryente. Alinman sa isang pack ng baterya o sa isang USB / DC-AC adapter na tumatakbo sa isang outlet ng mains.

Power Up at subukan!

Hakbang 9: Pagsasama ng ThingsBoard - Pagsubaybay at Pag-uulat

Pagsasama ng ThingsBoard - Pagsubaybay at Pag-uulat
Pagsasama ng ThingsBoard - Pagsubaybay at Pag-uulat

Ang halimbawang ito ay gumamit ng Isang Dragino Lora Shield na konektado sa isang Dragino Lora Gateway. Gumagamit man ng setup na ito, isa pang pag-set up ng Lora o anumang iba pang pagkakakonekta ng IOT ang data na nakolekta ng irrigation controller ay maaaring maipasa sa isang IOT platform tulad ng Thingsboard. Bilang default, inililipat ng programa ang sumusunod na data string kung saan ang bawat byte ng character ay hex na naka-encode:

TXXXHXXXSXXXXRX

Kung saan ang T ay sinusundan ng temperatura, ang H ay sinusundan ng kahalumigmigan, ang S ay sinusundan ng antas ng saturation at ang R ay sinusundan ng isang solong digit na nauugnay sa kung anong aksyon na isinagawa nito sa huling agwat ng run. Maaari itong maging alinman sa 0-5 kung saan nangangahulugang ang bawat digit:

0: Ang programa ay nagpapasimula1: Temperatura Sensor fault2: Temperatura ay masyadong mababa upang tumakbo3: Ang lupa kahalumigmigan masyadong tuyo kaya ang tap timer ay aktibo4: Ang lupa kahalumigmigan pinong kaya ang tap timer ay hindi aktibo5: Ang patubig control ay hindi naaktibo

Mayroong maraming mga paraan upang mag-install ng isang kopya ng Thingsboard sa iyong sariling kagamitan o maaari kang mag-set up ng isang libreng account sa aming pag-install ng ThingsBoard dito.

I-set up ang iyong aparato sa Thingsboard

Sundin ang mga tagubiling ito upang magdagdag ng isang bagong aparato sa Thingsboard na tinawag itong "Irrigation Controller".

Itulak ang data ng Telemetry mula sa aparato

Sundin ang mga tagubiling ito upang mag-set up ng isang paraan ng pagtulak ng data ng telemtry mula sa aparato patungong Thingboard sa pamamagitan ng MQTT, HTTP o CoAp.

Sa aming server pinipilit namin ang sumusunod na JSON sa https://thingsboard.meansofproduction.tech/api/v1/… tuwing apat na oras kapag pinapatakbo ang aparato (na may live na data):

Din namin itulak ang mga sumusunod na katangian sa https://thingsboard.meansofproduction.tech/api/v1/… pana-panahon na may data sa kung kailan huling nakita ang node:

Ginagamit ito para sa mga alerto na natiyak kung ang aparato ay huminto sa paglilipat ng data.

Lumikha ng isang Dashboard

Lumikha ng isang dashboard tulad ng inilarawan dito. Kasama sa aming mga widget ang:

Isang simpleng widget ng card na nilikha mula sa huling patlang na telemetry ngRReResult. Isang patayong digital na guage para sa temperatura ng telemetry field Isang talahanayan ng Timeseries na nilikha mula sa huling patlang na telemetry naRReResult na nagpapakita ng mga huling araw na data. Isang pahalang na bar na ipinapakita ang larangan ng telemetry na saturation. Gumagamit ito ng isang pag-andar sa post-processing na data:

ibalik ang 1024-halaga;

At nagtatakda ng isang minimum at maximum na halaga 0-100. Sa ganitong paraan ang antas ng saturation ay maaaring ipahayag bilang isang porsyento. Isang guage upang maipakita ang halumigmig na halaga. Ang tsart ng time series bar na may kasamang temp, halumigmig at resulta ng pagpapatakbo, na nakapangkat sa 5 oras na panahon para sa huling linggo, na pinagsama upang maipakita ang pinakamataas na halaga. Nagbibigay ito sa amin ng isang bar para sa isang apat na oras na kaganapan sa pagpapatakbo. Ang isang data post-procesing function ay ginagamit upang ipahayag ang resulta ng pagtakbo bilang alinman sa 0 o 120 depende sa kung pinatakbo ang tubig o hindi. Nagbibigay iyon ng isang madaling visual na puna upang makita kung gaano kadalas tumatakbo ang tubig sa isang linggo. Isang static na HTML card na nagpapakita ng isang imahe ng hardin.

Mga alerto sa email

Gumamit kami ng mga panuntunan upang mag-set up ng mga alerto sa email para sa tagakontrol ng patubig. Lahat ng gamit ng mga filter ng mensahe at isang Magpadala ng Aksyon na Plugin ng Aksyon Plugin.

Upang magpadala ng isang alerto sa email kung nabigo ang tagakontrol ng patubig na magpadala ng data na ginamit namin ang 'Filter ng Mga Katangian ng Device' na may sumusunod na filter:

typeof cs.secondsSinceLastSeen! == 'undefined' && cs.secondsSinceLastSeen> 21600

Upang magpadala ng isang email kung ang lupa ay naging masyadong tuyo gamitin ang sumusunod na Telemetry filter

typeof saturation! = "undefined" && saturation> 1010

Upang magpadala ng isang batay sa email kung ang lupa ay naging sobrang basa gamit ang sumusunod na Telemetry filter

typeof saturation! = "undefined" && saturation

Inirerekumendang: