2 pontos por GN⁺ 2024-11-23 | 1 comentários | Compartilhar no WhatsApp
  • O Monty Home Device Hacking Guide aborda como expandir, com um Raspberry Pi, o dispositivo Monty Home BLE, originalmente voltado para monitoramento de compostagem, para obter, exibir e automatizar dados ambientais como temperatura, umidade e bateria
  • O repositório oferece 3 projetos usando Python, BLE e Raspberry Pi, incluindo controle de LED com base em limiar de temperatura, exibição em OLED I2C e envio de notificações via IFTTT
  • Os comandos BLE incluem temperatura ;QT\r\n, umidade ;QH\r\n, bateria ;QL\r\n, CO2 ;QC\r\n, TVOC ;QO\r\n, versão do firmware ;QV\r\n, reinicialização ;CR\r\n, restauração de fábrica ;CF\r\n e outros
  • O ambiente de execução exige um Raspberry Pi com suporte a BLE, Monty Home BLE Device, Python 3, Bleak, Requests, Adafruit CircuitPython SSD1306, Pillow, entre outros
  • O usuário pode expandir para processamento de outros dados de sensores, integração com dashboards, logging e automações adicionais alterando os comandos BLE nos scripts ou ampliando as condições de notification_handler

Guia para expandir o dispositivo Monty Home BLE

  • O Monty Home Device Hacking Guide é um guia passo a passo para expandir as funcionalidades do dispositivo Monty Home BLE com um Raspberry Pi
  • O dispositivo Monty Home foi originalmente projetado para monitoramento de compostagem e coleta dados de temperatura, umidade e outros indicadores ambientais
  • Este guia é voltado a usuários interessados em dispositivos BLE, aplicações IoT e monitoramento ambiental
  • A compra do Monty Home é indicada em https://montycompost.co/

3 projetos incluídos

  • Controle de LED baseado em temperatura

    • Usa os dados de temperatura do dispositivo Monty Home para controlar um LED no Raspberry Pi
    • Quando a temperatura ultrapassa um limiar definido, o LED acende para indicar um alerta
    • As tecnologias abordadas são controle de LED via GPIO, consulta de dados BLE e processamento condicional em Python
    • O hardware necessário é um Raspberry Pi com suporte a BLE, um LED e um resistor de 330Ω
  • Exibição de temperatura e umidade em OLED I2C

    • Exibe a temperatura e umidade em tempo real obtidas do dispositivo Monty Home em uma tela OLED conectada ao Raspberry Pi
    • Usa um display OLED SSD1306 para exibir dados dinâmicos e implementa busca de dados via BLE e atualização da tela
    • O hardware necessário é um Raspberry Pi com suporte a BLE e um SSD1306 OLED Display, com configurações possíveis de 128x32 ou 128x64
  • Alertas de temperatura via IFTTT

    • Quando a temperatura do dispositivo Monty Home ultrapassa um limiar específico, o Raspberry Pi envia uma notificação por meio do IFTTT
    • Aborda integração com IFTTT para automação IoT, requisições HTTP baseadas na biblioteca requests e combinação de dados BLE com notificações em nuvem
    • O hardware e a conta necessários são um Raspberry Pi com Wi-Fi e uma conta IFTTT

Ambiente de execução e dependências

  • O hardware exige um Raspberry Pi Zero 2 ou outro modelo de Raspberry Pi com suporte a BLE, além do Monty Home BLE Device
  • Dependendo do projeto, são necessários componentes adicionais como LED, display OLED e conta IFTTT
  • O sistema operacional pode ser Raspberry Pi OS Lite ou Raspberry Pi OS with Desktop
  • É necessário ter Python 3 e pip instalados
  • As bibliotecas Python usadas são as seguintes
    • Bleak: para comunicação BLE, pip install bleak
    • Requests: para integração com IFTTT, pip install requests
    • Adafruit CircuitPython SSD1306: para controle de OLED, pip install adafruit-circuitpython-ssd1306
    • Pillow: para processamento de imagens no OLED, pip install pillow

Comandos BLE do Monty Home

  • Os comandos BLE podem ser substituídos ou modificados nos scripts Python para solicitar outros dados ou executar ações
Comando Função
;QA\r\n Retorna o índice de todos os dados na memória flash
;QP\r\n Retorna o índice dos dados pendentes na memória flash
;QR\r\n Retorna um registro por índice; se não houver índice, retorna NACK
;QS\r\n Retorna o status do dispositivo
;QL\r\n Retorna o nível da bateria em porcentagem
;QT\r\n Retorna a medição de temperatura do sensor NTC
;QH\r\n Retorna a medição de umidade relativa
;QO\r\n Retorna a medição mais recente de TVOC
;QC\r\n Retorna a medição mais recente de CO2
;QU\r\n Retorna o ID exclusivo do dispositivo
;QV\r\n Retorna a versão do firmware do dispositivo
;CR\r\n Reinicia o dispositivo
;CF\r\n Executa a restauração de fábrica

Como executar o código

  • Cada projeto inclui um script Python que configura a conexão BLE, envia consultas e processa os dados
  • A sequência de execução é acessar a pasta do projeto pelo terminal do Raspberry Pi e então executar o script
cd /path/to/project
python3 project_script.py
  • project_script.py deve ser substituído pelo nome real do arquivo; um exemplo é project1_temperature_led.py

Pontos de customização

  • Ao alterar o comando BLE, é possível obter outros tipos de dados
  • Por exemplo, para consultar umidade em vez de temperatura, substitua o comando assim
command = ";QT\r\n"
command = ";QH\r\n"
  • Ao adicionar condições à função notification_handler, é possível decodificar e exibir vários tipos de dados, como temperatura e umidade
  • Os dados podem ser integrados a plataformas IoT ou dashboards para visualização em tempo real, logging e automações adicionais

Referências

1 comentários

 
GN⁺ 2024-11-23
Opiniões no Hacker News
  • Tive uma ideia. Tenho uma grande pilha de composto que saiu da limpeza das baias dos cavalos, composta principalmente de cavacos de madeira encharcados de urina e esterco de cavalo quase decomposto, com um pouco de terra misturada
    Neste verão plantei batatas e cenouras: as batatas foram muito bem, e as cenouras nem tanto, mas acho que foi por eu ter regado errado
    Como ainda não parece estar completamente decomposto, medir a temperatura deve indicar quão ativo ele está. Também tenho um sensor de temperatura baseado em ESP8266 que eu usava antes para acompanhar a temperatura ambiente em outro projeto de fermentação
    Acho que basta vedar o termistor, colocar o 8266 em uma caixa IP67 e espetá-lo no topo da pilha de composto junto com uma célula solar. Ele já serve uma página web em um domínio .local, então deve dar pouquíssimo trabalho
    Talvez eu tente fazer isso de verdade neste fim de semana

    • Talvez o solo estivesse fértil demais para as cenouras. Pela minha experiência, nitrogênio demais faz as folhas crescerem bem, mas a formação das raízes não acontece direito
    • É por causa da urina. Se você espalhar a pilha em uma camada larga e deixá-la secar ao sol, como se fosse branqueá-la, dá para volatilizar a amônia
    • Isso é esterco quente. Regras de jardinagem muitas vezes estão erradas e são exigentes demais, mas, como ponto de partida, dá para ver assim
      Esterco quente tem muitos compostos de nitrogênio, por isso se decompõe rapidamente na pilha de compostagem e gera bastante calor no processo. Estufas tradicionais usavam a energia do esterco em decomposição para cultivar mudas e estacas no inverno, e esterco de galinha, pato e cavalo entra nessa categoria
      Esterco frio tem menos nutrientes e gera menos calor ao se decompor, então há menor risco de queimar as plantas. Animais ruminantes, como vacas, cabras e ovelhas, se enquadram nisso porque extraem a maior parte do nitrogênio da alimentação vegetal durante a digestão. Lhamas e alpacas não são ruminantes, mas o esterco delas tem poucos nutrientes, então pode ser considerado frio
  • Não quero desmerecer o produto, mas pessoalmente acho que não precisaria dele. Ainda assim, fico curioso se vocês analisaram qual teria de ser a escala da compostagem para que o monitoramento eletrônico melhorasse o produto final o suficiente para recuperar o investimento
    Tenho a impressão de que teria de ser uma escala bem grande
    Gosto da vibe meio cogumelo do design doméstico, e talvez teria sido bom apostar mais nesse lado

    • É verdade que o monitoramento eletrônico ganha mais valor conforme a escala aumenta, e por isso a linha Monty Pro planejada é voltada para instalações industriais de compostagem e operações de grande porte
      Nesses ambientes, insights baseados em dados realmente ajudam na eficiência e na redução de custos, seja otimizando ciclos de aeração, seja detectando ineficiências antes que elas fiquem caras. O site do produto pode ser visto aqui: (https://www.monty-pro.com)
      Em casa, o foco é menos em redução de custos e mais em oferecer insights convenientes para que usuários cotidianos de compostagem aproveitem melhor os resultados do próprio esforço. O objetivo é enriquecer a experiência de compostagem como um todo em pequena escala
    • Pelos requisitos de hardware do projeto, o equipamento fica na faixa de cerca de US$ 100. O custo de entrada é bem baixo
      Hardware Requirements
      
      Raspberry Pi (Zero 2 or another model with BLE support).  
      Monty Home BLE Device.  
      Additional hardware specific to each project, such as an LED, OLED display, and IFTTT account.  
      
  • collectd é um sistema de monitoramento open source que, por exemplo, pode gravar em arquivos planos RRD ou em SQLite, e pode encaminhar as métricas coletadas para apps de monitoramento, gráficos e detecção de anomalias como Grafana ou InfluxDB
    O Nagios tem um recurso de "state flaping detection" para evitar alertas desnecessários
    O collectd-python-plugins inclui scripts para monitorar umidade e temperatura com sensores i2c e Python: https://github.com/dbrgn/collectd-python-plugins
    Também existem sensores LoRaWAN de umidade do solo, mas eles precisam de bateria ou algum método de recarga em campo
    "Satellite images of plants' fluorescence can predict crop yields" (2024)
    "Sensor-Free Soil Moisture Sensing Using LoRa Signals (2022)" https://dl.acm.org/doi/abs/10.1145/3534608 .. https://news.ycombinator.com/context?id=40234912
    Busca por sensores de umidade do solo open source: https://www.google.com/search?q=open+source+soil+moisture+se...

  • Fico curioso para saber quais fabricantes e modelos de sensores vocês usam. Em projetos de hobby, tentei fazer monitoramento ambiental com sensores muito baratos e tive experiências bem ruins com a repetibilidade das leituras e a imunidade a ruído dos sensores de CO2
    Também houve uma discussão relacionada no HN, e graças a ela percebi e consegui verificar que o ruído era a causa do problema
    Tenho algumas ideias de projetos que vão além do nível de montar algo em protoboard em casa, e como o lado de software e infraestrutura está amadurecendo, agora quero construir em cima de componentes confiáveis

    • No sistema Monty usamos sensores da Bosch e da Sensirion. Na fase inicial de protótipo testamos cerca de 20 tipos de sensores, e eles apresentaram os resultados mais fáceis de lidar em vários ambientes de compostagem
      Se você puder compartilhar mais sobre suas ideias de projeto, podemos conversar mais a fundo na medida em que for útil
  • É bom ver aumentar um monitoramento de compostagem em pequena escala mais abrangente e escalável. A comunidade Gathering for Open Ag Tech também pode se interessar (https://forum.goatech.org/)

    • Pretendo postar lá
  • É legal, mas fico pensando se, para manter uma compostagem quente, não basta simplesmente um termômetro. Se meu composto passa de 45°C, é uma indicação bem confiável de que há microrganismos termofílicos presentes e trabalhando

    • Para alguém que quer manter uma pilha básica de compostagem quente ativa, é verdade que um termômetro é uma ótima ferramenta
      Mas nosso sistema brilha quando você quer ir um pouco mais fundo. Por exemplo, ao adicionar dados de gases, nível de umidade e pressão atmosférica, dá para diagnosticar problemas ou otimizar o processo com mais eficácia. Você consegue ver coisas como se a atividade é aeróbica ou anaeróbica, ou se a umidade está excessiva para algum dos lados
      Esses insights ajudam quando a configuração da compostagem ou os insumos ficam mais complexos, ou quando o processo parou e você não sabe por quê. Claro que nem todo mundo precisa de todos os recursos; um termômetro confiável e intuição para compostagem já bastam para fazer um composto ótimo e saudável
    • Meu composto mal consegue subir mais de 5°C acima da temperatura ambiente. Acho que o principal motivo é que a composteira não é grande o bastante
      É um recipiente de plástico preto em formato de Dalek, então tem volume demais em relação à área de superfície, e também fica em um lugar com muita sombra
    • Como confirmar se o processo metabólico que gera essa temperatura está de fato acontecendo?
  • Tenho mais curiosidade sobre a utilidade prática dos valores dos sensores obtidos ao monitorar compostagem. Temperatura e umidade são intuitivas, mas, por exemplo, a composição dos gases indica a proporção carbono/nitrogênio ou serve para verificar se a pilha está ficando anaeróbica?
    Também fico curioso se a pressão atmosférica é um indicador indireto geral da velocidade de decomposição
    E gostaria de saber se algo aprendido com o monitoramento chegou a mudar seus hábitos reais de compostagem

    • Para explicar melhor o uso dos valores dos sensores, o gás que monitoramos principalmente são os compostos orgânicos voláteis totais (TVOC), e isso funciona como um indicador indireto geral da atividade de decomposição
      Quando visto junto com os dados de temperatura, dá para saber muito bem se a atividade é aeróbica, ou seja, se é uma pilha de composto saudável, ou se é anaeróbica, o que é indesejável e pode gerar mau cheiro. Por exemplo, se o TVOC dispara em uma situação de baixa disponibilidade de oxigênio, é bem provável que sejam condições anaeróbicas
      A pressão atmosférica é usada no Monty Mobile, o app complementar, como parte da detecção de eventos de revolvimento da pilha. O app também analisa, junto com outros dados, como mudanças nas condições, como níveis de umidade ou frequência de revolvimento, afetam a decomposição
      Para a maioria dos usuários, basta um indicador indireto geral para entender se a pilha está "ativa" ou "estagnada". Com isso, é possível ajustar o processo adicionando materiais marrons, regulando a umidade ou aumentando a aeração
      Os resultados do composto variam muito conforme a configuração, como tumbler, composteira, minhocário, e os insumos, como esterco, restos de comida e resíduos de jardim. Ainda assim, os dados 24 horas por dia do nosso sistema simplificam o processo de mudança de comportamento
      Em vez de depender do método de "tentar, esperar e tentar de novo", você recebe feedback imediato, o que pode fazer uma grande diferença tanto para iniciantes quanto para pessoas experientes
      Pessoalmente, o Monty também foi uma ótima ferramenta de aprendizado. Usando o app Monty Mobile, passei a prestar mais atenção na pilha de composto e também a lembrar melhor de ajustar a pilha adicionando materiais quando necessário. Sinto que estou mais conectado ao que realmente acontece lá dentro
  • Há muito tempo queria fazer um projeto parecido. Seria algo como uma única estaca enfiada no vaso que medisse composição do solo, níveis de nutrientes, umidade, velocidade do vento, luminosidade, umidade do ar etc., para dar recomendações de cuidado com a planta e otimizar o crescimento
    No fim, ainda não fiz. Fico curioso se há alguma recomendação de sensores para comprar

    • Já fiz um projeto de hobby desse tipo com umidade do solo. É um repositório bagunçado que criei quando quase não sabia programar, mas ele aponta para alguns guias de sensores capacitivos: https://github.com/smcalilly/sensor
    • No nosso sistema, usamos sensores da Bosch e da Sensirion. Eles têm boa confiabilidade e durabilidade mesmo em um ambiente em que calor, umidade e atividade microbiana, como em uma pilha de composto, colocam os eletrônicos à prova de forma severa
      Encontrar os sensores certos envolveu muita tentativa e erro, especialmente porque as condições de compostagem são muito severas. Se você retomar o projeto, eu gostaria de torcer por ele ou comparar anotações
  • O Monty Monitor pode ser conferido aqui: https://montycompost.co/products/im-perfect-monty-monitor

  • Não sei como vocês leram minha mente, mas, por uma coincidência incrível, eu estava justamente agora procurando termopares para monitoramento de compostagem