- 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
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 trabalhoTalvez eu tente fazer isso de verdade neste fim de semana
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
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
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...
Busca na wiki por monitoramento de culturas: https://www.google.com/search?q=crop+monitoring+wikipedia ...
Agricultura de precisão: https://en.wikipedia.org/wiki/Precision_agriculture
Agricultura digital: https://en.wikipedia.org/wiki/Digital_agriculture
Busca por sistemas de monitoramento de culturas no GitHub: https://www.google.com/search?q=crop+monitoring+system+site%...
SIEM: https://en.wikipedia.org/wiki/Security_information_and_event...
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
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/)
É 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
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
É 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
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
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
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