Taula de continguts:

Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg: 6 passos
Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg: 6 passos

Vídeo: Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg: 6 passos

Vídeo: Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg: 6 passos
Vídeo: RAMPS 1.4 — специальный загрузочный ЖК-экран на Marlin 1.1.6 2024, De novembre
Anonim
Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg
Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg
Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg
Controlador d’arrencada DOL basat en IOT per a conjunt de bombes de reg

Hola amics

Aquest instructiu tracta sobre com controlar i controlar remotament una bomba de reg configurada per Internet.

Història: a la meva granja només obtinc subministrament elèctric de la xarxa local durant unes 6 hores al dia. Els horaris no són habituals, la disponibilitat d’energia pot ser a primera hora del matí o tard a la nit o fins i tot a mitjanit. Cada vegada que anava a la ubicació del pou de forat per comprovar la disponibilitat de potència, arrencar o aturar el motor era un procés molt dolorós. També vaig haver de garantir que el motor funcionés almenys 2-3 hores cada dia per subministrar aigua adequada al sistema de degoteig. Fa força temps que estava explorant opcions per resoldre aquest problema mitjançant l’acció remota del motor i també coneixia l’estat. Hi ha dispositius disponibles al mercat que engeguen el motor tan aviat com hi hagi una font d’alimentació, però no tenen la funció d’aturar el motor quan vulguem. I tampoc no es pot conèixer l’estat del motor ON / OFF en cap moment del temps. Això sol conduir a un reg excessiu, que provoca pèrdues de fertilitat del sòl i també malbaratament d’electricitat. Finalment, he construït jo mateix una solució on puc engegar i aturar el motor de manera remota des del mòbil / tauleta / PC en qualsevol moment … També puc controlar la disponibilitat de la font d'alimentació de la cinta, així com l'estat del motor (ON / OFF) tot el temps. Espero que ajudi els propietaris agrícoles del país a gestionar els seus sistemes de reg sense la necessitat d’anar al lloc d’inici tot el temps.

Subministraments

Requisits previs:

La ubicació on voleu instal·lar aquest dispositiu ha de tenir disponibilitat d’internet (banda ampla amb internet wifi / mòbil)

Coses que necessiteu:

  1. NodeMCU / ESP12
  2. Relé de dos canals
  3. WCS1700: sensor de corrent
  4. Mòdul de càrrega de bateria TP4056
  5. LD313, condensador - Registre 1000uF - Dos registres de 5k ohm
  6. Qualsevol Smartphone (antic) amb punt d'accés Wi-Fi / Internet.

Com funciona:

És una solució IOT simple basada en el núvol que utilitza NodeMCU / ESP12 i el corredor remot MQTT. NodeMCU funciona com una passarel·la IOT, també controla l’arrencador DOL. Es connecta a un corredor remot MQTT per Internet. Una aplicació que s’executa en un mòbil Android es connecta al corredor a través del qual podem controlar i controlar tot el temps el nostre conjunt de bombes de reg. He utilitzat el corredor MQTT gratuït disponible d’Adafruit IO. Hi ha molts corredors gratuïts disponibles, com ara mosquitto, cloudmqtt, etc. Podeu triar qualsevol corredor sempre que modifiqueu el servidor i el número de port al codi. NodeMCU es connecta a Internet mitjançant WiFi des del punt d'accés mòbil. Podeu utilitzar qualsevol mòbil antic o de baix cost per proporcionar accés wifi a través d'un punt d'accés Wi-Fi o qualsevol altre mitjà per proporcionar internet a través de wifi. El mòbil hauria d'estar connectat al carregador, ja que hauria de ser 24X7.

NodeMCU té una interfície amb dos relés per controlar l’arrencada i l’aturada del funcionament del motor. Per detectar el corrent al motor he utilitzat el sensor de corrent WCS1700. La sortida analògica del sensor s’utilitza per saber que el motor està engegat o apagat. També detecta la disponibilitat d’energia de la xarxa i la publica al corredor perquè puguem conèixer l’estat de la xarxa en qualsevol moment. El dispositiu es subscriu a dos canals per rebre la sol·licitud de motor ON i motor OFF. En enviar valors específics a aquestes fonts podem controlar el motor perquè s’engegui o s’aturi.

Per últim, vaig instal·lar l’aplicació MQTT Dash al meu telèfon Android i la vaig configurar per connectar-me al corredor MQTT i utilitzar els feeds del seu tauler / interfície d’usuari. L'aplicació té molt bones icones amb botons, indicador, commutador, etc. per crear un atractiu tauler de control. Tot i això, podeu utilitzar qualsevol aplicació mòbil domòtica IOT que admeti el protocol mqtt.

Com funciona WCS1700:

El WCS1700 és bàsicament un sensor d’efecte Hall que produirà una tensió de sortida proporcional al camp magnètic creat a mesura que el corrent flueix a través de la bobina. La bobina aquí és una línia d’alimentació que es connectarà al motor. Pot mesurar corrent altern fins a 70 amperes. La tensió de funcionament està entre 3,3 i 12 V. Consulteu la seva fitxa tècnica per obtenir més informació. Com que utilitzo ESP12, he utilitzat la mateixa font d'alimentació de 3,3 V que la tensió de funcionament del WCS1700. Tal com s’especifica a la fitxa tècnica a 3,3 V, el dispositiu hauria de produir una tensió diferencial d’aproximadament 32 a 38 mV per amplificador de corrent a través de la bobina. Però pot variar en funció de la mida de la bobina / bretxa i de les variacions del dispositiu. Per tant, el vaig haver de calibrar provant-lo amb Ampere Meter. No estic content de la precisió del dispositiu, però és prou bo per decidir l'estat del motor com a ON / OFF. El pin de sortida de WCS1700 es connecta a A0 de ESP12. Quan no hi hagi corrent, l'ESP12 hauria de llegir el valor al voltant de 556. A mesura que l'augment de corrent a la bobina, la tensió pot ser de qualsevol costat en funció de com el cable passi pel sensor. Al codi he pres la diferència dels valors com a valor absolut de (x - 556). En dividir el resultat amb 15, vaig obtenir un corrent aproximat que circula pel sensor. Haureu d’experimentar-ho per obtenir el número adequat. Qualsevol mesura de corrent realitzada pel dispositiu per sobre de 5 amperes la considero com motor engegat i per sota de 5 amperes ja que el motor està en OFF. Podeu utilitzar el número adequat per al vostre dispositiu experimentant. Heu de canviar WCS1700_CONST i MIN_CURRENT al codi en conseqüència.

Pas 1: construcció del dispositiu

Construcció de dispositius
Construcció de dispositius
Construcció de dispositius
Construcció de dispositius

El diagrama anterior proporciona detalls complets sobre com connectar tots els components.

Font d'alimentació: he utilitzat TP4056 per carregar les bateries i LM313 per regular la sortida de la bateria de 3,7 V a 4,2 V a 3,3 V per alimentar NodeMCU. S'ha utilitzat un condensador de 1000mF entre Vin i terra de LM313 per obtenir un subministrament estable de 3,3V. Podeu utilitzar un carregador mòbil USB normal per alimentar el TP4056. Té un circuit de protecció de la bateria per protegir la bateria de la sobrecàrrega.

Detecció de la font d’alimentació de la xarxa: el divisor de tensió de 5 k ohms reduirà 5 V a 2,5 V. El pin D5 de NodeMCU detectarà la tensió.

El pin de sortida del WCS1700 està connectat a A0 per llegir la tensió analògica del sensor. La línia elèctrica de xarxa ha de passar pel forat per mesurar el corrent. He utilitzat el condensador 0,01 uF per obtenir el formulari de lectura estable WCS1700.

D1 i D2 de NodeMCU per connectar-se a IN0 i IN1 dels pins d'entrada del relé.

Pas 2: connexions d’inici DOL

Connexions d’inici DOL
Connexions d’inici DOL
Connexions d’inici DOL
Connexions d’inici DOL

Vaig ajustar el circuit de control de l’arrencador DOL per introduir un altre conjunt d’interruptors START i STOP. Aquest canvi no afectarà l'operació d'arrencada / aturada manual i continuen funcionant tal qual.

Precaució !!!! Com que l’arrencador DOL és un dispositiu d’alta tensió, assegureu-vos que l’interruptor principal estigui apagat abans d’obrir la caixa. El contacte directe amb filferro viu podria ser perillós. Si no esteu segur, ajudeu l’electricista per fer les connexions

He utilitzat un mòdul de relé de 5 canals de 2 canals com a interruptor START i STOP. Aquests relés estaran controlats per ESP12.

El relé - 0 funcionarà com a interruptor START - cablejat com a NO (normalment obert).

El relé-1 funcionarà com a commutador STOP: cablejat com NC (normalment tancat). L’arrencador ja tindrà un cable que es connecta des del contactor superior al NVC. L’haureu d’eliminar i substituir per cables de relé -1 tal i com es mostra.

Assegureu-vos que les connexions entre l’arrencador i els mòduls de relés estiguin completament aïllats per seguretat. He programat ESP per mantenir els dos relés durant 2 segons per emular la pressió del botó START / STOP.

Pas 3: creeu un compte amb Adafruit IO (io.adafruit.com)

He utilitzat el corredor Adafruit io mqtt, que és lliure d’utilitzar amb poques limitacions, però està bé per al nostre ús. Prefereixo això perquè també l’he utilitzat en altres projectes i he trobat bastant fiable i també té moltes altres funcions com Dashboard amb una bona interfície gràfica d’usuari i fins i tot podem utilitzar disparadors. Per utilitzar Adafruit io, heu de crear un compte i anotar el nom d’usuari i la clau activa.

Pas 4: Creeu i instal·leu el programari

El codi complet està disponible a l'esbós. Cal obrir-lo a Arduino IDE i fer alguns canvis abans de compilar i penjar el firmware. Trieu el tipus de placa com a NodeMCU 1.0. La instal·lació de l'IDE i les biblioteques relacionades no pertanyen a aquesta documentació.

Modifiqueu les línies següents del codi com a guaret.

#define WLAN_SSID "xxx" // El vostre SSID WiFi per a punt d'accés mòbil

#define WLAN_PASS "……" //

/ ************************* Configuració d'Adafruit.io ******************** ************* /

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // use 8883 for SSL

#define AIO_USERNAME "xyz" // El vostre nom d'usuari del compte adafruit

#define AIO_KEY "abcd …" // la vostra clau activa …

Quant als feeds MQTT: el dispositiu i el client (aplicació mòbil) intercanvien informació mitjançant feeds de missatges mitjançant un model secundari de pub a través del broker MQTT. Qualsevol client o dispositiu per rebre un missatge, s’ha de subscriure a un feed predefinit i ha d’utilitzar el mètode de publicació per enviar un missatge a un feed. Per al nostre projecte necessitem aproximadament 5 feeds. A continuació es mostra l’explicació de cadascun dels feeds tal i com es veu al codi i el seu funcionament.

Estat de la xarxa: la disponibilitat d’alimentació de la xarxa es publica al feed /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / grid");

0 indica que la font d'alimentació no està disponible i 1 per a la font d'alimentació està disponible.

Estat del motor: el dispositiu publicarà l’estat del motor al feed … / feeds / grid.

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

Valor de 0 per a OFF i 1 per a ON

Botó Motor ON: aquest canal s'utilitza per rebre la sol·licitud d'engegada del motor. El dispositiu subscriurà el feed per rebre la sol·licitud d’arrencada del motor amb un valor = 1 i utilitzarà el mateix feed per publicar el missatge de confirmació com 0. D’aquesta manera, podem confirmar que el dispositiu ha rebut el missatge de sol·licitud d’inici.

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

Botó OFF del motor:

De manera similar a la sol·licitud d’inici, aquest feed s’utilitza per rebre la sol·licitud d’aturada del motor. El dispositiu es subscriurà al feed per rebre la sol·licitud d’aturada amb el valor = 1 i utilitzarà el mateix feed per publicar el missatge de confirmació com a 0.

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

Connexió:

Aquest és un feed especial amb l'opció "última voluntat" activada. Quan el dispositiu funcioni bé a cada interval fixat, publicarà connection = 1 per dir-li a l'usuari que tot està bé. En cas que el sistema hagi caigut o es perdi la connexió, el dispositiu no podrà comunicar-se amb l'agent. En aquests casos, el propi agent MQTT publicarà al feed com a connexió = 0 per fer saber a l'usuari que alguna cosa ha fallat i que el dispositiu no es pot accedir a Internet. Hem d’anar físicament i comprovar el dispositiu. El codi és molt senzill. Consulteu la documentació MQTT per obtenir més detalls sobre el funcionament de "Darrer testament".

if (itr <= 0)

{

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

itr = CON_LIVE_ITR;

}

La resta del codi s’explica per si mateix i no cal fer cap modificació. No dubteu a comentar per si necessiteu més informació.

Pas 5: instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil

Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
Instal·leu i configureu l'aplicació MQTT Dash al vostre mòbil
  1. Instal·leu MQTT Dash al vostre telèfon Android i obriu l'aplicació
  2. Feu clic a la icona + a l'extrem superior dret per afegir un dispositiu.
  3. Com es mostra a la primera imatge superior, doneu un nom al vostre dispositiu i digueu "MyFarm-IPSet". El camp d’adreça com a io.adafruit.com i el port com a 1883, el nom d’usuari hauria de ser el vostre nom d’usuari d’adafruit i la contrasenya hauria de ser la vostra clau activa d’adafruit. Deixeu la resta de camps tal qual. Per últim, feu clic a Desa.
  4. Heu creat el dispositiu. Ara feu-hi clic per afegir-hi un tauler.
  5. Feu clic a + i seleccioneu tipus com a commutador / botó. Com es mostra a sobre, introduïu sys al camp del nom. i introduïu el nom del feed al camp del tema. tots els feeds haurien de començar amb el nom d'usuari / feeds /. per a això / feeds / connection. Assegureu-vos que Habilitar publicació està desactivat. En fer clic a la icona per mostrar, podeu triar el tipus d’icona que voleu que es mostri al tauler. Per al valor 1, seleccioneu un dels colors (per exemple, verd) i per al valor 0, seleccioneu el color com a gris o vermell. Finalment, feu clic a Desa a l'extrem superior dret. De la mateixa manera, creeu dues icones més una per a Grid amb nom d'usuari / feeds / grid com a tema i Motor amb nom d'usuari / feeds / motor. Assegureu-vos que Habilitar publicació està desactivat.
  6. Per últim, creeu el botó Motor ON. Torna a ser el mateix que el tipus que canvia / botó. El tema hauria de ser / feeds / motor_on i assegurar-se que Enable Publish està activat aquesta vegada i QOS = 1. De la mateixa manera, creeu un altre botó per a Motor OFF. El tema hauria de ser / feeeds / motor_off.

Pas 6: últim pas:-) Proves i afinació final

  1. Per estar segur, primer heu de provar el dispositiu per a les seves operacions START i STOP abans de connectar els relés a l’arrencador DOL. Activeu Hotspot al mòbil amb Internet activat. Connecteu el portàtil amb entorn de desenvolupament directament al port USB NodeMCU amb un altre carregador connectat al TP4056 alhora. Si el dispositiu està connectat correctament a Internet, hauríeu de veure 1 dispositiu connectat a un punt d'accés Wi-Fi al telèfon intel·ligent.
  2. A l’altre telèfon intel·ligent on heu instal·lat MQTT Dash, obriu el tauler de l’aplicació. Hauríeu de veure que la icona NET en verd i la icona de quadrícula també en verd amb els seus valors com 1. La icona del motor hauria de mostrar-se com a motor apagat amb el valor 0.
  3. En fer clic al botó Motor ON, el relé d’inici hauria de fer dos sons de clic a un interval de dos segons. De la mateixa manera, el botó Motor OFF també.
  4. Per seguretat, ara apagueu l’alimentació principal de l’arrencador DOL i connecteu els relés a l’arrencador DOL tal com es mostra a l’altre pas 2. Assegureu-vos que el motor està apagat. Premeu el botó de restabliment de NodeMCU. Des de la sortida del monitor sèrie, podeu veure instruccions de depuració que imprimeixen els valors del sensor WC1700, delta i el corrent calculat a la bobina. Amb el motor en estat apagat i "#define WCS1700_CONST 15", el maxCur ha de ser inferior a 2 de manera constant. Si mostra més de 2, proveu amb valors més alts de WCS1700_CONST. Cada vegada haurà de recompilar el codi i carregar el firmware.
  5. Ara engegueu el motor i cerqueu de nou les lectures actuals. Deixeu el motor engegat durant uns 10-15 minuts i anoteu la lectura de corrent estable. El corrent pot variar aproximadament entre 10 i 20 amperes i no cal que sigui precís.
  6. Torneu al codi i configureu "#define MIN_CURRENT X. On X sigui el 40 per cent del corrent màxim aproximat al valor numèric. En el meu cas, he definit MIN_CURRENT a 5. Compileu i torneu a carregar el firmware a NodeMCU.
  7. Traieu el cable USB de NodeMCU. Apagueu i activeu el dispositiu amb el carregador USB connectat al TP4056. Si feu clic al botó Motor ON de l'aplicació mòbil, el motor s'hauria d'engegar. Un cop el motor estigui en estat, el motor hauria de reflectir-se al tauler de l'aplicació com a ON. Si feu clic al botó d’aturada, el motor s’ha d’aturar.

A gaudir !!!!

Recomanat: