Talaan ng mga Nilalaman:

IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset: 6 na Hakbang
IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset: 6 na Hakbang

Video: IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset: 6 na Hakbang

Video: IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset: 6 na Hakbang
Video: float switch connection 2024, Nobyembre
Anonim
IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset
IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset
IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset
IOT Batay sa DOL Starter Controller para sa Irrigation Pumpset

Kumusta Mga Kaibigan

Ang itinuturo na ito ay tungkol sa kung paano malayuang subaybayan at kontrolin ang isang irrigation pump na nakatakda sa internet.

Kuwento: Sa aking sakahan nakakakuha ako ng suplay ng kuryente mula sa lokal na grid para lamang sa halos 6 na oras sa isang araw. Ang mga oras ay hindi regular, ang pagkakaroon ng lakas ay maaaring maagang umaga o huli na sa gabi o kahit hatinggabi. Sa tuwing pupunta sa lokasyon ng maayos na lugar upang suriin ang kakayahang magamit, simulan o ihinto ang motor ay napakasakit na proseso. Gayundin kailangan kong tiyakin na tumatakbo ang motor ng hindi bababa sa 2-3 oras araw-araw upang makapagtustos ng sapat na tubig para sa drip system. Medyo matagal akong naghahanap ng mga pagpipilian upang malutas ang problemang ito sa pamamagitan ng malayuan pagpapatakbo ng motor at alam din ang katayuan. Mayroong mga aparato na magagamit sa merkado na magsisimula sa motor sa lalong madaling magkaroon ng isang supply ng kuryente, ngunit wala silang tampok na ihinto ang motor tuwing nais namin. At gayun din walang paraan upang malaman ang katayuan ng motor na ON / OFF sa anumang punto ng oras. Karaniwan itong humahantong sa labis na patubig, na humahantong sa pagkawala ng pagkamayabong sa lupa at pag-aaksaya din ng kuryente. Sa wakas ay bumuo ako ng isang solusyon sa aking sarili kung saan maaari kong simulan at ihinto ang motor mula sa mobile / tablet / PC ANUMANG PANAHON SAAN MAN SAAN … !!. Maaari ko ring subaybayan ang pagkakaroon ng supply ng kuryente mula sa gird pati na rin ang katayuan ng motor (ON / OFF) sa lahat ng oras. Inaasahan kong makakatulong ito sa mga may-ari ng sakahan sa panig ng bansa upang pangasiwaan ang kanilang mga sistema ng patubig nang hindi na kinakailangang pumunta sa lokasyon ng starter sa lahat ng oras.

Mga gamit

Mga Pangangailangan:

Ang lokasyon kung saan mo nais na mai-install ang aparatong ito ay dapat magkaroon ng pagkakaroon ng internet (broadband na may wifi / mobile internet)

Mga bagay na kailangan mo:

  1. NodeMCU / ESP12
  2. Dalawang channel relay
  3. WCS1700 - Kasalukuyang sensor
  4. TP4056 module ng pagsingil ng baterya
  5. LD313, Capacitor - 1000uF Rehistro - Dalawang rehistro ng 5k ohm
  6. Anumang (Lumang) Smartphone na may hotspot / internet.

Paano ito gumagana:

Ito ay isang simpleng cloud based IOT solution gamit ang NodeMCU / ESP12 at remote MQTT broker. Gumagana ang NodeMCU bilang isang IOT gateway, kinokontrol din ang starter ng DOL. Kumokonekta ito sa remote na MQTT broker sa internet. Ang isang app na tumatakbo sa isang Android mobile ay kumokonekta sa broker kung saan maaari naming subaybayan at kontrolin ang aming irrigation pump na itinakda sa lahat ng oras. Gumamit ako ng libreng magagamit na MQTT broker mula sa Adafruit IO. Mayroong maraming mga libreng broker na magagamit tulad ng mosquitto, cloudmqtt atbp Maaari kang pumili ng anumang mga broker na ibinigay binago mo ang server at ang numero ng port sa code. Ang NodeMCU ay kumokonekta sa internet gamit ang WiFi mula sa mobile hotspot. Maaaring gumamit ang Yon ng anumang luma o murang gastos sa mobile upang magbigay ng access sa wifi sa pamamagitan ng hotspot o anumang iba pang paraan ng pagbibigay ng internet sa pamamagitan ng wifi. Ang mobile ay dapat na konektado sa charger tulad ng dapat sa 24X7.

Ang NodeMCU ay interfaced sa dalawang relay upang makontrol ang pagsisimula at itigil ang pagpapatakbo ng motor. Upang maunawaan ang kasalukuyang sa motor na ginamit ko ang WCS1700 kasalukuyang sensor. Ang analog output mula sa sensor ay ginagamit upang malaman na ang motor ay ON o OFF. Nararamdaman din nito ang kakayahang magamit mula sa grid at nai-publish ito sa broker upang malaman namin ang katayuan ng grid anumang oras. Nag-subscribe ang aparato para sa dalawang feed upang matanggap ang kahilingan para sa motor na ON at motor OFF. Sa pamamagitan ng pagpapadala ng mga tukoy na halaga sa mga feed na ito maaari naming makontrol ang motor upang MAGSIMULA o MAGHIGIL.

Panghuli na-install ko ang MQTT Dash app sa aking android phone at isinaayos ito upang kumonekta sa MQTT broker at gamitin ang mga feed sa dashboard / gui nito. Ang app ay may napakahusay na mga icon na may mga pindutan, gauge, switch atbp upang lumikha ng kaakit-akit na dashboard. Gayunpaman maaari mong gamitin ang anumang IOT home automation mobile app na sumusuporta sa mqtt protocol.

Paano gumagana ang WCS1700:

Ang WCS1700 ay karaniwang isang sensor ng Hall effect na makakapagdulot ng output voltage na proporsyonado sa magnetic field na nilikha habang kasalukuyang dumadaloy sa likid. Ang coil dito ay isang linya ng supply ng kuryente na makakonekta sa motor. Masusukat nito ang kasalukuyang AC hanggang sa 70 Amps. Ang boltahe sa pagpapatakbo ay nasa pagitan ng 3.3 hanggang 12 V. Sumangguni sa sheet ng data nito para sa higit pang mga detalye. Habang gumagamit ako ng ESP12 Gumamit ako ng parehong supply ng kuryente na 3.3V bilang operating boltahe para sa WCS1700. Tulad ng tinukoy sa data sheet sa 3.3 V ang aparato ay dapat gumawa ng isang kaugalian boltahe ng tungkol sa 32 hanggang 38 mV bawat amp ng kasalukuyang sa pamamagitan ng coil. Ngunit maaari itong mag-iba batay sa laki ng coil / air gap at mga pagkakaiba-iba sa aparato. Samakatuwid kailangan kong i-calibrate ito sa pamamagitan ng pagsubok ito sa Ampere Meter. Hindi ako nasisiyahan tungkol sa kawastuhan ng aparato ngunit sapat na mabuti upang magpasya sa katayuan ng Motor bilang ON / OFF. Ang output pin ng WCS1700 ay kumonekta sa A0 ng ESP12. Kapag walang kasalukuyang dapat basahin ng ESP12 ang halaga sa paligid ng 556. Tulad ng kasalukuyang pagtaas sa likid ang boltahe ay maaaring sa alinmang panig batay sa kung paano dumaan ang cable sa sensor. Sa code kinuha ko ang pagkakaiba ng mga halaga bilang ganap na halaga ng (x - 556). Sa pamamagitan ng paghahati ng resulta sa 15 nakuha ko ang tinatayang kasalukuyang dumadaloy sa pamamagitan ng sensor. Kailangan mong eksperimento ito upang makuha ang tamang numero para sa iyo. Ang anumang kasalukuyang pagsukat ng aparato sa itaas ng 5 Amps Isinasaalang-alang ko bilang motor na ON at sa ibaba 5 Amp bilang motor ay nasa OFF. Maaari mong gamitin ang tamang numero para sa iyong aparato sa pamamagitan ng pag-eksperimento. Kailangan mong baguhin ang WCS1700_CONST at MIN_CURRENT sa code nang naaayon.

Hakbang 1: Paggawa ng Device

Pagtatayo ng Device
Pagtatayo ng Device
Pagtatayo ng Device
Pagtatayo ng Device

Ang diagram sa itaas ay nagbibigay ng isang kumpletong detalye kung paano i-wire ang lahat ng mga bahagi.

Suplay ng kuryente: Gumamit ako ng TP4056 upang singilin ang mga baterya at LM313 upang makontrol ang 3.7V - 4.2V ng output ng baterya sa 3.3 V sa power NodeMCU. Ginamit na 1000mF capacitor sa pagitan ng Vin at ground ng LM313 upang makakuha ng matatag na supply ng 3.3V. Maaari kang gumamit ng regular na USB mobile charger upang mapatakbo ang TP4056. Mayroon itong circuit ng proteksyon ng baterya upang maprotektahan ang baterya mula sa labis na pagsingil.

Ang sensing ng supply ng Grid Power: Ang 5k ohm voltage divider ay magbabawas ng 5 V hanggang 2.5 V. Ang Pin D5 ng NodeMCU ay madarama ang boltahe.

Ang output pin ng WCS1700 ay konektado sa A0 upang mabasa ang analog boltahe mula sa sensor. Ang linya ng Grid Power ay kailangang dumaan sa butas upang masukat ang kasalukuyang. Gumamit ako ng 0.01 uF capacitor makuha ang matatag na form sa pagbabasa ng WCS1700.

Ang D1 at D2 ng NodeMCU upang maiugnay sa IN0 at IN1 ng mga relo input pin.

Hakbang 2: Mga Koneksyon ng Starter ng DOL

Mga Koneksyon ng DOL Starter
Mga Koneksyon ng DOL Starter
Mga Koneksyon ng DOL Starter
Mga Koneksyon ng DOL Starter

Sinabunutan ko ang control circuit ng starter ng DOL upang ipakilala ang isa pang hanay ng pagsisimula ng Start at STOP switch. Ang pagbabago na ito ay hindi makakaapekto sa manu-manong operasyon ng pagsisimula / paghinto at patuloy silang gumana tulad ng dati.

Ingat !!!! Tulad ng DOL starter ay isang aparatong Mataas na Boltahe na matiyak na ang pangunahing switch ay naka-off bago buksan ang kahon. Mapanganib ang direktang pakikipag-ugnay sa live wire. Kung hindi ka kumpiyansa kumuha ng tulong sa elektrisista upang makakonekta

Gumamit ako ng 2 channel 5 V relay module bilang Start at STOP switch. Ang mga relay na ito ay makokontrol ng ESP12.

Ang relay - 0 ay gagana bilang switch ng SIMULA - wired bilang HINDI (Karaniwan Bukas).

Ang relay-1 ay gagana bilang switch ng STOP - wired bilang NC (Normally Closed). Ang starter ay magkakaroon na ng isang kawad na kumokonekta mula sa tuktok na contactor sa NVC. Kakailanganin mong alisin ito at palitan ng relay -1 na mga wire tulad ng ipinakita.

Tiyaking ang mga koneksyon sa pagitan ng starter at ng Relay module ay ganap na insulated para sa kaligtasan. Pinrograma ko ang ESP upang hawakan ang parehong mga relay sa loob ng 2 segundo upang tularan ang push ng Start / STOP button.

Hakbang 3: Lumikha ng isang Account Sa Adafruit IO (io.adafruit.com)

Gumamit ako ng Adafruit io mqtt broker na malayang magamit nang may ilang mga limitasyon ngunit OK lang para sa aming paggamit. Mas gusto ko ito dahil ginamit ko rin ito sa iba pang mga proyekto at nahanap kong maaasahan at mayroon ding maraming iba pang tampok tulad ng Dashboard na may magandang GUI at kahit na maaari naming gamitin ang mga pag-trigger. Upang magamit ang Adafruit io kailangan mong lumikha ng isang account at tandaan ang Username at Active Key.

Hakbang 4: Buuin at I-install ang Software

Ang kumpletong code ay magagamit sa sketch. Kailangan mong buksan ito sa Arduino IDE at gumawa ng ilang pagbabago bago i-compile at i-upload ang firmware. Piliin ang uri ng board bilang NodeMCU 1.0. Ang pag-install ng IDE at mga kaugnay na aklatan ay wala sa saklaw ng dokumentasyong ito.

Baguhin ang mga sumusunod na linya sa code bilang mga fallows.

#define WLAN_SSID "xxx" // Ang iyong mobile Hotspot WiFi SSID

# tukuyin ang WLAN_PASS "……" //

/ ***** ************* /

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // use 8883 for SSL

#define AIO_USERNAME "xyz" // Ang pangalan ng gumagamit ng iyong adafruit account

#define AIO_KEY "abcd ……" // iyong Aktibo key …

Tungkol sa MQTT Feeds: Ang aparato at client (mobile app) ay nagpapalitan ng impormasyon sa pamamagitan ng mga feed ng mensahe gamit ang modelo ng sub sa pamamagitan ng MQTT broker. Ang anumang kliyente o aparato upang makatanggap ng isang mensahe, kailangang mag-subscribe para sa isang paunang natukoy na feed at kailangang gumamit ng pamamaraang mag-publish upang magpadala ng isang mensahe sa isang feed. Para sa aming proyekto nangangailangan kami ng tungkol sa 5 feed. Nasa ibaba ang paliwanag sa bawat feed tulad ng nakikita mo sa code at kung paano ito gumagana.

Katayuan ng Grid: Ang pagkakaroon ng supply ng kuryente mula sa grid ay nai-publish sa feed /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / grid");

Ipinapahiwatig ng 0 na hindi magagamit ang power supply at 1 para sa power supply ay magagamit.

Katayuan ng Motor: I-publish ng aparato ang katayuan ng motor sa feed… / feeds / grid.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / motor")

Halaga ng 0 para sa OFF at 1 para sa ON

Button ng Motor ON: Ang feed na ito ay ginagamit upang matanggap ang kahilingan sa pagsisimula ng motor. Mag-subscribe ang aparato para sa feed na makatanggap ng kahilingan sa pagsisimula ng motor na may halaga = 1 at gagamit ng parehong feed upang mai-publish ang kilalang mensahe bilang 0. Sa paraang iyon maikumpirma namin ang mensahe ng kahilingan sa pagsisimula na talagang natanggap ng aparato.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_on");

Button na OFF sa Motor:

Katulad ng kahilingan sa Simula ang feed na ito ay ginagamit upang matanggap ang kahilingan sa paghinto ng motor. Mag-subscribe ang aparato para sa feed na makatanggap ng humiling ng paghinto na may halagang = 1 at gagamit ng parehong feed upang mai-publish ang kilalang mensahe bilang 0.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_off");

Koneksyon:

Ito ay isang espesyal na feed na may pinagana ang pagpipiliang "huling kalooban." Kapag ang aparato ay gumagana ng maayos sa bawat nakapirming agwat maglalabas ito ng koneksyon = 1 upang sabihin sa gumagamit ang lahat ay mabuti. Kung sakaling bumaba ang system o nawala ang koneksyon kung gayon ang aparato ay hindi magagawang makipag-usap sa broker. Sa mga ganitong kaso ang MQTT broker mismo ang maglalathala sa feed bilang koneksyon = 0 upang ipaalam sa gumagamit na may mali at hindi maaabot ang aparato sa internet. Kailangan naming pisikal na pumunta at suriin ang aparato. Napakadali ng code. Sumangguni sa dokumentasyon ng MQTT para sa higit pang mga detalye sa kung paano gumagana ang "Huling Kalooban."

kung (it <= 0)

{

mqtt.publish (AIO_USERNAME "/ feeds / connection", "1", 1);

itr = CON_LIVE_ITR;

}

Ang natitirang code ay nagpapaliwanag sa sarili at hindi kinakailangan ng mga pagbabago. Huwag mag-atubiling magbigay ng puna kung sakaling kailangan mo ng karagdagang impormasyon.

Hakbang 5: I-install at I-configure ang MQTT Dash APP sa Iyong Mobile

I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
I-install at I-configure ang MQTT Dash APP sa Iyong Mobile
  1. I-install ang MQTT Dash sa iyong android phone at buksan ang app
  2. Mag-click sa icon na + sa kanang sulok sa itaas upang magdagdag ng isang aparato.
  3. Tulad ng ipinakita sa unang imahe sa itaas magbigay ng ilang pangalan sa iyong aparato na sabihin ang "MyFarm-IPSet". Ang patlang ng address bilang io.adafruit.com at port bilang 1883, ang pangalan ng gumagamit ay dapat na iyong username ng username at password ay dapat na iyong Aktibong Susi mula sa adafruit. Iwanan ang natitirang mga bukid tulad ng dati. Panghuli mag-click sa save.
  4. Nilikha mo ang iyong aparato. Ngayon mag-click dito upang magdagdag ng dashboard dito.
  5. Mag-click sa + at piliin ang uri bilang switch / button. Tulad ng ipinakita sa itaas ipasok ang mga sys sa patlang ng pangalan. at ipasok ang pangalan ng feed sa patlang ng paksa. ang bawat feed ay dapat magsimula sa username / feeds /. para dito kami / feed / koneksyon. Tiyaking naka-disable ang Paganahin ang Pag-publish. Sa pamamagitan ng pag-click sa icon upang maipakita maaari kang pumili ng uri ng icon na gusto mo sa dashboard upang magmukhang hitsura. Para sa halagang 1 pumili ng isa sa mga kulay (sabihin na berde) at para sa halagang 0 piliin ang kulay bilang kulay-abo o pula. Panghuli mag-click sa i-save sa kanang sulok sa itaas. Gayundin lumikha ng dalawa pang mga icon ng isa para sa Grid na may username / feeds / grid bilang paksa at Motor na may username / feeds / motor. Tiyaking naka-disable ang Paganahin ang Pag-publish.
  6. Panghuli lumikha ng pindutan ng Motor ON. Ito muli ang kapareho ng uri bilang switch / button. Ang paksa ay dapat na / feed / motor_on at tiyaking pinagana ang Paganahin ang I-publish sa oras na ito at QOS = 1. Gayundin lumikha ng isa pang pindutan para sa Motor OFF. Ang paksa ay dapat na / feeeds / motor_off.

Hakbang 6: Huling Hakbang:-) Pagsubok at Finetuning

  1. Upang maging ligtas kailangan mong subukan muna ang aparato para sa mga pagpapatakbo ng SIMULA at ITIGIL bago kumonekta sa mga relay sa starter ng DOL. Paganahin ang Hotspot sa mobile na pinagana ang internet. Ikonekta ang laptop na may kapaligiran sa pag-unlad nang direkta sa NodeMCU USB port sa isa pang charger na konektado sa TP4056 nang sabay. Kung matagumpay na nakakonekta ang aparato sa internet dapat mong makita ang 1 aparato na konektado sa hotspot sa smartphone.
  2. Sa iba pang smartphone kung saan mo na-install ang MQTT Dash buksan ang dashboard ng app. Dapat mong makita na ang icon ng NET na berde at Grid na icon na berde din kasama ang kanilang mga halaga bilang 1. Dapat ipakita ang icon ng motor bilang motor na may halagang 0.
  3. Habang nag-click ka sa pindutan ng Motor ON ang pagsisimula ng relay ay dapat gumawa ng dalawang tunog ng pag-click sa isang agwat ng dalawang segundo. Katulad din ng Motor OFF button din.
  4. Para sa kaligtasan ngayon patayin ang pangunahing supply sa DOL starter at ikonekta ang mga relay sa starter ng DOL tulad ng ipinakita sa itaas na hakbang-2. Tiyaking patay ang motor. Itulak ang pindutan ng pag-reset sa NodeMCU. Mula sa output ng serial monitor, maaari mong makita ang mga pahayag ng pag-debug na nag-print ng mga halaga mula sa WC1700 sensor, delta at ang kinakalkula na kasalukuyang sa coil. Sa motor na naka-off estado at "#define WCS1700_CONST 15" ang maxCur ay dapat na mas mababa sa 2 nang tuloy-tuloy. Kung nagpapakita ito ng higit sa 2 pagkatapos subukang may mas mataas na mga halagang WCS1700_CONST. Sa tuwing kakailanganin mong muling buuin ang code at i-load ang firmware.
  5. Ngayon ilipat ang motor at hanapin muli ang kasalukuyang mga pagbabasa. Iwanan ang motor na ON para sa mga 10 -15 minuto at tandaan ang matatag na kasalukuyang pagbabasa. Ang kasalukuyang ay maaaring mag-iba sa pagitan ng 10 hanggang 20 Amps halos at hindi kailangang maging tumpak.
  6. Bumalik sa code at itakda ang "#define MIN_CURRENT X. Kung saan ang X ay 40 porsyento ng kasalukuyang kasalukuyang tinatayang sa numerong halaga. Sa aking kaso itinakda ko ang MIN_CURRENT sa 5. I-compile at i-reload muli ang firmware sa NodeMCU.
  7. Alisin ang USB cable mula sa NodeMCU. I-OFF at Swtich ON ang aparato na may USB charger na konektado sa TP4056. Ang pag-click sa pindutan ng Motor ON sa mobile app ay dapat na simulan ang motor. Kapag ang motor ay nasa katayuan ng motor ay dapat na sumasalamin sa dashboard ng app bilang ON. Ang pag-click sa pindutan ng paghinto ay dapat na tumigil sa motor.

Enjoy !!!!

Inirerekumendang: