← Voltar para o portfólio

O plus

Antes dos apps, eu fiz a coisa que manda o dado

Esta é a metade da trajetória que veio primeiro, e a origem de tudo o que a outra página movimenta. Eu comecei um nível abaixo — firmware, placas, peças usinadas, e uma sonda de solo projetada, roteada, usinada e enterrada por dois anos — e a Apple Developer Academy foi onde isso virou: a mesma engenharia, movida para cima na pilha. Estes quatro capítulos continuam aqui porque saber quanto custa uma leitura antes de ela chegar no seu app muda o jeito de construir o app, e porque as duzentas e quarenta mil linhas do capítulo de banco de dados saíram de uma coisa como esta.

01 · SILÍCIO AGROM.IO · 2016 – 2019

Tudo começa em um único pino

Muito antes de existir um app, existe um microcontrolador decidindo — milhões de vezes por segundo — se um fio está em nível alto ou baixo. Quatorze firmwares me ensinaram que tudo o que vem acima depende de acertar isto aqui.

pwm_playground.c

GPIO 2

Brilho percebido 50%
Vavg 1.65 V
analogWrite() 128

O que você acabou de aprender → Você acabou de reduzir o brilho de um LED sem nunca mudar a tensão dele. Isso é PWM: o pino só fica totalmente ligado ou totalmente desligado — ele apenas chaveia mais rápido do que o seu olho consegue acompanhar.

C/C++ESP32PIC18F4550ATmegaTimers e PWM

02 · COBRE AGROM.IO · 2016 – 2019

Depois, ele precisa de uma placa

Um esquemático é uma promessa. A PCB é onde ela é cumprida. Toda placa que fabriquei começou exatamente neste quebra-cabeça: levar cada sinal ao seu lugar, numa superfície onde nada pode se cruzar.

router.pcb

Isto não é uma ilustração. É o AGROM.brd, a placa que eu roteei em 2017 para a sonda de solo — 70 mm de diâmetro, duas camadas de cobre, 54 componentes — lido direto do arquivo do EAGLE e desenhado aqui. Escolha uma net e siga ela.

Vista
Camadas
Nets
AGROM.IOTX RX GND

cobre superior cobre inferior via AGROM.brd · EAGLE 7.6 · 2017

Segmentos 754
Trocas de camada 34
Comprimento de cobre 1321 mm

Vermelho corre na face de cima, azul na de baixo. Cada anel amarelo é uma via: um furo metalizado onde a trilha atravessa para o outro lado.

O que você acabou de aprender → Duas trilhas não podem se cruzar na mesma camada. É essa única restrição que faz placas reais terem 2, 4, às vezes 12 camadas empilhadas.

AltiumEAGLESMD e THTGerberDesign para manufatura

03 · AÇO AGROM.IO · 2016 – 2019

E um corpo para sobreviver ao campo

Um sensor enterrado em solo encharcado por dois anos não liga para a elegância do seu firmware. Ele liga para o encapsulamento. Por isso eu mesmo modelo cada peça, cada tolerância, cada vedação.

soil_probe.sldasm

As montagens em que o projeto mecânico está organizado, uma pasta para cada, reconstruídas a partir dos desenhos pelos quais foram usinadas. Escolha uma, desmonte, e leia do que ela é feita.

Produto

carregando as peças impressas…

↔ arraste para girar

Peças
Maior dimensão

Peças torneadas e cortadas são construídas dos seus desenhos cotados. Peças impressas são os STLs de verdade. O arranjo foi ajustado pelos renders de 2017, porque as montagens do SolidWorks não podem ser lidas.

A prova está na estrutura de pastas

O projeto mecânico não está organizado por peça. Está organizado por como cada peça é fabricada — que é a diferença entre modelar uma coisa e especificar ela.

  • 11 Torno e usinagem cada uma com desenho cotado
  • 5 Corte a laser acrílico plano, desenhado e tolerado
  • 7 Impressão 3D as peças carregadas aqui como STL
  • 14 Compra sensores, células, conectores
  • 1 Montagem de cabos um chicote de quatro vias

16 desenhos cotados · 82 itens em 7 listas de material

O que você acabou de aprender → Hardware é a única camada que você não corrige remotamente. É por isso que o projeto mecânico acontece antes da primeira linha de firmware, não depois.

SolidWorksModelagem 3DTolerânciasVedação IPImpressão 3D

04 · SINAL AGROM.IO · 2016 – 2019

Agora faça mil deles conversarem

Um dispositivo é um projeto. Mil dispositivos é uma arquitetura. MQTT é como eles se falam sem nunca se conhecerem — e os curingas de tópico são o truque inteiro.

broker · mqtt://meneghel.me:8883

Um tópico é um caminho. Todo dispositivo desta fazenda publica em um caminho montado com os mesmos quatro níveis — então uma assinatura é, no fundo, uma pergunta sobre quais níveis te interessam.

1 · local

  • farm
  • home

2 · área

  • greenhouse
  • field
  • office

3 · dispositivo

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

4 · medida

  • temp
  • moisture
  • status
  • + casa exatamente um nível, seja qual for o conteúdo
  • # casa tudo o que vier abaixo, e precisa ser o último nível
SUB

Broker — tudo o que está sendo publicado

    Sua caixa — o que chegou até você

    • nada casou ainda
    entregues 0
    não entregues 0
    topics 0 / 8

    Três assinaturas para acertar

    Vale qualquer filtro que selecione exatamente os tópicos certos. Cada missão tem mais de uma resposta correta.

    • Tudo o que a estufa publica — e nada além disso. resolvida
    • Toda leitura de temperatura, venha de onde vier. resolvida
    • Toda leitura de umidade da fazenda, mas não a de casa. resolvida

    O que você acabou de aprender → + casa exatamente um nível. # casa tudo abaixo dele. Essa única regra é como um só broker distribui para milhares de dispositivos sem que nenhum deles guarde a lista dos outros.

    MQTTMosquittoAWS IoT CoreQoS 0/1/2Pub/Sub

    Foi ali que começou. O que isso virou está na outra página.

    Ver o que eu construo hoje →