Sistema de monitoramento de planta de IoT do Windows 10
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 |
Aplicativos e serviços online
| ||||
|
Sobre este projeto
Introdução ao projeto
Este projeto tem como objetivo criar um sistema de monitoramento e irrigação de plantas. A principal tarefa é controlar o servo, retransmitir e coletar os dados de umidade do solo das plantas. Uma grande quantidade de sensores usa sinal analógico como saída, mas o Raspberry Pi não tem um conversor analógico para digital. Para resolver esse problema, usei um módulo ADC externo e um gateway Arduino porque eles integraram o ADC. Quando queremos interagir com o ambiente, geralmente precisamos da modulação por largura de pulso. Encontrei 3 maneiras de resolver este problema. O primeiro é o software PWM, o segundo é o gateway Arduino e o último deve usar um módulo / IC compatível com PWM. Implementei os dois primeiros métodos porque já implementei um dispositivo I2C antes. O ADC e o PWM são usados com frequência no mundo do Arduino, portanto, se quisermos usar GPIO no Raspberry Pi, geralmente queremos que pelo menos um desses recursos seja executado em nosso Raspberry.
O aplicativo
O aplicativo possui dois modos:um modo automático quando detecta se a planta precisa de um pouco de água e um modo manual onde você pode controlar os servos e relés manualmente. Como o servo pode girar aproximadamente 180 graus, um servo pode regar apenas 2 plantas. O modo automático é o padrão. Quando lemos os sensores de umidade do solo, categorizamos seu valor. Existem 5 categorias. O mais seco está nas categorias 5 e marcado em vermelho na GUI. Seu oposto, a categoria 1, é marcado em verde. Um cronômetro verificará periodicamente esses valores e se a categoria de 'planta A' ou 'planta B' for superior ao aceitável (então o solo está muito seco) rega a mais seca. No mesmo período, o programa verifica e rega as outras duas instalações ('unidade C' e 'unidade D') de forma semelhante e faz isso em todos os períodos.
Os componentes
- Servo SG90:
Conduzir um servo geralmente requer uma grande frequência de clock GPIO. O provedor padrão não é bom o suficiente, então usei o provedor de iluminação. Houve um problema com a primeira fonte de alimentação do Pi. Eu li em algum lugar que o Pi pode precisar de um melhor desempenho e o servo consome muita energia em comparação com outros sensores. Esses dois resultaram em problemas de desempenho. Agora, com o carregador do iPad, ele funciona muito melhor, mas às vezes ainda hesita. Um servo-circuito com fonte de alimentação externa poderia resolver o problema como este:
E como eu pensei que isso resolveu o problema e agora funciona perfeitamente. Eu conectei o Vcc do servo na fonte de alimentação 5V e o sinal continua o mesmo e temos terra comum. Aqui está a nova conexão:
Finalmente, não é necessário fazer dessa forma. Talvez uma fonte de alimentação melhor para o Raspberry Pi ou refinamento no software resolvesse todos os problemas com o servo.
- ADS1115 16 bits I2c ADC:
Tentei incorporar todas as funções ao ADC ADS1115 de 16 bits. Mas ainda está em desenvolvimento. Por exemplo, os registros de limite não são definidos e merecem um projeto / tutorial próprio. Em suma, está quase pronto para ser um driver ADC totalmente funcional. Pode haver alguns problemas lógicos e todas as funções integradas não foram completamente testadas.
- Sensor de temperatura e pressão BMP180 I2c:
O driver BMP180 que usei é basicamente o mesmo que este projeto usa. Modifiquei apenas a inicialização porque não era totalmente compatível com o provedor de iluminação. Suponho que medir a temperatura e pressão pertence a projetos como estação meteorológica, monitoramento de planta e outros projetos semelhantes.
- Relé:
Conduzir um relé requer operações GPIO simples. É muito fácil de entender a partir do código-fonte.
- Circuito fotodiodo:
Usei este módulo porque essa medição também pode ser útil em projetos semelhantes. O circuito do amplificador pode ser encontrado na documentação do LTC 1050. O fotodiodo é um Osram BPW 21 otimizado para a luz do dia.
- Gateway Arduino:
Para o gateway usei um Arduino Due porque ele tem 3,3 V puxou o barramento I2C. Eu poderia ter usado um conversor de nível de tensão ou um outro barramento com seu próprio pull up (se eu conheço bem o Arduino 2560 e algumas outras placas tem mais barramentos I2C e eles não estão puxados para que você possa usá-los). O código é bastante simples.
- Sensor de umidade do solo:
Eu usei os chineses com módulos de comparação.
Resumo do projeto
Na minha opinião, este projeto pode ser útil para dar uma idéia básica de como regar nossas plantas e existem alguns recursos que você pode querer aplicar em seus próprios projetos, como:
- Comunicação com uma placa Arduino no barramento I2C (gateway Arduino)
- ADC em Raspberry Pi
- PWM no Raspberry Pi (servo)
Planos futuros
- conectividade do Azure
- Aplicativo móvel com Xamarin
- Substitua I2C por Bluetooth para se comunicar com o Arduino
Código
Código Arduino
https://github.com/horvathm/plant-monitoring-system-arduino.gitCódigo Raspberry Pi
https://github.com/horvathm/plant-monitoring-system-raspberry.gitEsquemas
O diagrama do circuito pode ser encontrado na documentação do LTC 1050Processo de manufatura
- IoT celular:Lixeira inteligente
- Windows IoT:Porta de reconhecimento facial
- Windows 10 IoT Core e SHT15
- Windows 10 IoT Core para Raspberry Pi 3 Modelo B +
- Núcleo IoT do Windows 10:robô controlado por fala
- GoPiGo v2 com Windows IoT
- Sistema de gestão florestal IoT de dupla finalidade
- Sistema de monitoramento remoto de tanque de óleo e diesel baseado em IoT
- 8 Benefícios do Sistema de Monitoramento de Peso da Frota baseado em IoT
- Melhore o armazenamento de leite com uma pitada de IoT:sistema de monitoramento de nível de leite