You are on page 1of 56

Treball Final de Grau

Hort urbà vertical


robotitzat

Grau en Enginyeria TIC


Curs 21/22

Autor: Josep Maria Recolons Lopez-Pinto

Director: Pere Palà Schönwälder

Data: 08/07/2022

Localitat: Manresa
Agraïments a mons pares i ma novia pel seu suport.
Hort urbà robotitzat Josep Maria Recolons

RESUM DEL PROJECTE

L’agricultura urbana i els espais verds privats es presenten com a possible solució per a la
mitigació dels efectes del canvi climàtic, així com a mesura defensada per l’OMS per a la
millora de la qualitat de vida als centres urbans, entre molts altres avantatges. Davant
d’aquest fet, sorgeixen iniciatives com la de FarmBot per a apropar l’agricultura a les llars de
les ciutats amb l’ajuda de robots que en faciliten les tasques. Tanmateix, el disseny i
funcionalitats d’aquests robots agricultors encara està lluny de la idoneïtat, i per aquest motiu
aquest projecte neix amb l’objectiu de millorar-los per a apropar aquestes noves tendències
al màxim de cases possibles. Així doncs, en aquest projecte s’ha realitzat end-to-end un hort
robotitzat, duent dut a terme tot el procés des del disseny i muntatge de l’estructura de l’hort i
del robot, incloent la mecànica i electrònica del segon, i la programació del robot i la del
servidor, incloent la interfície d’usuari amb la qual es comuniquen els usuaris finals.
Addicionalment, durant tot aquest procés s’han anat proposant millores al projecte en
qüestió i s’ha tingut en compte la reducció de costos per a una futura escalació del projecte.

Resum del projecte (en català o castellà) Pàgina 1


Títol abreujat del projecte Nom de l’autor

RESUM DEL PROJECTE (abstract)

Urban agriculture and private green spaces are presented as a possible solution for
mitigating the effects of climate change, as well as a measure advocated by the WHO for
improving the quality of life in urban centers, among many others advantages. Faced with
this, there are initiatives such as FarmBot to bring agriculture to the homes of cities with the
help of robots that facilitate their tasks. However, the design and functionality of these
farming robots is still far from suitable, and for this reason this project aims to improve them
to bring these new trends as close as possible to all homes. Thus, in this project has been
done end-to-end a robotic garden, carried out the whole process from the design and
assembly of the structure of the garden and the robot, the mechanics and electronics of the
second, and the robot and server codes, including the user interface with which end users
communicate. In addition, throughout this process, improvements have been proposed to the
project and the reduction of costs has been taken into account for a future escalation of the
project.

Resum del projecte (en anglès) Pàgina 1


Hort urbà robotitzat Josep Maria Recolons

ÍNDEX

Introducció 1

Antecedents 3

Desenvolupament del projecte 5


3.1 Estructura de l’hort 6
3.2 Muntatge robot 9
3.2.1 Mecànica del robot 9
3.2.2 Electrònica del robot 18
3.3 Software 28
3.3.1 Software del robot 30
3.3.2 Software del servidor 34

4. Estudi econòmic 38

5. Conclusions 40

6. Bibliografia 41

7. Annexos 43
Codi de l’ESP32 43
Codi del servidor 43
Fotografies i vídeos prototip 43

Índex Pàgina 1
Hort urbà robotitzat Josep Maria Recolons

ÍNDEX DE FIGURES

- Figura 1: Calendari planificació inicial i dedicació final


- Figura 2: Estructura de l’hort
- Figura 3: Vistes frontal i superior dels eixos vertical i horitzontal del robot.
- Figura 4: Visió superior de l’estructura de l’hort robotitzat
- Figura 5: Visió superior de l’estructura de l’hort robotitzat amb pilars
- Figura 6: Mecànica general de l’hort
- Figura 7: Actuador lineal horitzontal
- Figura 8: Actuador lineal vertical
- Figura 9: Moments raïls
- Figura 10: Rodaments del carro
- Figura 11: Ajuntar els actuadors horitzontal i vertical
- Figura 12: Electrònica soldada en plaques de prototipatge
- Figura 13: Esquema del circuit elèctric
- Figura 14: Posicions de l’hort
- Figura 15: Diagrama flux funció flora_routine
- Figura 16: Diagrama màquina d’estats verticals
- Figura 17: Zones criteri de llum
- Figura 18: Diagrama base de dades
- Figura 19: Interfície d'usuari

- Taula 1: Actuadors i microcontrolador


- Taula 2: Desglossament materials i costs

Índex de figures Pàgina 1


Hort urbà robotitzat Josep Maria Recolons

1. INTRODUCCIÓ

L’agricultura urbana és una pràctica en creixement focalitzada en l’aprofitament de petites


superfícies de les ciutats, siguin solars, horts o terrasses, per a la plantació de cultius, o cria
d’animals. (Food and Agriculture of the United Nations, 1999). La proliferació d’aquests
espais verds ha estat defensada per l’OMS per a millorar la qualitat de vida dels centres
urbans, la població dels quals augmenta any rere any, amb un 84,1% de residents urbans a
Espanya el 2021 (La Moncloa, 2021).

“Els espais verds i altres solucions basades en la natura ofereixen enfocaments innovadors
per augmentar la qualitat dels entorns urbans, millorar la resiliència local i promoure estils de
vida sostenibles, millorant tant la salut com el benestar dels residents urbans” (OMS, 2017,
pàg. 2)

Els beneficis que l’OMS destaca dels espais públics i privats amb vegetació inclouen:
oportunitats d’exposició a la natura, protecció de la biodiversitat urbana, reducció dels perills
ambientals com la contaminació atmosfèrica, mitigació dels impactes dels fenòmens
meteorològics extrems (onades de calor, pluges extremes o inundacions) i millora de la salut
i el benestar dels residents.

Arran d’aquests nombrosos beneficis, aquest treball té com a objectiu principal millorar el
disseny i l’eficiència dels sistemes d’horts urbans existents per a promoure’n la proliferació i
conseqüentment l’expansió dels seus avantatges. Els horts urbans són sistemes de cultiu
per cultivar hortalisses principalment, però també es poden cultivar plantes aromàtiques,
flors, herbes medicinals, etc. Aquesta pràctica es dur a terme un lloc domèstic com
terrasses, balcons o fins i tot a l’interior d’una casa.

Aquest projecte se centra en el disseny d’un hort urbà vertical, el qual es caracteritza per
tenir més d’un nivell amb plantacions, un sobre l’altre. És a dir, s’apilen pisos de cultiu per tal
d’optimitzar l’espai, de forma que és ideal per als espais reduïts, i per tant per als habitatges
urbans. Per altra banda, a aquest també comptarà amb un robot que dugui a terme les
tasques de seguiment i cuida constant de les plantes per a reduir el volum de treball que
suposa l’agricultura urbana i així promoure la seva expansió. És a dir, el robot serà capaç de
cultivar plantes de forma semi-autónoma, encarregant-se de donar l’aigua i la llum
necessària en funció de les seves necessitats, però el sistema necessita l'usuari per
funcionar, ja que serà l’encarregat d’etiquetar, plantar i collir les hortalisses a més a més de
carregar els bidons d’aigua i ficar més fertilitzant quan s’indica. Per tant, la finalitat és fer un
hort urbà robotitzat que amb l'ajuda de l'usuari és capaç de cultivar hortalisses.

Així doncs, el projecte s’ha desglossat en els següents objectius:

- Disseny i construcció d'un hort urbà vertical


- Muntatge i inclusió del robot en l’hort vertical, de forma que garanteixi el lliure
moviment del robot per totes les possibles posicions

Introducció Pàgina 1
Hort urbà robotitzat Josep Maria Recolons

- Programació del robot encarregat de: recol·lectar dades sobre la situació de cada
planta, i regar i donar la llum necessària a cada planta individualment segons les
dades recol·lectades.
- Programació del servidor com interfície d’usuari i instructor del robot: inclou el
backend, frontend i API del servidor.

Es tracta d’un projecte molt ampli perquè comprèn aspectes mecànics, electrònics i
informàtics. Des de la construcció de l’estructura de fusta, passant pel muntatge del robot i
acabat amb la programació del robot i el servidor. S’ha planificat el projecte de manera que
cada objectiu ha esdevingut una fase.

Introducció Pàgina 2
Hort urbà robotitzat Josep Maria Recolons

2. ANTECEDENTS

Les primeres referències a horts urbans són de meitats del segle XIX, en una època
marcada per l'èxode rural i la revolució industrial. A les ciutats es crea un entorn de pobresa,
generat per la nova classe obrera dels campers acabats d'arribar i, a causa d'aquest
creixement poblacional, l'església i el govern cedeixen espais als ciutadans pel cultiu dels
seus aliments i així alleujar la situació econòmica. Aquests primers terrenys cedits pel cultiu
van rebre el nom de "horts dels pobres". Similarment, als Estats Units, Regne Unit i
Alemanya, durant la Segona Guerra Mundial, per culpa de la situació de pobresa, es
comença a cultivar als espais oberts o abandonats de la ciutat, camps de futbol, parcs o
jardins per exemple. Així doncs, segons els historiadors (Planeta Huerto, 2022) els horts
urbans arriben en situacions difícils pels ciutadans, on aquests agafen com a mètode de
subsistència el cultiu a llocs domèstics o prop de la metròpolis pel mateix consum.

En el context actual de canvi climàtic, els horts urbans poden tornar a ser la resposta a una
crisi imminent. Com es manifestà des de la Unió Europea:

"La agricultura contribuye al cambio climático y se ve afectada por el cambio climático. La


Unión Europea (UE) necesita reducir las emisiones de gases de efecto invernadero de su
agricultura y adaptar su sistema de producción alimentaria para hacer frente al cambio
climático. "

Tot i que l'agricultura contribueix al canvi climàtic, aquesta és molt necessària per a la nostra
subsistència. Cal, però, fer un canvi cap a una agricultura més sostenible, i els horts urbans
poden ajudar a resoldre aquesta problemàtica.

Per altra banda, en aquest projecte a part de l'hort urbà s'inclou un robot pel cuidat del cultiu,
el qual està inspirat en un projecte anomenat FarmBot1. FarmBot és un projecte d'agricultura
de precisió, que consisteix en un robot que es pot moure lliurement sobre un pla sobre el
qual pot plantar, regar, i mesurar dades entre altres funcionalitats. Un dels desavantatges
d'aquest és que ocupa bastant superfície, sent el més petit de 1.2 m x 3 m, espai del qual
molts habitatges urbans no disposen. Així doncs, aquest projecte soluciona aquesta
problemàtica plantejant un robot que es pot moure en tres dimensions, permetent que l'hort
sigui vertical en comptes d'horitzontal i reduint així l'espai que requereix a la meitat. El
disseny també ha tingut en compte que es pugui destinar a interiors.

Alguns problemes sorgeixen arran de ser un hort vertical. Concretament, l'accés a la llum del
pis inferior, motiu pel qual l'hort que es planteja en aquest projecte, a diferència de FarmBot,
té un led de cultiu, que dona llum pel creixement de les plantes.

1
Vegeu https://www.mybotrobot.com/farmbot-kit-huerto-robotico/

Antecedents Pàgina 3
Hort urbà robotitzat Josep Maria Recolons

Per altra banda, a diferència de FarmBot, aquest projecte no té la funcionalitat de plantar


perquè, deixant de banda la complexitat afegida, es vol que l’usuari pugui escollir si plantar
un planter o bé la llavor.

Finalment, cal esmentar que aquest projecte és un prototip, i no està pensat per poder-se
produir en massa, en altres paraules, no és un producte acabat com farmBot, sinó que té
una finalitat educativa. Així i tot, s’ha tingut en compte durant el desenvolupament del
projecte que aquest sigui fàcilment escalable i millorable.

Antecedents Pàgina 4
Hort urbà robotitzat Josep Maria Recolons

3. DESENVOLUPAMENT DEL PROJECTE

Tenint en compte els objectius del projecte i el que temps total amb el qual s’ha comptat per
a la seva realització (4 mesos - 16 setmanes), s’han adjudicat les següents fites, que a la
vegada s’han adaptat segons les necessitats concretes fruit dels problemes enfrontats:

Figura 1: Calendari planificació inicial i dedicació final

Respecte a les tasques, cal dir que cada una d'elles també inclou els tests del correcte
funcionament d'aquesta. Per exemple, el muntatge del robot va acompanyat dels tests de
cada un dels elements que el conforma.

Com es pot observar a la imatge 1, la tasca que més s'ha allargat ha sigut el muntatge del
robot, això ha sigut degut a problemes mecànics i logístics, sorgits de l'obligació de parar el
projecte perquè falta un component o peça per arribar. Els problemes mecànics es comenten
més endavant de mà de l'explicació de les millores de cadascuna de les parts produïdes del
robot.

Com ja s'ha comentat, s'ha dividit el desenvolupament del projecte en 4 fases: estructura de
l'hort, muntatge del robot, programació del robot i programació del servidor. La cinquena,
s’ha destinat a la redacció. S'explicarà doncs el desenvolupament del projecte seguint
aquestes fases en l'ordre esmentat. L'ordre és important perquè és cronològic, és a dir, la
fase posterior necessita l'anterior.

Desenvolupament del projecte Pàgina 5


Hort urbà robotitzat Josep Maria Recolons

3.1 Estructura de l’hort

Figura 2: Estructura de l’hort

Aquesta fase s'ha dut a terme més o menys en el temps estimat, amb una mica
d'endarreriment a l'inici per aconseguir tots els següents materials.

Materials:

- 2 x testos de 25L
- 2 x testos de 15L
- 6 x llistons de fusta de 55 cm
- 6 x llistons de fusta de 130 cm
- 20 x llistons de fusta de 20 cm
- 1 x llistons de fusta de 80 cm
- caragols de 4 cm
- 40 x escaires metàl·lics
- 20 x connectors plans metàl·lics
- 3 metres de cinta de tela
- 2 x bidons de 10 L

El disseny de l'estructura de l'hort vertical s'ha fet pensant en tot moment perquè no
obstaculitzi el robot i aprofitar al màxim l'espai per plantar; és per això que primer s'ha
plantejat l'estructura del robot, sense entrar en els detalls tècnics, abans de fer l'estructura
de l'hort.

L'estructura del robot, a grans trets, consisteix en dos eixos un vertical i un horitzontal, on
l'eix vertical és fix i l'horitzontal es mou amunt i avall en aquest. Per tant, tenim un eix vertical
que va des del nivell inferior fins al superior de l'hort i un eix horitzontal que puja i baixar per
aquest, canviant així de nivell. Finalment, esmentar que l'eix horitzontal també té moviment

Desenvolupament del projecte Pàgina 6


Hort urbà robotitzat Josep Maria Recolons

angular per incloure la tercera dimensió que ens falta. El dibuix a continuació ho mostra
gràficament.

Figura 3: Vistes frontal i superior dels eixos vertical i horitzontal del robot.

Per tant, l'estructura de l'hort vertical ha de tenir en compte que l'eix horitzontal, que d'ara
endavant es pot referenciar com a braç, tingui aquesta llibertat de moviment. Al cap i a la fi,
el braç és l'eix que ens interessa que tingui llibertat, perquè és on estan els actuadors i
sensors del robot. Aquest braç comprèn el volum de mig cilindre, en el qual no poden
haver-hi obstacles a part del canvi de pis. Així doncs, l'estructura idònia seria justament
aquesta, mig cilindre, és a dir pisos amb forma de mig cilindre. El problema però, és trobar
testos amb forma de mig cilindre i fer una estructura cilíndrica, ja que és molt més difícil i
costos que una rectangular. Per aquest motiu, s'ha acabat fent una estructura amb pisos
rectangulars, però buscant ocupar la màxima àrea del semicercle, com es mostra a
continuació:

Figura 4: Visió superior de l’estructura de l’hort robotitzat

Desenvolupament del projecte Pàgina 7


Hort urbà robotitzat Josep Maria Recolons

A la seu torn, les àrees que queden fora dels rectangles que es veuen a la figura podrien ser
omplertes amb més testos, però en aquest projecte només s'han usat dos rectangles, ja que
és difícil trobar testos rectangulars més allargats i també per reduir costos. Per altra banda,
s'ha descartat fer servir un únic test rectangular que tingui una llargada igual al diàmetre del
semicercle, perquè implicaria que l'àrea sobresortint del semicercle no seria accessible pel
robot i per tant tampoc de les seves funcionalitats. Així doncs, als espais inferiors
mencionats s’hi ha fet dos compartiments pels bidons per a l’aprofitament d’aquests.

Finalment, com ja s'ha comentat, cal que l'estructura de l'hort no obstaculitzi el braç en el
seu moviment, és per això que els pilars de l'estructura estan fora del semicercle com es
mostra al dibuix a continuació.

Figura 5: Visió superior de l’estructura de l’hort robotitzat amb pilars

L'única zona on el braç té un obstacle és en canviar de nivell, on haurà de girar fins a


amagar-se darrere del nivell superior per accedir a l’inferior. L’estructura per l'actuador lineal
vertical i l'electrònica es troba a la part posterior del pilar central.

També cal esmentar que els testos estan penjats sobre cintes per no obstruir el drenatge
d'aigua, de forma que l'aigua drenada del pis superior s'aprofita a l'inferior.

Respecte a les dimensions de l'hort, s'ha respectat una alçada de 50 cm entre nivells, per
facilitar l'entrada de llum i el lliure creixement de les plantes. L'amplada de l'hort està
definida per l'amplada dels testos, 1 metre el més llarg, més un marge d’uns 15 cm per no
obstruir el braç com ja s'ha comentat. Així doncs, compta amb unes dimensions totals de:
130 cm de llarg x 80 cm d'ample x 140 cm d'alçada.

Respecte als materials, s'ha utilitzat fusta pel seu preu, resistència i mal·leabilitat.

Amb tot això, els reptes a l'hora de fer l'estructura amb fusta han estat els següents:

- Estabilitat de l’estructura: realitzar una estructura prou estable per aguantar els 80 L
dels testos, tot sense ficar pilars cèntrics, només amb perifèrics, per no obstruir el
braç.

Desenvolupament del projecte Pàgina 8


Hort urbà robotitzat Josep Maria Recolons

- Mancança de taller: dur a terme el muntatge sencer sense un taller i, per tant, sense
gaires eines de suport.

3.2 Muntatge robot


Aquesta ha sigut l'etapa que s'ha previst més llarga, fet que no només s’ha complert, sinó
que s'ha hagut d'allargar com s’ha mostrat a la imatge 1.

Seguidament, s'explicarà la mecànica del robot i posteriorment l'electrònica, tot i que


aquestes s'han fet simultàniament.

3.2.1 Mecànica del robot

L'estructura del robot està formada per dos raïls lineals que permeten el lliure moviment en
dues dimensions, un raïl vertical i un horitzontal. El raïl vertical està collat a un llistó de fusta
que s'uneix amb l'estructura de l'hort. Sobre aquest raïl vertical es desplaça el servo motor
que puja i baixa gràcies al motor pas a pas Nema 17. El servomotor és l'encarregat de
moure el braç, per tant, aquest braç està collat a l'eix del servo utilitzant una base metàl·lica.
Aquest únic suport no és suficient per aguantar el parell del braç per això a més a més
també hi ha un suport fet amb brides que va des del final del braç a la part superior de la
base del servo.

Figura 6: Mecànica general de l’hort

La mecànica del robot es pot dividir en les següents parts:

Desenvolupament del projecte Pàgina 9


Hort urbà robotitzat Josep Maria Recolons

- Actuador lineal horitzontal


- Actuador lineal vertical
- Ajuntar actuador horitzontal i vertical
- Estructura reg

A continuació es fa una descripció més detallada de cada una d’aquestes.

Actuador lineal horitzontal / braç

Materials:

- Raïl lineal MGN12H de 60 cm


- Motor 28BYJ-48
- Corretja dentada
- Politja
- Bloc de pes
- Bases de fusta

Figura 7: Actuador lineal horitzontal

L'actuador lineal horitzontal consisteix en un raïl MGN12H de 60 cm que té una base


movible anomenada carro, on se situen els sensors i actuadors de les plantes. Aquest carro
és mogut per un motor pas a pas 28BYJ-48 mitjançant una corretja dentada, que va des del
motor fins al carro i continua fins al final del raïl on hi ha una politja que fa tornar la corretja al
motor per acabar el cicle. Finalment, tenim el pes sota la politja a la base final, que és una
pedra rectangular aguantada amb brides.

Respecte al disseny d’aquest, cal esmentar que s'ha tingut en compte els costos, la
distribució del pes i el tipus de transmissió. Pel que fa a costos, s'ha minimitzat molt els
costos construint el braç des de zero, ja que comprar actuadors lineals ja muntats és molt
costós, a part de construir algunes parts del sistema com les politges i suports amb peces
casolanes. Respecte a la distribució de pes, en un inici es va dissenyar per ser el més
lleuger possible, però posteriorment s'ha redissenyat. Pel que fa al tipus de transmissió, tant
en aquest actuador com en el vertical s'ha escollit fer servir una transmissió per corretja

Desenvolupament del projecte Pàgina 10


Hort urbà robotitzat Josep Maria Recolons

dentada perquè, a diferència d'altres transmissions com la rosca, no és tan vulnerable a un


entorn brut i a sobre és menys costos.

El model de raïl MGN12H s'ajusta al nostre criteri del pes i costos per ser lleuger i el més
barat trobat al mercat.

Procés de construcció:

Per construir aquest actuador lineal, primer s'han tallat les tres bases de fusta i collat
directament sobre el raïl, en el cas de la primera a l'inici del raïl i l'última al final. La segona
base va collada al carro movible del raïl. En segon lloc, s’ha construït i collat la politja i
l'estructura sobre la qual es troba el motor a la base final i inicial respectivament. En tercer
lloc, s’ha fet la transmissió del motor al carro, ajuntant amb una brida la corretja que va del
motor al carro, i de l'altre extrem del carro de tornada al motor, passant per la politja.

Millores:

El braç ha experimentat alguns canvis a mesura que avançava el projecte, entre ells estan:

- Canvi de motor: En un inici el motor era un Nema 17 que posteriorment s’ha canviat
a un 28BYJ-48 per augmentar la lleugeresa de la base inicial.

- Pes del braç: S'experimentaven molts problemes per prendre mesures amb el sensor
mi flora. Perquè com que el sensor s’ha de clavar a terra i el braç només està collat a
l'estructura per un extrem, l'altre pujava per culpa del parell que genera la força
normal del terra sobre el sensor. Per solucionar aquesta qüestió s'ha afegit un pes a
l'extrem final del braç i s'ha redissenyat la base de fusta del carro per centrar el
sensor flora mi sota el raïl.

Poden semblar contradictoris els canvis, ja que al primer estem traient pes i al segon estem
afegint, però experimentalment el primer canvi va ajudar significativament al millor moviment
vertical del braç. I el segon canvi ajuda a fer que el sensor es clavi millor a la superfície i no
perjudica significativament el moviment vertical del braç.

Actuador lineal vertical

Materials:

- Raïl lineal MGN12H de 100 cm


- Motor pas a pas Nema 17 17HS16-2004S
- Corretja dentada
- Politja
- Base de fusta
- Finals de carrera magnètics

Desenvolupament del projecte Pàgina 11


Hort urbà robotitzat Josep Maria Recolons

Figura 8: Actuador lineal vertical

L'actuador lineal vertical és força similar a l'actuador lineal horitzontal explicat anteriorment.
Aquest està format per un raïl MGN12H d'un metre d'alçada, que està collat a un llistó de
fusta vertical de 130 cm, i al seu torn aquest llistó vertical està collat al centre de l'estructura
de l'hort mitjançant uns llistons de fusta horitzontals de 20 cm.

El sistema de corretja que s'ha fet és el mateix que s'ha detallat anteriorment però en
vertical. S’hi ha col·locat un motor a la part superior del llistó de fusta, al raïl un carro
movible amb una base de fusta, i a la part inferior, una politja. La corretja va del motor al
carro ajuntat amb una brida, i de l'altre extrem de la base del carro de tornada al motor,
passant per la politja. Finalment, hi ha quatre finals de carrera al llarg del llistó de fusta
vertical, dues posicions per cada pis, una a 40 cm de la superfície del test i l'altre a l'alçada
de la superfície del test.

Respecte al disseny, de la mateixa manera que amb l'actuador lineal horitzontal, a l'actuador
horitzontal vertical s'ha tingut en compte els costos i el tipus de transmissió per les mateixes
raons. A més a més s'ha procurat centrar al màxim l'actuador amb l'estructura de l'hort, s'ha
tingut cura perquè aquest actuador defineix el punt de partida del braç, si aquest està
descentrat el braç no abasta tota la zona plantable.

A l'hora d'escollir el tipus de raïl s'ha tingut cura que aquest pugui aguantar el parell exercit
pel braç. Segons el datasheet del raïl MGN12H(Motioncontrolsystems.hiwin.us, 2022) ,
aquest especifica que el moment estàtic permissible, el màxim parell que pot aguantar el raïl,
i en totes les direccions és de 36.26 N*m.

Desenvolupament del projecte Pàgina 12


Hort urbà robotitzat Josep Maria Recolons

Seguidament, es realitzen els càlculs dels moments amb la següent imatge com a
referència:

Figura 9: Moments raïls

Font:Docplayer

Ens fixem en els moments MA i MB, que serien els que exerciria el braç sobre el raïl.
Dependent de l'angle del braç es veurà aplicat el moment MA, el MB o bé els dos. Quan el
braç està al centre de l'hort, a 0 graus, només hi hauria moment MA i si està en un lateral, a
±90 graus només el MB. Com ens és indiferent quin calcular dels dos perquè tenen el mateix
valor calculem un.

La fórmula per calcular el moment és: 𝑀 = 𝐹 × 𝑑

On el pitjor dels casos tot el pes estaria a l'extrem més allunyat de l'eix i el servomotor a 5
cm de l'eix.

Per fer el càlcul s'ha adjudicat un pes de 0.75 kg als actuadors i sensors de la base, 0.25kg
al motor pas a pas, 0.45 kg al raïl i 0.8 kg al servo. En tots els casos s'ha tirat a l'alça.

𝑀𝐴 = 𝑀𝐵 = ((0. 75 + 0. 45 + 0. 28) × 9. 81 × 0. 6) + (0. 8 × 9. 81 × 0. 05) = 9. 10 𝑁 × 𝑚

El valor obtingut és quatre cops menor al límit de 36.26 N*m, per tant, no hauria de ser un
problema.

En el cas del moment dinàmic que té en compte l'acceleració de la càrrega, no s'ha calculat
per què no sabem l'acceleració de la càrrega, però si portés problemes es reduiria per
software reduint l'acceleració del servomotor.

Finalment, s'ha vist necessari redissenyar l'actuador per alguns problemes que s'expliquen
amb més deteniment a les millores.

Desenvolupament del projecte Pàgina 13


Hort urbà robotitzat Josep Maria Recolons

Procés de construcció:

Primer, s'ha collat el raïl al llistó vertical de la part posterior de l'hort. A continuació també
s'ha collat el suport del motor Nema 17 a la part superior i construït i collat la politja a la part
inferior del llistó.

En segon lloc, s’ha fet la transmissió del motor al carro. S’ha ajuntat amb una brida la
corretja que va del motor al carro, i de l'altre extrem del carro de tornada al motor passant
per la politja.

Finalment, s'han soldat els finals de carrera, que són interruptors magnètics, a una placa
experimental tallada a mesura i enganxat al llistó a la posició adient amb silicona. També,
s'ha donat una capa de silicona per sobre l'interruptor per protegir-lo, ja que són d'un vidre
molt fràgil.

Millores:

- Fregament del carro: S'ha hagut de reduir el fregament del carro sobre el raïl
perquè el motor Nema 17 tenia dificultats per apujar el braç que va enganxat al
carro. Per reduir el fregament primer cal entendre com funciona el carro, aquest
té boles metàl·liques que estan en contacte amb el raïl que, com es mostra en la
imatge a continuació, són els rodaments del carro:

Figura 10: rodaments del carro

Font:Alibaba.com

Al treure el carro del raïl s'ha observat que faltaven boles metàl·liques, per tant,
simplement s'han afegit més boles reduint així el fregament i solucionant
significativament el problema.

Desenvolupament del projecte Pàgina 14


Hort urbà robotitzat Josep Maria Recolons

- S'ha hagut d'afegir finals de carrera per controlar la posició del braç, en un inici
aquests eren polsadors i eren accionats per la base del carro de forma
mecànica. El problema, però és que aquests no sempre eren accionats per la
base del carro, ja que depenent de la posició del braç la base que accionava els
polsadors es deformava i no arribava a accionar sempre els polsadors. La
solució ha passat per canviar els finals de carrera per interruptors magnètics,
perquè aquests tenen una distància d'accionament major i més flexible.

Ajuntar els actuadors horitzontal i vertical.

Materials:

- Servomotor TD8120MG
- Base de fusta
- Brides
- 2 x connector pla metàl·lic
- Braç servo 25T
- Suport de brides
- Imant

Figura 11: Ajuntar els actuadors horitzontal i vertical

Desenvolupament del projecte Pàgina 15


Hort urbà robotitzat Josep Maria Recolons

Cal clarificar que el braç del servomotor no és el braç que s'associa a l'actuador lineal
horitzontal ja explicat. El braç del servomotor és una petita peça amb dents que transmet la
rotació del servomotor.

Per ajuntar l'actuador vertical i horitzontal s’ha fet mitjançant el servomotor. El servomotor
s’ha aguantat amb brides a la base del carro del raïl vertical. Dues brides que impedeixen el
moviment horitzontal del servo i dues que impedeixen el moviment vertical. A simple vista
també es pot veure un connector pla metàl·lic al centre de la base, darrere del servomotor. A
la part posterior de la base tenim unes fustes que apropen l'imant als finals de carrera
magnètics esmentats a l'apartat anterior. A la part inferior, a l'eix del servomotor el braç del
servomotor està collat a la base metàl·lica. Aquesta base metàl·lica està feta amb un
connector pla metàl·lic tallat i connecta el braç del servomotor amb l'actuador lineal
horitzontal. Finalment, a la part superior de la base un cable fet amb brides connecta amb el
final del braç.

Pel disseny d'aquesta part s'ha prioritzat que la base aguanti el parell del braç i també un
braç pel servomotor eficaç. Per aconseguir que l'eix del servomotor aguanti el parell del
braç, s'ha afegit un cable fet amb brides que va des de la part superior de la base al final del
braç alleujant així el parell que s'exerceix sobre l'eix del servomotor. Respecte al braç del
servomotor, normalment amb la compra del motor ve un joc de braços, amb la compra del
servomotor MG995 venia un joc de braços de plàstic però aquests no aguanten la inèrcia de
l'actuador lineal horitzontal i es trenquen. És per això que s'ha hagut de recórrer a braços
metàl·lics pel servomotor.

Procés de construcció:

Primer s’ha tallat i fet els forats necessaris a la base de fusta per després passar les brides.
En segon lloc, s’ha collat la base de fusta al carro del raïl vertical i el connector pla metàl·lic
al centre de la base. En tercer lloc, s’ha ajuntat el servomotor a la base de fusta mitjançant
les brides i el servomotor amb la base metàl·lica, que transmet el moviment al braç. S’ha
tensat el cable de brides per ajudar a aguantar el braç. Finalment, s'ha enganxat amb
silicona l'imant dels finals de carrera a la part posterior de la base.

Millores:

- Deformació fusta: Després de bastant d'ús de la base de fusta aquesta va acabar per
deformar-se bastant degut a la tensió del cable de brides que aguanta part del parell
exercit pel braç. La deformació va causar doncs que ni els finals de carrera
magnètics fossin accionats per l'imant, perquè la distància era massa gran. Com a
millora s'ha collat al centre de la base un suport metàl·lic fet amb un connector lineal
que impedeix que la fusta es deformi.
- Desgast dents servomotor: Després d'utilitzar un temps el braç metàl·lic del
servomotor les dents d'aquest s'han desgastat provocant que una pèrdua de
transmissió del parell de l'eix del servo al braç. Experimentalment, s'ha observat que
les dents dels braços de plàstic es desgasten menys. Finalment, s'ha tornat al braç
de plàstic, però amb la diferència respecte als inicials braços de plàstic que aquest és
circular i els punts de trencament estan més reforçats.

Desenvolupament del projecte Pàgina 16


Hort urbà robotitzat Josep Maria Recolons

- Graus de gir servomotor: El servomotor escollit inicialment, el MG995 té 180 graus de


gir que són suficients per a les funcionalitats que es volen realitzar. El problema
apareix, però quan la inèrcia del braç desvia la posició del servomotor uns graus fora
el seu rang de 180 graus. En aquest cas el motor perd parell i no pot recuperar la
posició. La millora en aquest cas ha sigut comprar un servomotor amb 270 graus de
gir que en cap moment pot perdre la posició, el servomotor escollit ha sigut el
servomotor TD8120MG.

Estructura reg

Materials:

- 3 m de tub flexible PVC


- Bomba aigua
- 2 x bidons d'aigua de 10L
- Brides

L'estructura del reg es força simple. Entre els dos bidons situats als extrems té una capacitat
de 20 litres, els quals estan connectats per un tub. Dins d'un d'aquests bidons hi ha la
bomba d'aigua submergida que bomba l'aigua a través del tub que surt per la part superior
d'aquest mateix bidó. Finalment, aquest tub és conduït fins a la base dels actuadors i
sensors que cuiden les plantes.

Pel disseny d'aquesta part s'ha tingut en compte els costos i l'alçada màxima de bombeig de
la bomba. Els costos s'han tingut en compte a l'hora de comprar la bomba d'aigua i el tub,
buscant el més econòmic. Tot i això, s'ha hagut de descartar bombes d'aigua més
econòmiques perquè no arribaven a alçar més d'un metre i mig l'aigua bombejada.

Procés de construcció:

Primer s'ha fet un forat a la part superior d'un dels bidons per introduir la bomba d'aigua amb
el tub que anirà fins a la base dels actuadors i sensors. En segon lloc, s'ha conduït
mitjançant brides i seguint l'estructura de l'actuador lineal vertical el tub que surt de la bomba
d'aigua fins a la base dels actuadors i sensors. Finalment, s'ha fet un forat a mitja-baixa
alçada de cada bidó per connectar aquests amb un tub.

Millores:

- Disseny bomba d’aigua: El disseny inicial construït tenia la bomba d'aigua fora dels
bidons i estava connectada a aquests mitjançant una connexió en T. Aquesta T tenia
com entrades els tubs procedents dels bidons i com a sortida el tub en direcció a la
bomba. Aquest disseny tenia un problema i és que tot i que el venedor a la imatge
d’instruccions (Anself, 2014) especifica el contrari, la bomba només funciona si està
submergida i, per tant, no pot tenir com entrada d'aigua un tub. Com a solució s'ha
acabat redissenyant el sistema i submergint la bomba com s'explica a l'apartat de
construcció.

Desenvolupament del projecte Pàgina 17


Hort urbà robotitzat Josep Maria Recolons

3.2.2 Electrònica del robot

Com ja s'ha comentat el robot té diverses funcionalitats, com moure per totes posicions el
braç, llegir dades i donar llum i aigua. Aquestes funcionalitats requereixen una electrònica
que s'ha dissenyat i muntat de forma paral·lela al muntatge mecànic que s'ha explicat
anteriorment.

L'electrònica es pot dividir en els següents apartats:

- Dimensionat motors
- Especificacions dels components
- Alimentació del circuit
- Electrònica actuador lineal horitzontal
- Electrònica actuador lineal vertical
- Electrònica servomotor
- Electrònica bomba d’aigua
- Electrònica sensor mi flora
- Esquema circuit electrònic

Tota l'electrònica primer s’ha testejat sobre 3 protoboards i un cop s’ha comprovat que
funcionava s’ha traslladat a plaques de prototipatge com es pot veure en la següent figura:

Desenvolupament del projecte Pàgina 18


Hort urbà robotitzat Josep Maria Recolons

Figura 12: Electrònica soldada en plaques de prototipatge

Dimensionat motors

Abans de comprar els motors cal dimensionar-los, és a dir, escollir les característiques que
han de tenir per complir els requisits desitjats. Aquesta està força relacionada amb la part
mecànica recentment tractada.

Cal esmentar que tots els motors s'han dimensionat pensats per treballar en DC en un rang
igual o inferior a 12 V a més a més de tenir en compte els consums com es comenta més
endavant.

S’han dimensionat els 3 motors: el motor de l’actuador lineal vertical, l’horitzontal i el de


connexió entre ambdós.

Pel que fa al primer, el motor de l’actuador lineal vertical, cal tenir en compte que haurà
d'apujar i abaixar el braç pel raïl vertical, per tant, cal dimensionar el parell. A més a més
també està bé tenir en compte que l'eix del motor rebrà una força radial considerable a
causa del pes del braç. Per calcular el parell necessari primerament cal calcular el parell
exercit pel braç. Considerem, tirant a l'alça, que el braç tindrà un pes de 2.5 kg, aquesta

Desenvolupament del projecte Pàgina 19


Hort urbà robotitzat Josep Maria Recolons

aproximació s'ha fet mirant documentació de tots els elements que conformen el braç. Si
considerem que l'eix del motor té un radi d'1 cm obtenim el següent resultat:

𝑃𝑎𝑟𝑒𝑙𝑙 𝑑𝑒𝑙 𝑏𝑟𝑎ç = 2. 5 𝑘𝑔 × 1 𝑐𝑚 = 2. 5𝑘𝑔 × 𝑐𝑚

Si també volem calcular la força axial que rebria l’eix per part del braç, calculem:

𝐹 = 𝑚×𝑎

𝐹𝑜𝑟ç𝑎 𝑎𝑥𝑖𝑎𝑙 = 2. 5 × 9. 81 = 24. 52𝑁

Finalment, també tenim en consideració que volem un motor relativament precís a l’hora de
fer la tria, ja que tot i tenir els finals de carrera necessitem precisió per prendre mesures amb
el sensor flora mi, perquè aquest s’ha de clavar a terra.

El motor escollit doncs és un motor pas a pas 17HS16-2004S longrunner, els motors pas a
pas es caracteritzen per ser força precisos i segons el datasheet (OSM Technology Co,
2022) podria apujar el braç, ja que té un parell de 4.5kg* cm que supera els 2.5kg*cm
mínims i un límit en la força axial de 28N que està per sobre els 24.5 N calculats.

Pel que fa al motor de l’actuador lineal horitzontal, pel moviment horitzontal no hauria de ser
un problema el parell de resistència, ja que la càrrega serà bastant lleugera perquè només
serà un led de cultiu, el sensor flora mi i el tub de reg. El que sí que cal tenir en compte és la
precisió i lleugeresa del motor. Cal precisió perquè les diferents posicions de les plantes es
recorren amb l'ajuda d'aquest motor i lleugeresa perquè en general volem fer l'actuador
lineal horitzontal lleuger.

És per això que s'ha escollit un motor petit i del tipus motor pas a pas, exactament el model
28BYJ-48.

Finalment, per fer la connexió de l'actuador horitzontal i vertical s'ha de trobar un motor que
faci girar l'actuador horitzontal sobre el vertical amb bastant precisió angular, ja que
d'aquesta depèn el correcte posicionament sobre les plantes. A més a més d'un parell força
elevat per aguantar la inèrcia del braç que exerceix sobre l'eix, així com un rang d'angles de
moviment suficients per dur a termes les funcionalitats. Donats aquests criteris s'ha escollit
un servomotor perquè aquests són força precisos en posicionament angular. Dintre els
servomotors s'ha escollit el MG995 pel cost i perquè té 180 graus de moviment i un parell
elevat. Com ja s'ha comentat prèviament, va sorgir un problema amb aquest servomotor i és
que la inèrcia del braç feia que el servomotor perdés la posició perquè sobrepassava els 180
graus de moviment. Aquest problema es pot solucionar o bé amb un parell més elevat així
evitant que la inèrcia provoqui que el motor vagi a parar a posicions on no funciona, o bé
augmentant el rang d'angles de moviment a més de 180 graus. Finalment, s'ha optat per les
dues solucions i s'ha comprat un servomotor TD8120MG que té més parell i 270 graus de
moviment, assegurant així el tret i solucionant doncs el problema.

Com a propietat afegida que també s’ha tingut en compte, els servomotors són sistemes
closed-loop per tant son més fiables que altres motors a l’hora de complir amb les posicions

Desenvolupament del projecte Pàgina 20


Hort urbà robotitzat Josep Maria Recolons

demandades, ja que ells mateixos s’encarreguen de donar-se feedback respecte a la posició


i no s’ha de fer un sistema de feedback extern com s'ha fet amb els finals de carrera.

Especificacions i criteris d’elecció dels components

A l'hora d'escollir i comprar els diferents components electrònics s'ha tingut en compte les
seves especificacions de corrent i voltatge. En el cas dels actuadors i microcontrolador s'ha
mirat als datasheets i altra documentació per determinar el voltatge que es necessitaria per
alimentar el component i el consum de corrent nominal o preferiblement el corrent màxim, si
s'especifica. (Anself, 2014. Installation instructions ; Datasheetspdf, 2022. 17HS16-2004S ;
Last Minute Engineers, 2022 ; Naylamp Mechatronics - Perú, 2021 ; Mouser.com, 2022.
28BYJ-48). Per exemple en el cas del servomotor TD8120MG s'especifica el no-load current
(SunFounder, n.d, pàg. 3. TD8120MG) i el stall current, on stall current seria el consum
màxim i, per tant, és el que surt a la taula.

Voltatge d’alimentació DC (V) Corrent (mA)

2.2 2000
17HS16-2004S

5 87
28BYJ-48

4.8 - 7.2 2700


TD8120MG

3o5 260
ESP-WROOM-32D

Bomba d’aigua 12 400

Taula 1: Actuadors i microcontrolador

A l'hora d'escollir aquests actuadors s'ha tingut en compte aquests valors, parant atenció a
què els voltatges siguin semblants per no haver de ficar molts reguladors de tensió diferents
i que els corrents no siguin excessivament elevats per reduir el consum.

Respecte a la resta de components, també s'ha tingut en compte els següents aspectes
tècnics pel bon funcionament del circuit.

S'ha escollit l'ESP-WROOM-32D en comptes d'altres microcontroladors com Arduino per la


seva connectivitat WiFi i BLE a un cost molt assequible.

Del led de cultiu destacar que funciona amb corrent altern a diferència de la resta de
components que funcionen en DC. Tot i que hi ha leds de cultiu que funcionen en DC
aquests treballen amb voltatges bastant més elevats que la resta de components i, per tant,
s'escull un led que funciona en alterna que s'alimentarà a part a 220V. També s'ha tingut en

Desenvolupament del projecte Pàgina 21


Hort urbà robotitzat Josep Maria Recolons

consideració la potència d'aquest, s'ha escollit el que tenia menor potencia amb 24W com
indica el venedor a la descripció (Amazon.es , 2022).

Respecte al sensor flora mi, només cal tenir en compte que aquest treballa a 3V que ja bé
alimentat per una pila de botó i que transmet la informació mitjançant BLE. (Xiaomi,
2015.Xiaomi Huahuacaocao Flower Plants Smart Monitor)

Respecte als transistors TMOSFET BS170 s’ha mirat el valor del gate threshold voltatge,
que en aquest cas és de 0.8V i, per tant, la ESP32 que treballa a 3V pot activar. També és
interessant mirar els valors màxims com per exemple el drain-source i gate-source
breakdown voltatge de 60 V i ±20V respectivament que no se superaran perquè no es
treballa amb voltatges tan elevats (Farnell, 2010. BS170).

Dels reguladors de tensió L7805 ens interessa el voltatge de sortida que en aquest cas és
de 5V. També cal prestar atenció al voltatge d'entrada màxim, que no se superarà perquè és
de 35V i treballem amb voltatges més baixos. Finalment, comentar que en la descripció del
datasheet esmenta que té un limitador de corrent intern, s'extreu el valor mirant el Short
Circuit Peak Current interpretant la figura 9 del datasheet (STMicroelectronics, 2004.L7805
Series). El valor obtingut és de 2.7 A aproximadament, perquè la diferència de voltatge entre
l'entrada i sortida és de 12V-5V = 7 V. S'ha prestat especial atenció en aquest valor perquè
en un inici es va agafar erròniament aquest valor com 1 A en comptes de 2.7 A. Més
endavant a l'electrònica del servomotor això s'explica amb més deteniment.

Respecte al regulador de tensió LM1117T-3.3, com ja diu el nom, té un voltatge de sortida de


3.3V. També es presta atenció al drop out voltage que es força baix, de 1.2V que s'aprofitarà
per alimentant el regulador a una tensió més baixa que la resta de reguladors. Aquest
regulador també té incorporat un limitador de corrent intern de 1200mA (NSC, 2004.
LM1117/LM1117l), que en aquest cas no ens preocupa com amb l'anterior regulador perquè
no s'han d'alimentar components que consumeixen gaire corrent amb aquest regulador.

Pel que fa als drivers, pel motor Nema 17 s'ha escollit el A4988. Del datasheet s'ha mirat la
tensió mínima pel pin Vmot i la intensitat màxima que és de 8V i 2A respectivament (Allegro,
2009. A4988). Com el motor Nema 17 treballa a 2A s'ha afegit un dissipador de calor que es
recomana afegir si el driver condueix més d'un amper (LLamas, L., 2016. Motores paso a
paso con Arduino y driver A4988 o DRV8825). També cal tenir en compte que el A4988 es
pot alimentar a 5V. Pel motor 28BYJ-48 s'ha escollit el driver ULN2003, el qual es pot
alimentar a 5 o 12 V com es mostra a la pròpia placa físicament i pot arribar a donar 500mA
per cada canal (STMicroelectronics, 2002. ULN2003) que és suficient pel motor 28BYJ-48 .

Finalment, respecte als relés, s'ha mirat el voltatge d'activació i el corrent màxim que poden
aguantar els seus terminals. En el cas del FINDER-40.51 es pot activar amb 12 V en DC i
pot transmetre 220V en alterna i fins a 20 A (Finder, 2021. 40 Series relays), que són
suficients per alimentar el led de cultiu que va a 24W. Respecte a l'altre relé, el
FINDER-30.22 es pot activar amb 3V en DC i té un corrent màxim de 3A (Finder, 2020. 30
Series relays) donant marge als 400mA que consumeix la bomba d'aigua.

Alimentació del circuit

Desenvolupament del projecte Pàgina 22


Hort urbà robotitzat Josep Maria Recolons

Vistes les especificacions de l'apartat anterior es pot escollir la font d'alimentació, s'ha
escollit un transformador de voltatge regulable entre 3-12V. S'ha triat regulable perquè dona
certa flexibilitat si es vol testejar components per separat o bé per reduir o augmentar la
potència del circuit si aquest ho requereix. Finalment el voltatge que s'utilitza per alimentar
és de 12V perquè és el màxim requerit pels components. Per alimentar components que
treballen a voltatges menors, s'usen els reguladors de tensió.

Respecte a la intensitat del transformador es va comprar en un inici amb 2A, per començar a
testejar les diferents parts de l'electrònica per separat. Tanmateix, caldria pujar a 3A vists els
consums màxims de la taula dels actuadors i controlador. També cal esmenar que per
software s'intenta evitar que el servomotor i el Nema 17 actuïn simultàniament per evitar una
demanda superior als 3A.

Electrònica actuador lineal horitzontal

Components:

- Motor 28BYJ-48
- Driver ULN2003
- ESP32
- Regulador de tensió L7805

Pel control del 28BYJ-48 s'ha utilitzat el driver ULN2003, una agrupació de 5 Parells
Darlington dels quals només es fan servir quatre, un per cada fase del motor pas a pas.
Aquests parells darlington ens permeten subministrar un corrent superior a la que podriem
usant directament les sortides de l’ESP32.

El motor 28BYJ-48 és un motor unipolar, i per això no es necessita invertir el corrent que
passa per les bobines, simplement donar o deixar de donar corrent a les bobines. Per
controlar aquest motor doncs es treballa per seqüències apagant i encenent les bobines en
la seqüència correcta (Llamas, L., 2016. Motor paso a paso 28BYJ-48 con Arduino y driver
ULN2003). Pel control d'aquesta seqüència es fan servir 4 pins digitals de l'ESP32, i per
l'alimentació del driver, i conseqüentment el motor, es fa servir un regulador de tensió de 5V.

Millores:

En un inici no es va tenir en consideració el parell que hauria de tenir el motor encarregat de


moure aquest actuador, ja que la càrrega es considerava molt lleugera. El problema l'ha
causat, però el redisseny de l'actuador vertical, perquè les boles metàl·liques afegides al
carro del raïl vertical es van treure del carro del raïl horitzontal, augmentant doncs la fricció
en aquest. Per solucionar el problema s'ha augmentat el parell del motor doncs aplicat una
seqüència de dues fases en comptes de migs passos. A la seqüència de dues fases
s'encenen dues bobines correlatives en cada fase generant un camp magnètic major i, per
tant, augmentat el parell. En canvi, en la seqüència de migs passos hi ha moments on
només s'encén una bobina.

Electrònica actuador lineal vertical

Desenvolupament del projecte Pàgina 23


Hort urbà robotitzat Josep Maria Recolons

Components:

- Motor Nema 17 17HS16-2004S


- Driver A4988
- ESP32
- Interruptors magnètics

Com bé explica Luis Llamas (2016. Motores paso a paso con Arduino y driver A4988 o
DRV8825), el driver A4988 ens permet treballar amb els voltatges i corrents que el motor
Nema 17 requereix i, a més a més de limitar el corrent que circula pel motor, proporciona
proteccions per evitar que l'electrònica es faci malbé i facilitar el control del motor. En aquest
cas és tan simple com controlar dos pins digitals des de l'ESP32, un per indicar el sentit de
gir i l'altre per comunicar que volem avançar un pas mitjançant un pols. Per altra banda, el
driver ens permet fer microstepping, que és una tècnica per aconseguir més precisió i parell.
Una altra funcionalitat que té el driver A4988 és la regulació d'intensitat, fet important perquè
els motors pas a pas de certa potència com el Nema 17 necessiten tensions superiors a les
que poden suportar les bobines pel seu corrent nominal. Per exemple, el nostre motor Nema
17 17HS16-2004S, que té una intensitat nominal de 2A i una resistència per fase 1.1 Ω. Si
seguim la llei d'Ohm, haurien de circular 2.2V per la bobina, però això no és suficient per
moure el motor. El mateix passa si apliquem un voltatge nominal, com per exemple 12V, i
seguim amb la mateixa resistència de 1.1 Ω; tindriem un corrent de quasi 11 A que
espatllaria el motor. Per tant, aquí és on entra aquesta regulació d'intensitat anomenada
chopping, la qual aplica el voltatge nominal però només durant un període curt de temps (per
exemple el 15% del temps) i la resta es troba apagat. Aquest fet crea un senyal PWM
d'alimentació que té com a valor mitjà del corrent el nominal de 2A que es mostra al
datasheet.

Per regular el corrent que proporcionarà el limitador, que en el nostre cas ha de ser 2A ,hi ha
un potenciòmetre al driver que cal ajustar.

La fórmula que cal seguir és la següent:

𝐼𝑚𝑎𝑥 = 𝑉𝑟𝑒𝑓/(8 * 𝑅𝑠)

La Rs és de 0.1 Ω, observable al driver físicament, el qual té una resistència SMD amb valor
R10 que correspon a 0.1 Ω. A més a més, cal tenir en compte que al treballar amb
microstepping s’utilitza el 100% de la intensitat a diferència del 70% que s'utilitza amb full
steps.

Per tant, a l’usar microstepping:

𝑉𝑟𝑒𝑓 = (2𝐴 × 8 × 0. 1 ) = 1. 6 𝑉

Ara simplement cal girar el potenciòmetre fins a obtenir 1.6 V al multímetre.

A part del control del motor, també tenim els finals de carrera, que són 4 interruptors de
llengüeta que s'activen per un camp magnètic. Cada interruptor té un pin connectat a massa

Desenvolupament del projecte Pàgina 24


Hort urbà robotitzat Josep Maria Recolons

i l'altre a un pin digital de l’ESP32 que llegeix l'estat. Alhora aquests pins de l'ESP32 estan
connectats a 5V mitjançant les seves corresponents resistències de pull-up, per tant es
llegeix un estat alt si l'interruptor està obert i un estat baix si està tancat.

Millores:

- Motor: El motor Nema 17 en alguns punts de la pujada del braç experimentava


dificultats i es quedava encallat, per solucionar això s'ha utilitzat el microstepping que
tot i ser una tècnica per augmentar la precisió en aquest cas ha servit per augmentar
el parell. El concepte és semblant a l'explicat anteriorment amb les seqüències del
motor pas a pas del 28BYJ-48. En aquest cas, però en comptes d'apagar i encendre
les bobines el microstepping fa variar el corrent aplicat a les bobines creant un senyal
sinusoidal discretitzat. El resultat és un camp magnètic rotatiu que permet fer passos
inferiors al pas nominal del motor, aquests passos depenen dels nivells de
discretització emprats en l'excitació de la bobina. Com més microstepping, més
passos i, per tant, més fluid el moviment. Això es pot usar a favor nostre, ja que amb
un moviment més pautat s'ha vist experimentalment que el parell del motor ha
millorat. Després de provar tots els nivells de microstepping s'ha conclòs que amb el
màxim microstepping s'obtenen els millors resultats, és a dir amb els 3 pins M0,M1 i
M2 del driver en estat alt.
- Driver: El driver A4988 és bastant fràgil, és per això que es protegeix la seva entrada
d'alimentació del motor Vmot amb un condensador per alleujar els pics de tensió i
s'afegeix un dissipador per reduir la temperatura. Tot i tenir aquestes mesures de
protecció, però encara s'espatllava. Finalment, s'ha deduït que la causa eren els
corrents induïts pel servomotor o el 28BYJ-48, ja que aquests estaven connectats al
mateix node que l'alimentació del driver. Per tant, quan aquests eren moguts per
l'usuari en fer tests, induïen un corrent fent malbé el driver. Finalment, s'ha canviat el
node d'alimentació i s'ha solucionat el problema.

Electrònica servomotor

Components:

- Servo
- ESP32
- Reguladors de tensió 5V

En el servomotor només hi ha un pin de control que va a l’ESP32, a diferència del motor pas
a pas que en té dos. El servomotor ja s’encarrega d’arribar a la posició desitjada mitjançant
el seu propi feedback, ja que són sistemes closed-loop.

Com ja s'ha comentat a les especificacions, el limitador de corrent dels reguladors L7805 és
de 2.7A. Com amb els reguladors de tensió cal alimentar el servomotor, que pot arribar a
consumir pics de 2.7A, es podria utilitzar un reguladors només; de totes maneres, com els
reguladors no tenen radiadors es decideix usar 3 reguladors per protecció.

Electrònica bomba d'aigua

Desenvolupament del projecte Pàgina 25


Hort urbà robotitzat Josep Maria Recolons

Components:

- Transistor
- Relé a 3.3V
- Regulador tensió 3.3V
- ESP32

Per l'electrònica de la bomba d'aigua s'utilitza el relé FINDER-30.22 per activar la bomba
d'aigua. Aquest relé s'activa amb un pin de l'ESP32 donant massa a la bobina mitjançant un
transistor. També cal mencionar que la bomba d'aigua està al circuit normalment obert del
relé i només rep els 12V directes del transformador quan s'activa el relé.

Electrònica led de cultiu

Components:

- Transistor
- Rele a 12V+
- ESP32

Pel led de cultiu s'ha utilitzat l'altre relé que s'activa si excitem la bobina amb 12V, el mètode
és el mateix que pel circuit de la bomba d'aigua, amb la diferència que aquest cop la massa
del transistor que tanca el circuit de la bobina bé donada pel circuit normalment tancat de
l'altre relé, el FINDER-30.22. Per tant, mai podrà estar activada la llum i l'aigua
simultàniament per a garantir la seguretat. Finalment, cal comentar que el led de cultiu
també està connectat al normalment tancat i quan s'activa el relé rep els 220V.

Electrònica sensor mi flora

Components:

- Esp32
- Sensor mi flora

Respecte al sensor mi flora, en un inici es volia alimentar el sensor amb el regulador de


tensió de 3.3V i fer comunicacions completament sense fils, però finalment s'ha alimentat
mitjançant la pila de botó que venia amb el dispositiu i les comunicacions sí que es fan
mitjançant BLE amb l’ESP32.

Esquema del circuit electrònic

A continuació es mostra l'esquema del circuit elèctric fet amb Kicad.

Desenvolupament del projecte Pàgina 26


Hort urbà robotitzat Josep Maria Recolons

Figura 13: esquema del circuit elèctric

L'esquema es pot dividir en 3 parts: alimentació, actuadors i control. A la part d'alimentació


trobem el transformador junt amb els reguladors de tensió. A la part d'actuadors trobem els
motors pas a pas amb els seus corresponents drivers, el servomotor, la bomba d'aigua i el
led de cultiu. Finalment, a la part de control tenim el controlador ESP32 junt amb els finals de
carrera, els transistors i els relés.

Desenvolupament del projecte Pàgina 27


Hort urbà robotitzat Josep Maria Recolons

3.3 Software
El software d'aquest projecte es divideix clarament en dues parts, el software del robot i el
software del servidor. Aquests es comuniquen per aconseguir un cuidat de les plantes
personalitzat, de totes maneres l'hort pot funcionar sense la comunicació tot i que perdent
funcionalitats.

Tant el software del robot com el del servidor comparteixen criteris pel correcte funcionament
del sistema esmentats a continuació:

Posicions hort

El primer que cal fer és dividir l’hort en posicions com es mostra al dibuix a continuació:

Figura 14: Posicions de l’hort

Desenvolupament del projecte Pàgina 28


Hort urbà robotitzat Josep Maria Recolons

Les posicions verticals 1 i 3 estan a l'aire, és a dir, no estan a la superfície dels nivells, per
això les posicions horitzontals no tenen requadres. Les posicions 0, 15, 30 i 45 són posicions
de referència per inicialitzar el motor horitzontal a la posició 0 i evitar errors. Finalment, cal
comentar que per cada planta té un parell de posicions, la que està a l'aire i la que està a la
superfície, per fer funcionalitats diferents. Per exemple, la primera planta té la posició 1 per
l'aire i 16 per la superfície.

Comunicació servidor client

Per comunicar el servidor i el client s'utilitza MQTT, MQ Telemetry Transport. Aquest protocol
és un protocol M2M (machine-to-machine) del tipus message queue i està basat en la pila
TCP/IP com a base per la comunicació. En aquest protocol hi ha clients i el servidor broker:
els clients inicien la connexió TCP/IP amb el broker (Paessler, 2022), que en el nostre cas
s'ha escollit un broker públic i s'ha protegit la comunicació amb clau simètrica, que es
defineix en establir la connexió amb el broker. Els clients es poden subscriure o publicar a
topics, i per comunicar dos clients cal que un publiqui en un topic i l'altre se subscrigui al
mateix topic.

L'API per la comunicació del nostre sistema s'ha realitzat amb topics i es pot dividir per
situacions, les quals sempre són iniciades per l’ESP32 i contestades pel servidor.

- Quan l’ESP32 envia les dades del sensor mi flora i el servidor respon en
conseqüència.
- serial_num/flora/pos/temperature: L’ESP32 publica la temperatura del sensor en
aquest topic i el servidor es subscriu.
- serial_num/flora/pos/moisture: L’ESP32 pública la humitat del sensor en aquest
topic i el servidor es subscriu.
- serial_num/flora/pos/conductivity: L’ESP32 publica la conductivitat del sensor en
aquest topic i el servidor es subscriu.
- serial_num/flora/pos/light: L’ESP32 pública la llum llegida en aquest topic i el
servidor es subscriu.
- serial_num/water/pos topic : El servidor publica els mil·lilitres d’aigua i l’ESP32 es
subscriu.
- Quan l’ESP32 pregunta quants minuts ha de donar llum i el servidor respon.
- serial_num/light_req/pos : L’ESP32 publica en aquest topic i el servidor es
subscriu.
- serial_num/light_resp/pos : El servidor respon els minuts de llum en aquest topic i
l’ESP32 és subscriu.
- Quan la ESP32 pregunta si pot continuar dormint i el servidor contesta.
- serial_num/sleep_time_req/pos: L’ESP32 publica en aquest topic i el servidor es
subscriu.
- serial_num/sleep_time_resp/pos: El servidor publica un 1 si ha de seguir dormint i
un 0 si no, l’ESP32 és subscriu.

Desenvolupament del projecte Pàgina 29


Hort urbà robotitzat Josep Maria Recolons

- Quan l’ESP32 pregunta si pot començar la rutina per encendre les llums i el servidor
contesta.
- serial_num/light_start_req/pos:La ESP32 publica en aquest topic i el servidor es
subscriu.
- serial_num/light_start_resp/pos:El servidor publica un 1 si ha de començar la
rutina de llums i un 0 si no, la ESP32 es subscriu.

Cal comentar que el serial_num que surt en tots els topics és l'identificador de l'hort, cada
hort té un i està gravat en el codi de l'ESP32. L'altre valor que també surt en alguns topics és
pos que indica posició.

3.3.1 Software del robot

Pel software del robot s’ha programat l’ESP32 mitjançant Arduino IDE. S’ha programat en C i
les llibreries en C++ i utilitzat una build-in partition de l’ESP32 no OTA.

Loop

La ESP32 la gran majoria del temps està adormida, ja que només es desperta cada 4 hores,
i quan es desperta el primer que fa és preguntar al servidor si pot continuar dormint, perquè
es vol respectar el cicle de les plantes i no excitar-les durant la nit. Per tant, si es desperta
entre les 0hs i 6hs es torna a dormir directament. Si no s'està entre aquest interval de temps
es pregunta al servidor si s'ha d'activar la rutina que dona llum a les plantes, si estem entre
les 15hs i les 20hs la rutina de llum s'executarà i, per tant, es donarà llum si cal. Finalment,
si no s'executa la rutina de llum i no estem en el període d'adormir s'executa la rutina flora,
que agafa dades i rega les plantes. Un cop acabades les rutines l'ESP32 torna al mode deep
sleep.

Mòdul flora

Del mòdul flora s’expliquen a continuació els aspectes més importants:

BLE

Com ja s'ha comentat la comunicació es fa mitjançant BLE, en el nostre cas establim una
comunicació punt a punt entre el client que seria l’ESP32 i el servidor que és el sensor flora
mi. El client es connecta al servidor utilitzant l'adreça MAC del servidor. Un cop connectats
es comuniquen usant GATT que és l'acrònim de Generic ATTribute, que defineix la manera
que el client i el servidor intercanvien dades usant uns conceptes anomenats serveis i
característiques. GATT funciona amb una jerarquia, on a dalt de tot tenim el perfil que està
format per un o més serveis. Cada servei té una o més característiques que és on les dades
es guarden. Aquests serveis i característiques tenen un UUID (Universal Unique Identifier)
que és un valor únic de 128 bits (Random Nerd Tutorials, 2022.ESP32 Bluetooth Low
Energy (BLE)).

Desenvolupament del projecte Pàgina 30


Hort urbà robotitzat Josep Maria Recolons

En el nostre tenim tota la informació en un mateix servei i treballarem amb dues


característiques d'aquest servei, una que ens dona els valors de les dades i l'altre sobre la
que cal escriure per forçar al sensor a fer un mostreig (Christian Scheffler, 2018).

Per tant, la seqüència per llegir les dades és la següent, primer ens connectem al servidor
amb la seva adreça MAC, després obtenim el servei, escrivim a la característica que força a
mostrejar i finalment llegim les dades actualitzades de la característica de dades.

Watchdog

Per la comunicació entre l'ESP32 i el sensor flora mi s'ha utilitzat part del codi obtingut al
repositori (Sidddy, 2020) modificat pel projecte en qüestió.

Aquest mòdul és l'encarregat de llegir les dades enviades pel sensor flora mi i enviar-les al
servidor mitjançant MQTT.

A causa d'un error en la comunicació entre l'ESP32 i el sensor s'ha hagut de ficar un
watchdog. Aquest error en la comunicació s'ha testejat sota diferents circumstàncies i s'ha
conclòs que està directament relacionat amb la distància, si estan molt a prop l'ESP32 i el
sensor no tenim l'error. Vista la causa de l'error la solució comentada és l’única que ho ha
solucionat.

El watchdog és una interrupció que s'activa quan s'inicia la comunicació BLE i salta cada 30
segons. Quan el watchdog salta fa un reset per software per reintentar la comunicació. Per a
després del reset reprendre l'acció que s'estava realitzant, cal guardar algunes variables en
la memòria RTC, on la informació sobreviu els resets per software. Destacar que aquest
sistema no para de fer resets fins que la comunicació és exitosa, per tant, a vegades pot
estar minuts per llegir les dades d'una posició o bé només uns segons.

Flora rutine

S’ha creat una funció anomenada flora_rutine() que recorre totes les posicions i porta a
terme totes aquestes funcionalitats per cada planta, aquí es mostra un diagrama de flux:

Desenvolupament del projecte Pàgina 31


Hort urbà robotitzat Josep Maria Recolons

Figura 15: diagrama flux funció flora_routine

Primer es mou a la posició que pertoca la base amb el sensor fins que es clava a la
superfície que es vol mesurar, seguidament es llegeixen les dades si la comunicació no falla,
si falla salta el watchdog i tornem a llegir les dades. Seguidament, s'envien les dades al
servidor, a continuació s'espera la resposta del servidor amb els mil·lilitres d'aigua que cal
regar, si no es rep resposta es rega una mesura estàndard que ara mateix està a 100 ml.

Mòdul light

El mòdul light està format principalment per la funció light_rutine(), aquesta s'encarrega
d'anar posició per posició preguntant al servidor quant temps ha d'engegar el llum en aquella
posició en concret, i el servidor respon en minuts. Si el servidor no contesta no es dona llum
en aquella posició i es va a la següent planta.

Motor vertical

Pel control del motor vertical s’ha utilitzat una variable que guarda l'estat, vertical_pos_state.
Aquesta s'actualitza un cop s'arriba a una nova posició, que es detecta amb els finals de
carrera. Per tant, pel control del Nema 17 simplement es compara l'estat actual amb el
desitjat i es decideix així el sentit de gir, fins a arribar a l'estat desitjat.

Sorgeix un problema amb la inicialització i és que no se sap l'estat inicial amb certesa. Això
es resol inicialitzant l'estat a 4 i fent pujar el braç fins a trobar la posició 1, un cop arribat a la
posició 1 s'inicialitza l'estat a 1 amb certesa. Es mostra en el següent diagrama de la
màquina d’estats:

Figura 16: diagrama màquina d’estats verticals

Desenvolupament del projecte Pàgina 32


Hort urbà robotitzat Josep Maria Recolons

En aquest mòdul també s'ha afegit interrupcions per evitar que el braç caigui un cop s'ha
arribat als estats 1 i 3, atès que aquestes posicions estan a l'aire i el braç no té una
superfície on recolzar-se com a les posicions 2 i 4. Per tant, cal deixar reposar el Nema 17
perquè hi ha cops que s'ha d'aguantar el braç a l'aire molts minuts, fins i tot hores, pel què,
un cop s'arriba a la posició vertical desitjada, s'apaga el motor i s'inicien aquestes
interrupcions. El braç en general s'aguanta pel mateix parell que exerceix sobre l'eix, però a
vegades cau i és llavors quan aquestes interrupcions s'activen, reactivant el Nema 17 i
parant la caiguda. Per dur-les a terme s'ha tingut problemes perquè el temps d'execució
d'una interrupció és limitat, i si aquest temps excedeix el límit l'ESP32 es reinicia. Per tant,
s'ha hagut de fer una altra interrupció que és un timer, time_cb(), que és inicialitzat per les
interrupcions vertical_pos1_interruption() i vertical_pos3_interruption() comentades, i el qual
va apujant el braç a poc a poc en petits intervals sense excedir el temps d'execució màxim
de la interrupció fins que es recupera la posició.

Finalment, l’última interrupció és vertical_correction_cb(), la qual desembossa el braç en el


cas de quedar-se encallat mentre puja. Aquesta interrupció fa que el braç pugi durant 2
segons i baixi durant 0.5 segons, repetint aquest cicle fins a arribar a la posició desitjada. A
més a més, cada 5 cops que fa aquest cicle fa una baixada de 1.2 segons perquè sigui
encara més difícil embossar.

Servomotor

Pel control del servomotor s'han definit funcions com clockwise_servo() i


anticlockwise_servo() en les quals per evitar que el motor vagi molt de pressa es passa la
posició desitjada progressivament. És a dir, per desplaçar de 0 a 90 graus no es dona el
senyal PWM del 90 directament, sinó que es passaria primer l'1, s’espera un interval de
temps, després el 2, s’espera i així fins a arribar al 90. Aquest comportament suau obliga a
tenir un control de la posició del servomotor perquè sinó no es pot passar la posició ± 1 i fer
un moviment progressiu. Per tant, s’ha definit un angular_pos_state, posició que no té un
feedback que la confirma, però es confia en el mateix feedback del servomotor (que com ja
s'ha comentat són sistemes closed-loop).

Finalment, cal esmentar que aquest mòdul també té una interrupció: servo_correction_cb(),
que s'encarrega d'assegurar que el braç està amagat a l'hora de canviar de pis. Per amagar
el braç simplement s'envia 130 graus al servomotor.

Motor horitzontal

Aquest mòdul és l'encarregat de moure el motor 28BYJ-48 activant les bobines en la


seqüència correcta i esperant prou temps entre activacions. Aquesta seqüència està definida
per l'array stepsLookup que són 4 valors: les funcions back_horiz() i front_horiz() utilitzen
aquest array per moure el motor, i front_horiz() que envia la seqüència en un sentit, i
back_horiz() en l'altre, canviant així la direcció de gir.

Com en aquest cas tampoc s’obté feedback no es pot saber del cert on està la base movible.
Per aquest motiu, per poder inicialitzar la posició amb certesa s'usa la funció start_horiz()
que mou la base 10 voltes cap enrere, assegurant que estigui en la posició que estigui la

Desenvolupament del projecte Pàgina 33


Hort urbà robotitzat Josep Maria Recolons

base acabarà a la posició 0 perquè 10 voltes del motor equival a la distància total del braç.
Un cop inicialitzada la posició el sistema va a cegues fins a fer un canvi de pis o començar
una nova rutina que es torna a reiniciar la posició a zero.

Aigua

Es tracta del mòdul més simple, simplement amb la funció water() que rega els mil·lilitres
passats per paràmetre. Aquesta funció primer espera 2 segons, que és el que triga l'aigua a
arribar al final del tub, i després calcula els mil·lisegons que cal engegar la bomba en funció
dels mil·lilitres. El factor de conversió que s'ha trobat experimentalment és 35, és a dir,
s’obtenen els mil·lisegons que cal engegar la bomba multiplicant els mil·lilitres per 35.

Punt d’accés

S'ha pensat en l'usuari final i s'ha dotat l'ESP32 de la possibilitat d'introduir les credencials
WiFi mitjançant un punt d'accés en comptes de gravar en el codi les credencials. Per dur
això a terme s'ha utilitzat la llibreria Wifimanager, en la que es fica primer l'ESP32 en Station
mode i s’intenta connectar al wifi amb les credencials guardades, si no té credencials o la
connexió falla, es posa en mode Punt d'accés. Així l'usuari es pot connectar al punt d'accés i
configurar les credencials. Finalment, canvia de nou a station mode i prova de connectar-se
amb les noves credencials, si falla torna a ficar-se en mode punt d'accés i si no falla s'acaba
el procés (Random Nerd Tutorials, n.d. WiFiManager with ESP8266).

3.3.2 Software del servidor

La necessitat de fer un servidor sorgeix de l’objectiu de proporcionar un tracte personalitzat


per cada planta perquè tinguin l’aigua, la llum i el fertilitzant òptims. Per això cal una interfície
d'usuari on l'usuari de l'hort pugui introduir les plantes que ha plantat a l'hort a més a més
d'una base de dades amb les característiques òptimes i una API per intercanviar la
informació amb l'hort.

El servidor web s'ha realitzat utilitzant el micro framework Flask. L'aplicació web està
connectada una base de dades PostgreSQL. Tots els recursos estan a la plataforma Heroku
on s'ha fet el deploy de l'aplicatiu i es pot trobar al domini. 2

Cal mencionar que per la realització del servidor s'han contemplat diferents opcions com la
creació d'una aplicació mòbil amb Flutter, ja que la idea principal era fer una aplicació mòbil
perquè és més accessible per l'usuari el control de l'hort. Finalment, després de la realització
d’un curs i d’iniciar la creació de l'aplicació amb Flutter s'ha acabat canviant a
microframework Flask per simplicitat. Aquesta decisió s'ha pres per què el temps planificat
per dur a terme el servidor és força limitat i s'ha optat per l'opció on es comptava amb més
experiència.

2
Vegeu: https://tfg-app-hort.herokuapp.com/

Desenvolupament del projecte Pàgina 34


Hort urbà robotitzat Josep Maria Recolons

Criteris de resposta de l’API

L'API, com ja s'ha explicat, utilitza MQTT amb tòpics. Seguidament s’expliquen els criteris de
resposta decidits per aquest treball.

Per calcular els mil·lilitres d'aigua que necessita una planta es mira si la lectura d'humitat
rebuda és inferior al mínim òptim, si és zero, o bé si està entre el mínim òptim i la primera
meitat de la diferència entre el mínim òptim i el màxim òptim. Si és inferior al mínim els
mil·lilitres són 100, si està entre la primera meitat de la diferència entre el mínim i el màxim
són 50 mil·lilitres. És a dir si el mínim és 20 i el màxim és 60, es mira si està entre 20 i
20+((60-20)/2), per tant, entre 20 i 40. Finalment, si és zero són 200 mil·lilitres.

Per decidir la quantitat en mil·lilitres de referència s'ha fet un experiment regant diferents
zones, s'ha provat de regar 9 cops amb 100 ml i 4 cops amb 200 ml i posteriorment s'ha
mesurat l'augment en la humitat. Tot i no ser molt precís s'ha vist que augmenta un 12% per
cada 100 ml i un 18.25% cada 200 ml.

Per calcular els minuts de llum que cal donar a una planta s'ha dividit l'hort per seccions,
tenim 6 seccions en total, 3 al nivell 1 i 3 més al nivell 3. Una secció és un conjunt de
posicions que s'agrupen per la seva proximitat. A continuació es mostren les seccions del
nivell 1 per exemplificar-ho.

Figura 17: zones criteri de llum

S'ha realitzat la divisió per seccions perquè donar llum planta per planta no té gaire sentit,
ja que les plantes del voltant també reben pràcticament la mateixa llum. Per tant, s’ha escollit
donar llum només a una posició de cada secció, la posició amb la planta que té més
necessitat de llum. Un cop escollida la posició, per calcular els minuts s'agafa la proporció
inversa de llum rebuda respecte al mínim de llum òptima i es multiplica pels minuts màxims,
que actualment són dues hores. És a dir, la llum rebuda són 150 lúmens i la mínima són 400
lúmens, s’agafa de la planta amb més necessitat de llum la proporció inversa que en aquest
cas seria (400 -150)/400 i es multiplica pels minuts màxims que series 2 hores per 60
minuts, obtenint així els minuts. S’ha decidit agafar 2 hores com el màxim de temps per zona
perquè no es vol excedir el temps total de 12 hs de donar llum.

Les respostes a les preguntes de l'ESP32 per continuar dormint o per començar la rutina de
llums es contesten mirant si la pregunta es fa en l'interval de temps de dormir o de llums. Si
es pregunta si es pot continuar dormint entre les 0 hs i les 6hs es deixa continuar dormint i si
es pregunta si es pot començar les llums entre les 15hs i les 20hs es deixa començar la
rutina de llums. Aquests paràmetres es defineixen al diccionari time_params.

Desenvolupament del projecte Pàgina 35


Hort urbà robotitzat Josep Maria Recolons

Base de dades

Per la creació de la base de dades s’ha utilitzat els serveis de Heroku on s’ha creat una base
de dades PostgreSQL com un add-on a l'aplicació, l'aplicació es connecta a la base de
dades amb un connection string.

La base de dades s’encarrega de guardar els usuaris registrats, els quals tenen associat un
hort format per plantes. El diagrama de la base de dades quedaria així:

Figura 18: diagrama base de dades

Al diagrama es pot veure que un usuari pot tenir cap o un hort i els horts estan formats per
cap, una o moltes plantes.

En primer lloc, cal destacar que a la classe Hort és guarda la informació general de l'hort,
que s'extreu fent la mitjana de les característiques de les plantes que el conformen. En
segon lloc, respecte a la taula de plantes destacar que es guarda la data de plantació per
una futura escalabilitat del projecte on poder predir quan collir l'hortalissa. En tercer lloc,
respecte a les dades de cuidats òptims, és a dir les característiques màximes i mínimes,
s'han extret de la base de dades pública del sensor flora mi que guarda les característiques
de moltes plantes. De totes maneres, en aquest projecte només s'han agafat les següents:
alfàbrega, pebrot, col, escarola, enciam, canonge, pastanaga, all, mongetes, ceba, julivert,
remolatxa, rave,menta, espinacs i tomàquets cherry. En últim lloc, el criteri d'elecció de les
hortalisses és principalment que no requereixin gaire espai, ja que amb la capacitat de 80L
total dels testos hi ha 3L per planta aproximadament.

Interfície d’usuari

Desenvolupament del projecte Pàgina 36


Hort urbà robotitzat Josep Maria Recolons

La interfície d'usuari, la qual es pot visitar amb la url:https://tfg-app-hort.herokuapp.com/,


està enfocada a proporcionar al sistema la informació pertinent de quines plantes té l'usuari
plantades en tot moment. Per tant, la pàgina principal és la de perfil que correspon justament
a aquest formulari encarregat de recol·lectar aquesta informació. Per arribar a aquesta
pàgina primer cal registrar-se i iniciar sessió i, per tant, també es disposa de pàgines de
registre i inici de sessió. Finalment, es pot trobar una pàgina de configuració per introduir el
codi del teu hort i doncs associar l'usuari a l'hort físic, el codi estaria accessible a l'usuari,
marcat a l'hort físicament d'alguna manera. Cal esmentar que aquest codi és únic per cada
hort, ja que és el número de sèrie que s'utilitza per identificar els horts en les comunicacions
MQTT.

A continuació es mostra la pantalla de profile.html que s’ha comentat anteriorment.

Figura 19: Interfície d'usuari

Com es pot observar, hi ha informació general de tot l'hort a la part superior i, per cada
posició, en cas de necessitar fertilitzant es marca amb el símbol de fertilitzant. Si es fa clic
sobre una posició s'obre un formulari per escollir la planta a col·locar en la posició indicada.

Cal comentar que no s'ha prioritzat el disseny sinó les funcionalitats.

Desenvolupament del projecte Pàgina 37


Hort urbà robotitzat Josep Maria Recolons

4. ESTUDI ECONÒMIC

En aquesta secció s'especifica el cost del projecte dut a terme. Per a dur-ho a terme, s’han
divit els costos segons si formen part de la construcció de l’estructura de l’hort o del
muntatge del robot. Per a l’hort s’han comprat la gran majoria de materials al Bauhaus, i en
el cas del robot per Amazon per la seva rapidesa d'enviament i stock de les necessitats
concretes. Altres detalls extres de ferreteria s’han comprat al comerç local.

El desglossament de materials i el seu cost es pot veure a continuació:

Material Preu (€)


Estructura de l'hort
Cinta de lona 7,25
Escaires metàl·lics 21
Llistó d’avet 41,49
Serra 7,49
Rosques 4,93
Cargols 4,29
Bidons 19,9
Cola de fusta 3,95
Brides 2,7
Testos de 25 L 9,98
Testos de 15L 7,38
Substrat universal 8,95
Subtotal 139,31€
Muntatge del robot
Raïl MGN12H 1000mm 54,4
Interruptors magnètics 8,98
Pistola de silicona 13,59
Kit del soldador 20,99
Plaques de prototipatge 10,99
Servomotor TD8120MG 21,59
Drivers A4988 24,54
Protoboards 8,99
Led de cultiu 10,99

Desenvolupament del projecte Pàgina 38


Hort urbà robotitzat Josep Maria Recolons

Sensor mi flora 26,95


Braç servomotor de
metall 6,29
Bomba d'aigua 13,99
Multímetre 15,99
Motors 17HS16-2004S 33,98
Servomotor MG995 14,99
Plaques ESP32 14,99
Raïl MGN12H 600mm 37,78
Corretja i peces corriola 13,99
Subtotal 354,01€
Extres
Ferreteria 20
Subtotal 20€
TOTAL FINAL 513,32€

Taula 2: desglossament materials i costs

Com es pot observar, la despesa del muntatge del robot correspon a més del 50% del cost
total. De totes maneres, aquesta podria haver sigut més baixa perquè a l’haver-se comprat
el material per Amazon prioritzant entregues ràpides el preu és força més elevat que altres
plataformes.

Extraient les eines i material comprat que al final no s'ha utilitzat i afegint material utilitzat de
casa com el motor 28BYJ-48, s’obté un preu final de 372,77€ per hort robotitzat
aproximadament.

De totes maneres, amb futures millores d'aquest el cost augmentarà. Per exemple, si
s'afegeix una càmera per fer machine learning i poder predir el moment òptim per collir les
hortalisses s'aproxima un augment de 25 €, que és el cost de l’ESP32 CAM que es va
comprar en un inici per fer aquesta millora.

Desenvolupament del projecte Pàgina 39


Hort urbà robotitzat Josep Maria Recolons

5. CONCLUSIONS

Recapitulant, en aquest projecte s'ha realitzat un hort vertical robotitzat amb l'objectiu de dur
a terme tot el procés end to end, per tant, incloent-hi el disseny i construcció de l'hort, el
disseny i construcció del robot, la programació del robot, i finalment la programació del
servidor.

S'han dut a terme totes i cada una de les fases, per tant, s'ha complert amb tots els objectius
platejats. Cal destacar que l'objectiu aconseguit més complet del projecte és donar aigua i
llum a cada planta de forma personalitzada una a una, ja que requereix tot el sistema per
funcionar. També destacar la diferenciació assolida en el projecte respecte a altres projectes
com FarmBot que és la reducció de l'espai ocupat per l'hort mitjançant un hort vertical.

Malgrat els avantatges de l’hort realitzat, és interessant destacar les següents millores amb
retrospecció del procés:

- Aspectes mecànics: es podrien millorar les següents parts del robot per fer-lo més
fiable. Primerament, afegir més rodaments al carro del raïl horitzontal, fer les bases
dels carros de metall o plàstic dur en comptes de fusta, i finalment fer una connexió
més robusta de l'eix del servomotor amb el braç, ja que el braç del servomotor ha
portat molts problemes.

- Electrònica: comprar un transformador amb més amperatge i soldar millor el cablejat.

- Programació del robot: es podria fer més robusta la part del punt d'accés, ja que no
sempre recorda les credencials WiFi al reiniciar el sistema i cal tornar-les a introduir.

- Servidor: es podria millorar la robustesa de la connexió amb la base de dades, que a


vegades porta dificultats perquè els serveis de Heroku canvien de tant en tant la
localització de la base de dades. També es pot millorar significativament el disseny
web i les funcionalitats de la pàgina web.

En últim lloc, les perspectives de futur de l'hort robotitzat són: a curt termini, buscar
alternatives pel braç del servomotor que amb els últims tests ha deixat de funcionar a causa
del desgast, afegir més rodaments al carro horitzontal i impermeabilitzar l'electrònica. A llarg
termini es voldria afegir visió al robot amb la ESP32CAM i fer una pàgina web més estètica.
Per a la seva futura expansió caldria fer un disseny de l'hort més estètic i amb materials més
resistents, ja que com s'ha comentat la major parts dels problemes són i han sigut mecànics.

Amb tot això, l'augment d'espais verds privats a casa són una bona praxi recomanada per
l’OMS, però que han d'anar acompanyades d'accions a nivell de ciutat per a aconseguir el
màxim benefici de les recomanacions d'aquesta organització. Els horts robotitzats a casa
són un primer pas dels molts cap a un futur més verd.

Conclusions Pàgina 40
Hort urbà robotitzat Josep Maria Recolons

6. BIBLIOGRAFIA

1. Alibaba, 2022. Supply Best Quality Hiwin Mgn12h Linear Guide And Slider - Buy
Hiwin Mgn12h Linear Guide,Hiwin Linear Guide And Slider,Hiwin Mgn12h Product on
Alibaba.com. [online] Disponible a:
<https://www.alibaba.com/product-detail/Supply-best-quality-HIWIN-MGN12H-linear_
60455982102.html> [Accés 5 Juliol 2022].
2. Allegro, 2009. A4988 [online] Disponible a:
<https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver_with_transla
tor.pdf> [Accés 6 July 2022].
3. Amazon.es, 2022. [online] Disponible a:
<https://www.amazon.es/gp/product/B07CRG1SQP?ref=em_1p_1_ti&ref_=pe_19467
681_682308941> [Accés 6 July 2022].
4. Anself, 2014.Installation instructions [online] Disponible a:
<https://www.amazon.es/dp/B00M1CBNUQ?ref_=cm_sw_r_cp_ud_dp_R5S9V85M68
XXST5WXNJP> [Accés 5 Juliol 2022].
5. Christian Scheffler, 2018. The Basics · ChrisScheffler/miflora Wiki. [online] Disponible
a: <https://github.com/ChrisScheffler/miflora/wiki/The-Basics> [Accés 6 July 2022].
6. Datasheetspdf.com. 2022. 17HS16-2004S Datasheet | OSM - Datasheetspdf.com.
[online] Disponible a: <https://datasheetspdf.com/datasheet/17HS16-2004S.html>
[Accés 5 Juliol 2022].
7. Docplayer, 2022. Diseño Mecánico. Unidad 1. Introducción al diseño en ingeniería -
PDF Descargar libre. [online] Disponible a::
<https://docplayer.es/93754339-Diseno-mecanico-unidad-1-introduccion-al-diseno-en
-ingenieria.html> [Accés 5 Juliol 2022].
8. Farnell, 2010. BS170 [online] Disponible a:
<https://www.farnell.com/datasheets/2304244.pdf> [Accés 6 July 2022].
9. Finder, 2020. 30 Series relays [online] Disponible a:
<https://cdn.findernet.com/app/uploads/2020/09/14085253/S30EN-2.pdf> [Accés 6
July 2022].
10. Finder, 2021. 40 Series relays [online] Disponible a:
<https://cdn.findernet.com/app/uploads/2020/09/25140144/S40EN.pdf> [Accés 6 July
2022].
11. Food and Agriculture of the United Nations, 1999. Cuestiones de la agricultura
urbana. [online] Disponible a: <https://www.fao.org/ag/esp/revista/9901sp2.htm>
[Accés 5 Juliol 2022].
12. Huerto, P., 2022. Historia y evolución de los huertos urbanos. [online] En Planeta
Huerto. Disponible a:
<https://www.planetahuerto.es/revista/historia-y-evolucion-de-los-huertos-urbanos_00
148> [Accés 1 Gener 2022].
13. Lamoncloa.gob.es, 2021. La población de las áreas rurales en España.. [online]
Disponible a:
<https://www.lamoncloa.gob.es/serviciosdeprensa/notasprensa/agricultura/Paginas/2
021/271221-areas-rurales.aspx> [Accés 5 Juliol 2022].
14. Last Minute Engineers, 2022. Insight Into ESP32 Sleep Modes & Their Power
Consumption. [online] Disponible a::
<https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/> [Accés 5
Juliol 2022].

Bibliografia Pàgina 41
Hort urbà robotitzat Josep Maria Recolons

15. LLamas, L., 2016. Motores paso a paso con Arduino y driver A4988 o DRV8825.
[online] Disponible a:
<https://www.luisllamas.es/motores-paso-paso-arduino-driver-a4988-drv8825/>
[Accés 5 Juliol 2022].
16. Llamas, L., 2016. Motor paso a paso 28BYJ-48 con Arduino y driver ULN2003.
[online] Luis Llamas. Disponible a:
<https://www.luisllamas.es/motor-paso-paso-28byj-48-arduino-driver-uln2003/>
[Accés 5 Juliol 2022].
17. Motioncontrolsystems.hiwin.us. 2022. [online] Disponible a:
<http://motioncontrolsystems.hiwin.us/Asset/MG-Series-Catalog.pdf> [Accés 5 July
2022].
18. Mouser.com. 2022. 28BYJ-48 [online] Disponible a:
<https://www.mouser.com/datasheet/2/758/stepd-01-data-sheet-1143075.pdf> [Accés
5 Juliol 2022].
19. Naylamp Mechatronics - Perú, 2021. NodeMCU-32 30-pin ESP32 WiFi. [online]
Disponible a::
<https://naylampmechatronics.com/espressif-esp/384-nodemcu-32-30-pin-esp32-wifi.
html> [Accés 5 Juliol 2022].
20. NSC, 2004. LM1117/LM1117l, LM1117T-3.3 Descripción Electrónicos, LM1117T-3.3
Datasheet, LM1117T-3.3 view ::: ALLDATASHEET :::. [online] Disponible a:
<https://pdf1.alldatasheet.es/datasheet-pdf/view/8606/NSC/LM1117T-3.3.html>
[Accés 6 July 2022].
21. Paessler, 2022. ¿Qué es MQTT? Definición y detalles. [online] Disponible a:
<https://www.paessler.com/es/it-explained/mqtt> [Accés 5 Juliol 2022].
22. Random Nerd Tutorials. 2022. ESP32 Bluetooth Low Energy (BLE) on Arduino IDE |
Random Nerd Tutorials. [online] Disponible a:
<https://randomnerdtutorials.com/esp32-bluetooth-low-energy-ble-arduino-ide/>
[Accés 6 July 2022].
23. Random Nerd Tutorials. n.d. WiFiManager with ESP8266 - Autoconnect, Custom
Parameter and Manage your SSID and Password | Random Nerd Tutorials. [online]
Disponible a:
<https://randomnerdtutorials.com/wifimanager-with-esp8266-autoconnect-custom-par
ameter-and-manage-your-ssid-and-password/> [Accés 6 July 2022].
24. Sidddy, 2020. GitHub - sidddy/flora: ESP32 BLE client for Xiaomi Mi Plant sensors.
[online] Disponible a: <https://github.com/sidddy/flora> [Accés 6 July 2022].
25. STMicroelectronics, 2004.L7805 Series, L7805CV Descripción Electrónicos,
L7805CV Datasheet, L7805CV view ::: ALLDATASHEET :::. [online] Disponible a:
<https://pdf1.alldatasheet.es/datasheet-pdf/view/22634/STMICROELECTRONICS/L7
805CV.html> [Accés 6 July 2022].
26. STMicroelectronics, 2002. ULN2003 pdf, ULN2003 Description, ULN2003 Datasheet,
ULN2003 view ::: ALLDATASHEET :::. [online] Disponible a:
<https://pdf1.alldatasheet.com/datasheet-pdf/view/25575/STMICROELECTRONICS/
ULN2003.html> [Accés 6 July 2022].
27. SunFounder, n.d. TD8120MG [online] Disponible a:
<https://cnc1.lv/PDF%20FILES/TD-8120MG_Digital_Servo.pdf> [Accés 5 Juliol
2022].
28. World Health Organization Regional Office for Europe, 2017. Urban green spaces: a
brief for action. [online] p.2. Disponible a:
<https://www.euro.who.int/__data/assets/pdf_file/0010/342289/Urban-Green-Spaces_
EN_WHO_web3.pdf> [Accés 5 Juliol 2022].
29. Xiaomi, 2015.Xiaomi Huahuacaocao Flower Plants Smart Monitor [online] Disponible
a: <https://files.xiaomi-mi.com/files/plants_monitor/Plants_monitor-EN.pdf> [Accés 6
July 2022].

Bibliografia Pàgina 42
Hort urbà robotitzat Josep Maria Recolons

7. ANNEXOS

S’inclouen fotografies, vídeos, el codi de l’ESP32 i el servidor.

Codi de l’ESP32
Per veure tot el codi de l’ESP32 visiteu:https://github.com/pepereco/ESP32_tfg.git.

Codi del servidor


Per veure tot el codi del servidor visiteu: https://github.com/pepereco/web_server_tfg.git

Fotografies i vídeos prototip


Per veure els vÍdeos demostratius del funcionament del projecte visiteu:
https://drive.google.com/drive/u/1/folders/1909FqC05nyOzCXyiimdgSYS8cKxi9wco

Annexos Pàgina 43
Hort urbà robotitzat Josep Maria Recolons

Vista general

Annexos Pàgina 44
Hort urbà robotitzat Josep Maria Recolons

Servomotor TD8120MG amb suport

Annexos Pàgina 45
Hort urbà robotitzat Josep Maria Recolons

Motor Nema 17 amb suport

Annexos Pàgina 46
Hort urbà robotitzat Josep Maria Recolons

Motor 28BYJ-48 amb suport

Annexos Pàgina 47
Hort urbà robotitzat Josep Maria Recolons

Actuador lineal horitzontal

Vista superior

Annexos Pàgina 48
Hort urbà robotitzat Josep Maria Recolons

Transformador i endoll

Annexos Pàgina 49
Hort urbà robotitzat Josep Maria Recolons

Electrònica

Annexos Pàgina 50

You might also like