← Volver al portafolio

El plus

Antes de las apps, hice la cosa que manda el dato

Esta es la mitad de la trayectoria que vino primero, y el origen de todo lo que la otra página mueve. Empecé un nivel más abajo — firmware, placas, piezas mecanizadas, y una sonda de suelo diseñada, ruteada, mecanizada y enterrada durante dos años — y la Apple Developer Academy es donde giró: la misma ingeniería, movida hacia arriba en la pila. Estos cuatro capítulos siguen aquí porque saber cuánto cuesta una lectura antes de llegar a tu app cambia cómo construyes la app, y porque las doscientas cuarenta mil filas del capítulo de base de datos salieron de algo como esto.

01 · SILICIO AGROM.IO · 2016 – 2019

Todo empieza en un solo pin

Mucho antes de que exista una app, hay un microcontrolador decidiendo —millones de veces por segundo— si un cable está en alto o en bajo. Catorce firmwares me enseñaron que todo lo de arriba depende de acertar aquí.

pwm_playground.c

GPIO 2

Brillo percibido 50%
Vavg 1.65 V
analogWrite() 128

Lo que acabas de aprender → Acabas de atenuar un LED sin cambiar nunca su tensión. Eso es PWM: el pin solo está completamente encendido o completamente apagado — simplemente conmuta más rápido de lo que tu ojo puede seguir.

C/C++ESP32PIC18F4550ATmegaTimers y PWM

02 · COBRE AGROM.IO · 2016 – 2019

Luego necesita una placa

Un esquemático es una promesa. La PCB es donde se cumple. Cada placa que he fabricado empezó exactamente con este rompecabezas: llevar cada señal a su sitio, en una superficie donde nada puede cruzarse.

router.pcb

Esto no es una ilustración. Es AGROM.brd, la placa que enruté en 2017 para la sonda de suelo — 70 mm de diámetro, dos capas de cobre, 54 componentes — leída directamente del archivo de EAGLE y dibujada aquí. Elige una net y síguela.

Vista
Capas
Nets
AGROM.IOTX RX GND

cobre superior cobre inferior vía AGROM.brd · EAGLE 7.6 · 2017

Segmentos 754
Cambios de capa 34
Longitud de cobre 1321 mm

El rojo corre por la cara superior, el azul por la inferior. Cada anillo amarillo es una vía: un agujero metalizado por donde la pista baja al otro lado.

Lo que acabas de aprender → Dos pistas no pueden cruzarse en la misma capa. Esa única restricción es la razón por la que las placas reales tienen 2, 4, a veces 12 capas apiladas.

AltiumEAGLESMD y THTGerberDiseño para manufactura

03 · ACERO AGROM.IO · 2016 – 2019

Y un cuerpo que sobreviva al campo

Un sensor enterrado en tierra empapada durante dos años no se preocupa por lo elegante que sea tu firmware. Se preocupa por la carcasa. Por eso la modelo yo mismo: cada pieza, cada tolerancia, cada sello.

soil_probe.sldasm

Los ensamblajes en que está organizado el proyecto mecánico, una carpeta cada uno, reconstruidos a partir de los planos con los que se mecanizaron. Elige uno, desármalo y lee de qué está hecho.

Producto

cargando las piezas impresas…

↔ arrastra para girar

Piezas
Dimensión mayor

Las piezas torneadas y cortadas se construyen desde sus planos acotados. Las impresas son sus STL reales. La disposición se ajustó a los renders de 2017, porque los ensamblajes de SolidWorks no se pueden leer.

La prueba está en la estructura de carpetas

El proyecto mecánico no está archivado por pieza. Está archivado por cómo se fabrica cada una — que es la diferencia entre modelar algo y especificarlo.

  • 11 Torno y mecanizado cada una con plano acotado
  • 5 Corte láser acrílico plano, dibujado y tolerado
  • 7 Impresión 3D las piezas cargadas aquí como STL
  • 14 Compra sensores, celdas, conectores
  • 1 Montaje de cables un mazo de cuatro vías

16 planos acotados · 82 líneas en 7 listas de materiales

Lo que acabas de aprender → El hardware es la única capa que no puedes parchear en remoto. Por eso el diseño mecánico ocurre antes de la primera línea de firmware, no después.

SolidWorksModelado 3DToleranciasSellado IPImpresión 3D

04 · SEÑAL AGROM.IO · 2016 – 2019

Ahora haz que mil de ellos hablen

Un dispositivo es un proyecto. Mil dispositivos son una arquitectura. MQTT es cómo se hablan sin conocerse nunca — y los comodines de tópico son todo el truco.

broker · mqtt://meneghel.me:8883

Un tópico es una ruta. Cada dispositivo de esta granja publica en una ruta formada por los mismos cuatro niveles — así que una suscripción es, en el fondo, una pregunta sobre qué niveles te importan.

1 · sitio

  • farm
  • home

2 · área

  • greenhouse
  • field
  • office

3 · dispositivo

  • soil-1
  • soil-2
  • soil-3
  • pump-1
  • thermostat

4 · medida

  • temp
  • moisture
  • status
  • + coincide con exactamente un nivel, sea cual sea su contenido
  • # coincide con todo lo que venga debajo, y tiene que ser el último nivel
SUB

Broker — todo lo que se está publicando

    Tu bandeja — lo que te llegó

    • nada ha coincidido todavía
    entregados 0
    no entregados 0
    topics 0 / 8

    Tres suscripciones que acertar

    Vale cualquier filtro que seleccione exactamente los tópicos correctos. Cada misión tiene más de una respuesta válida.

    • Todo lo que publica el invernadero — y nada más. resuelta
    • Cada lectura de temperatura, venga de donde venga. resuelta
    • Cada lectura de humedad de la granja, pero no la de casa. resuelta

    Lo que acabas de aprender → + coincide con exactamente un nivel. # coincide con todo lo que hay debajo. Esa única regla es cómo un solo broker reparte a miles de dispositivos sin que ninguno guarde la lista de los demás.

    MQTTMosquittoAWS IoT CoreQoS 0/1/2Pub/Sub

    Ahí empezó. En lo que se convirtió está en la otra página.

    Ver lo que construyo hoy →