El Node

Després de tenir el sensor v1.0 en funcionamet força temps i veient que els resultats no son òptims decideixo redissenyar-ho tot. Per casualitat, tot fent un curs molt interessant a L'Era sobre fertilització és on m'adono que el sensor escollit no sembla l'adequat. En comptes de mesurar el % volumètric d'aigua al sòl cal mesurar la tensió de l'aigua per conèixer les necessitats hídriques de les plantes. Això suposa un canvi important a nivell del node jardiNet doncs per fer-ho bé calen varis sensors. De fet les mesures es poden fer amb uns aparells anomenats tensiòmetres però son cars i necessiten manteniment i només son indicats per mesures ad-hoc tot i que son molt fiables i precisos.

Així doncs començo a buscar sensors de tensió superficial, que es puguin integrar fàcilment i que a sobre no siguin cars. I acabo escollint sensors Irrometer Watermark. Ara però en calen 3 per node per fer-ho bé: dos sensors de tensió (200SS) per tenir al mateix punt en diferents profunditats més un sensor de temperatura (200TS) per compensar les lectures. Tots els càlculs a realitzar a partir de les lectures dels sensors estan explicats a la documentació d'Irrometer i són equacions fàcils de programar. A la pàgina d'Irrometer 'Reading WATERMARK Soil Moisture Sensors' trobareu, en anglès, tot el que he necessitat per dissenyar els circuits de mesura i també el model matemàtic per convertir les lectures en tensió d'aigua en cBars. D'altra banda aquí també trobareu a la pàgina 'Fundamentos de la humedad del suelo' com aquests valors i decidir si cal regar o no.

Així doncs ara hem de gestionar tres sensors en comptes d'un. Seria interessant seguir utilitzant només els ADC del XBee com he fet a la v1.0 però cal crear una font d'alimentació pels sensors i es complica l'electrònica. Així doncs decideixo gestionar els sensors amb un microcontrolador Arduino MKR Zero i la veritat és que no és complicat doncs només cal utilitzar un senzill circuit amb divisors de tensió i diodes de protecció. Irrometer recomana alimentar els sensors 200SS amb corrent alterna per allargar-ne la vida, però això no és possible amb un Arduino i complicat en l'entorn que volem utilitzar. Així que alterno l'alimentació del sensor amb sortides diferents per simular un pseudo-corrent altern com es suggereix a la documentació dels sensors que us he mostrat abans. L'arduino envia les dades al XBee via port sèrie i també envia una senyal al temporitzador per apagar el circuit i començar el compte enrere del següent cicle de lectura. La ràdio XBee envia les dades recollides pel sensor al datalogger que les guarda a la base de dades. Per tant la programació del XBee es simplifica molt doncs només cal configurar l'alimentació i el port sèrie. Si voleu el codi font de l'Arduino, que és força senzill, no tinc cap inconvenient en compartir-lo, envieu-me un mail.

Ara ja només falta alimentar el conjunt i per fer-ho fàcil ho faig amb diferents blocs d'Adafruit. Continuo utilitzant el circuit Adafruit 390 que permet utilitzar una placa solar, la bateria o fins i tot rebre alimentació via USB, a més la bateria es carrega quan l'alimentació és solar. Afegeixo després un circuit temporitzador, basat en el circuit TPL5110, per activar el conjunt un cop cada hora durant el temps necessari (uns segons) per alimentar el sensors, llegir-los i enviar les dades al datalogger i això un cop cada hora aprox. Aquests dos components són els únics que estan sempre actius i per tant consumint energia. És el propi Arduino qui com a darrera acció després d'haver enviat les dades al datalogger envia el senyal al TPL5110 per apagar el circuit. Penseu que tot i que l'Arduino i el XBee tenen sleep modes, no son fàcils de programar i mai deixen de consumir, per tant el més eficient i senzill és tenir-los apagats el màxim temps possible. Aquest circuit temporitzador torna a ser un bloc: Adafruit 3435.

Aquí un incís sobre el disseny electrònic perquè al fer servir una sortida digital de l'Arduino per enviar un pols a la senyal 'DONE' del temporitzador he tingut molts problemes per fer-ho funcionar i he perdut molt i molt temps. El fabricant especifica que un pols de com a mínim 100ns és suficient per ser interpretat com a vàlid pel TPL5110 i apagar el circuit. La documentació de l'Arduino no especifica en cap moment l'estat de les sortides digitals durant el procés de boot, per tant és probable que en algun moment la sortida generi un pols suficientment llarg perquè el temporitzador entengui que ha d'apagar el circuit i això ve a dir que no s'engega mai i no funciona. Com que no tinc cap oscil·loscopi per veure el senyal m'ha costat força entendre això. Ho he solucionat filtrant el senyal per eliminar els polsos curts (de més de 100 ns.) amb un condensador prou gran, vegeu el disseny i només preservar el pols d'interès que dura uns quans mseg.

Finalment per acabar la font d'alimentació utilitzo el darrer bloc: Adafruit 2030 que converteix un voltatge d'entrada a partir de 1,8 Volts en una sortida estable de 5,2 Volts que és el que necessitem per alimentar l'Arduino MKR via Vin. Cal tenir en compte que el límit que accepta el component principal, TPS61030, és de 5,5 Volts i això vol dir que quan l'alimentació prové del plafó solar podem tenir pics superiors als 6 Volts, segurament no passaria res, però en qualsevol cas no costa gens protegir l'entrada del circuit amb un regulador de voltatge, L4940V5 que limita als 5,5 Volts i es comporta linealment en voltatges inferiors, vegeu disseny. També dir que el XBee s'alimenta de la sortida Vcc de l'Arduino que proporciona els 3,3 Volts necessaris. He provat la font força temps i sembla estable després d'uns quants dies instal·lada a l'hort.

Aquest és l'esquema del circuit del jardiNet v2.0, on els blocs Adafruit estan representat pels seus connectors, menys el 390 que senzillament correspon a l'entrada 'Power' de l'esquema:

I aquí l'esquema per construir la placa on soldar-ho tot, generat amb el Kicad:

v3.0 ??

Com sempre m'agradaria optimitzar aquest disseny eliminant tots aquests blocs i fer la font d'alimentació directament en un únic circuit. Un bon començament podria ser agafar els esquemes dels blocs d'Adafruit i integrar-los en un únic circuit. Però això queda per més endavant. Tot i això aquest cop he dissenyat tot el circuit amb Kicad que és una aplicació de programari lliure molt completa i sense cap limitació pràctica. Això m'ha permès generar els fitxers gerber per construir una placa de circuit on fixar correctament tots els components i blocs. Penseu que al primer node jardiNet vaig tenir molts problemes amb les soldadures i connexions doncs ho vaig cablejar pràcticament tot i fixar en una placa de prototips.

Imatges

Així ha quedat tot el circuit un cop muntat a la caixa:

Un cop connectats els sensors, ja només falta el suport i el plafó solar:

I així ha quedat un cop instal·lat a l'hort, la pistola de cola fa meravelles !!