Índice:
- Etapa 1: Sensores de solo
- Etapa 2: Sensor Animal
- Etapa 3: Controlador da bomba de água
- Etapa 4: Sensor de chuva
- Etapa 5: Sirene Animal
- Etapa 6: Sistema Principal
- Etapa 7: O sistema da web
Vídeo: Sistema de jardim sem fio: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Este projeto é baseado no Arduino e usa "módulos" para ajudá-lo a regar suas plantas e obter temperatura, solo e chuva.
O sistema é wireless em 2,4 GHz e usa módulos NRF24L01 para enviar e receber dados. Deixe-me explicar um pouco como funciona, PS! Com licença, se o inglês não estiver 100% correto, sou da Suécia.
Eu uso este sistema para controlar minhas plantas, mas eu tenho plantas diferentes que eu precisava para extraí-las diferentes. Então eu construo um sistema de registro baseado em zonas.
Os sensores de solo que lêem a umidade e a temperatura do solo (funciona com bateria) verifica a cada hora e passa os dados para a máquina base que tem uma conexão wi-fi. Os dados são enviados para um servidor em minha casa e se conecta a uma página da web.
Se o solo precisar de água, ele ativará a bomba correta dependendo do que o sensor de solo verificou. Mas se chover não regará. E se estiver muito quente vai regar um pouco mais.
Digamos que você tenha um terreno de batata, um para tabaco e outro para tomate, então você pode ter 3 zonas com 3 sensores diferentes e 3 bombas.
Há também sensores pir que verificam os movimentos e, se ativados na página, uma sirene alta começará a assustar o animal ou a pessoa que estiver passando perto das minhas plantas.
Espero que você entenda um pouco. Agora vamos começar a fazer alguns sensores.
Minha página GitHub onde você baixa tudo:
Etapa 1: Sensores de solo
Cada sensor possui um número exclusivo que é adicionado à página da web. Portanto, quando o sensor de solo está transmitindo, os dados desse sensor de solo serão adicionados à zona correta. Se o sensor não for registrado, nenhum dado será enviado.
Para esta construção, você precisa:
- 1x chip Atmega328P-PU
- 1 módulo nRF24L01
- 1x 100 uf capacitor
- 1x NPN BC547 Transistor
- 2x 22 capacitores pF
- 1x cristal de 16.000 MHz
- 1x sensor de umidade do solo
- 1x sensor de temperatura DS18B20
- 1x RGB Led (ânodo comum é usado por mim)
- 3 resistores de 270 ohms
- 1x resistor de 4, 7 K ohm
- Bateria (eu uso bateria Li-Po de 3,7 V)
- E se li-po for usado, um módulo carregador de bateria.
Para manter os sensores funcionando por muito tempo, não use nenhuma placa Arduino pré-fabricada, eles esvaziarão a bateria rapidamente. Em vez disso, use o chip Atmega328P.
Conecte tudo como mostra minha ficha elétrica. (Ver imagem ou arquivo PDF) Recomenda-se também adicionar um botão liga / desliga, para que você possa cortar a energia durante o carregamento.
Ao fazer o upload do código, não se esqueça de definir o sensor para dar a eles um número de identificação exclusivo, o código está disponível na minha página GitHub.
Para manter os sensores de solo vivos por muito tempo, eu uso um transistor NPN para ligá-los, apenas quando a leitura começa. Para que não fiquem sempre ativados, cada sensor tem um número de identificação de 45XX a 5000 (pode ser alterado) então cada sensor deve ter números únicos, basta definir no código.
Os sensores irão hibernar para economizar bateria.
Etapa 2: Sensor Animal
O Animal Sensor é um sensor pir simples. Ele sente o calor de animais ou humanos. Se o sensor está detectando movimento. Eles serão enviados para a estação base.
Mas não vai soar nenhum alarme, para isso, na página você tem que ativá-lo, ou se você configurou um cronômetro ele vai ativar automaticamente esse tempo.
Se a base obtiver um sinal de movimento do sensor Animal, ela o passará para o sensor Siren e (espero) assustará o animal. Minha sirene está em 119 db.
O sensor pir funciona com bateria e coloquei-o em uma caixa com sensor pir de um alarme antigo. O cabo que está saindo do sensor animal serve apenas para carregar a bateria.
Para este sensor, você precisa de:
- Chip ATMEGA328P-PU
- 1 x cristal de 16 000 MHz
- 2 x 22 capacitor pF
- 1 x módulo de sensor Pir
- 1 x 100 uF capacitor
- 1 x módulo NRF24L01
- 1 x Led (não uso nenhum led RGB aqui)
- 1 x resistor de 220 ohms
- Se você vai funcionar com bateria, você precisa disso (eu uso Li-Po)
- Um módulo carregador de bateria, se você tiver uma bateria recarregável.
- Algum tipo de botão liga / desliga.
Conecte tudo como você vê na folha elétrica. Verifique se você pode alimentar seu sensor pir com a bateria (alguns precisam de 5v para funcionar).
Pegue o código do meu GitHub e defina o sensor de bruxa que você vai usar (Ex: SENS1, SENS2 etc) para que eles obtenham números únicos.
O chip ATMEGA só será ativado quando o movimento for registrado. Pecados, o módulo do sensor pir tem temporizador embutido para atraso, não há nada para isso no código, então ajuste o potenciômetro no sensor pir para o atraso em que ele será ativado.
É isso para o sensor animal, estamos avançando.
Etapa 3: Controlador da bomba de água
O controlador da bomba de água deve iniciar uma bomba ou válvula de água para regar seus campos. Para este sistema, você não precisa de uma bateria, você precisa de energia para fazer sua bomba funcionar. Eu uso um módulo AC 230 a DC 5 v para operar um Arduino Nano. Também tenho vários tipos de bomba, uma que usa uma válvula de água que funciona em 12 v para que eu tenha um módulo AC 230 a DC 12v para a placa de relé.
O outro é de 230 AC no relé para que eu possa alimentar uma bomba de 230 V AC.
O sistema é bastante simples, cada controlador de bomba tem números de identificação únicos, então vamos dizer que o campo de batata está seco e o sensor está configurado para água automática, então minha bomba que é para o campo de batata é adicionada a esse sensor, então o sensor de solo está dizendo ao sistema de base que a rega deve começar, então o sistema de base envia um sinal para que a bomba seja ativada.
Você pode definir quanto tempo ele deve ser executado na página da web (por exemplo, 5 minutos), os sensores verificam apenas a cada hora. Além disso, quando a bomba parar, ela armazenará o tempo no sistema para que o sistema automático não dê partida na bomba tão cedo. (Também é possível configurar na página da web).
Também pode através da página web desactivar a rega durante a noite / dia, definindo horas especiais. E também configure temporizadores para cada bomba para iniciar a rega. E se chover eles não vão regar.
Espero que você entenda:)
Para este projeto, você precisa de:
- 1 x Arduino Nano
- 1 x módulo NRF24L01
- 1 x 100 uF capacitor
- 1 LED RGB (ânodo comum é usado por mim)
- 3 x resistores de 270 ohms
- 1 x placa de relé
Conecte tudo como a ficha elétrica (veja arquivo pdf ou imagem) Baixe o código do GitHub e não se esqueça de definir o número do sensor.
E agora que você tem um controlador de bomba, o sistema pode lidar com mais de um.
Etapa 4: Sensor de chuva
O sensor de chuva é usado para detectar chuva. Você não precisa de mais de um. Mas é possível adicionar mais. Este sensor de chuva é alimentado por bateria e verifica a cada 30 minutos se há chuva. Eles também têm um número exclusivo para identificá-los.
O sensor de chuva está usando pinos analógicos e digitais. O pino digital serve para verificar se está chovendo (o digital apenas exibe sim ou não) e você deve definir a panela no módulo do sensor de chuva quando estiver tudo bem para avisar sobre "chover" (o nível de água no sensor que indica chovendo.)
O pino analógico é usado para informar em porcentagem o quão úmido está no sensor.
Se o pino digital detectar que é chuva, o sensor irá enviá-lo para o sistema de base. E o sistema básico não regará as plantas enquanto estiver "chovendo". O sensor também informa o quão úmido está e o status da bateria.
Nós só ligamos o sensor de chuva quando é hora de ler através do transistor que habilita através de um pino digital.
Para este sensor, você precisa de:
- Chip ATMEGA328P-PU
- 1x cristal de 16 000 MHz
- 2x 22 pF capacitor
- 1x módulo de sensor de chuva
- 1x capacitor 100 uF
- 1 módulo NRF24L01
- 1x RGB Led (usei ânodo comum, é VCC em vez de GND)
- 3 resistores de 270 Ohm
- 1x transistor NPN BC547
- 1 bateria (eu uso Li-Po)
- 1x módulo de carregador Li-Po (se usada bateria Li-Po)
Conecte tudo como você vê na ficha elétrica (em pdf ou na imagem; em seguida, carregue o código para o chip ATMEGA como você pode encontrar na minha página do GitHub em Sensor de chuvaNão se esqueça de definir o sensor para obter o número de identificação correto.
E agora você terá um sensor de chuva que funciona a cada 30 minutos. Você pode alterar a hora neste se quiser menos ou mais.
Na função counterHandler () você pode configurar o tempo de despertar para o chip. Você calcula assim: Os chips acordam a cada 8 segundos e cada vez que ele aumenta um valor. Portanto, por 30 minutos você terá 225 vezes antes de fazer as ações. Portanto, são 1.800 segundos em meia hora. Então, divida por 8 (1800/8) você obterá 225. Isso significa que ele não verificará o sensor até que ele execute 225 vezes e isso levará cerca de 30 minutos. Você faz o mesmo no sensor de solo também.
Etapa 5: Sirene Animal
A sirene de animais é simples quando o sensor de animais detecta movimento a sirene é ativada. Eu uso uma sirene de verdade, então posso até assustar as pessoas com ela. Mas você também pode usar sirenes que só os animais ouvem.
Eu uso um Arduino nano neste projeto e o alimentei com 12v. A sirene também é de 12 V, então, em vez de um relé, usarei um transistor 2N2222A para habilitar a sirene. Se você usar um relé quando tiver o mesmo aterramento, poderá danificar seu Arduino. É por isso que uso um transistor para ativar a sirene.
Mas se a sua sirene e o Arduino não usam o mesmo aterramento, você pode usar um relé. Ignore o transistor e o resistor de 2.2K e use uma placa de relé. E também a mudança no código do Arduino quando ativado muda de HIGH para LOW e quando inativado muda de LOW para HIGH och leitura digital para o pino 10, o relé usa LOW para ativar e o transistor usa HIGH então você precisa mudar isso.
Para esta construção, você precisa de:
- 1x Arduino nano
- 1x Resistor 2.2K (ignore se estiver usando placa de relé)
- 1x 2N2222 Transistor
- 1x sirene
- 3x resistor de 270 Ohm
- 1x RGB Led (eu uso ânodo comum, VCC em vez de GND)
- Módulo 1X NRF24L01
- 1x 100 uF capacitor
Conecte tudo como você vê na folha elétrica em PDF ou na imagem. Carregue o código para o Arduino que você encontra na minha página do GitHub em Animal SirenNão se esqueça de definir o sensor para o número de ID correto.
E agora você tem uma sirene funcionando.
Etapa 6: Sistema Principal
O sistema principal é o mais importante de todos os módulos. Sem ele você não pode usar este sistema. O sistema principal está conectado à internet com o módulo ESP-01 e estamos usando pinos Arduino Megas Serial1 para conectá-lo. O RX no Mega para o TX no ESP, mas precisamos passar por dois resistores para baixar o volt para 3,3. E o TX no Mega para RX no ESP.
Configure o Módulo ESP
Para usar o ESP, primeiro você precisa definir a taxa de transmissão para 9600, é o que usei neste projeto e descobri que o ESP funciona melhor. Fora da caixa, ele definido para 115200 baud rate, você pode tentar, mas o meu não era tão estável. Para fazer isso você precisa de um Arduino (Mega funciona bem) e você precisa conectar o TX do ESP (através dos resistores como você vê na folha) ao TX Serial (não Serial1 se estiver usando Mega) e RX do ESP ao Arduino Serial RX.
Faça o upload do esboço intermitente (ou qualquer esboço que não use serial) e abra o monitor serial e defina a taxa de transmissão para 115200 e NR e CR nas linhas
Na linha de comando, escreva AT e pressione Enter. Você deve receber uma resposta que diz OK, agora sabemos que o ESP está funcionando. (Se não houver problema de conexão ou módulo ESP-01 com defeito)
Agora, na linha de comando, escreva AT + UART_DEF = 9600, 8, 1, 0, 0 e pressione enter.
Ele responderá com um OK e isso significa que definimos a taxa de transmissão em 9600. Reinicie o ESP com o seguinte comando: AT + RST e pressione Enter. Altere a taxa de transmissão no monitor serial para 9600, insira AT e pressione Enter. Se você receber um OK de volta, o ESP está configurado para 9600 e você pode usá-lo para o projeto.
O Módulo de Cartão SD
Quero que seja fácil alterar as configurações de WIFI do sistema, caso uma nova senha seja alterada ou o nome do wi-fi seja alterado. É por isso que precisamos do módulo SD Card. Dentro do cartão SD, crie um arquivo de texto com o nome config.txt e estamos usando JSON para ler, então precisamos de um formato JSON. Portanto, o arquivo de texto deve ter o seguinte texto:
}
Altere o texto com as letras GRANDES para corrigir para sua rede wi-fi.
Pecados, estamos usando NRF24L01 que usa SPI e o leitor de cartão SD também usa SPI, precisamos usar a biblioteca SDFat para que possamos usar SoftwareSPI (podemos adicionar o leitor de cartão SD em qualquer pino)
Sensor DHT
Este sistema é colocado no exterior e possui um sensor DHT para que possamos verificar a umidade e a temperatura do ar. É usado para rega extra em dias quentes.
Para esta construção, você precisa:
- 1x Arduino Mega
- 1 módulo NRF24L01
- 1x Módulo ESP-01
- 1x Módulo de Cartão Micro SD SPI
- 1 sensor DHT-22
- 1x LED RGB (usei ânodo comum, VCC em vez de GND)
- 3 resistores de 270 Ohm
- 1 resistor de 22 K Ohm
- 2 resistor de 10 K Ohm
Observe que se você não deixar o módulo ESP-01 estável, tente alimentá-lo com uma fonte de alimentação externa de 3,3 V.
Conecte tudo como você vê na ficha elétrica no arquivo PDF ou na imagem.
Faça upload do código para o seu Arduino Mega e não se esqueça de verificar o código inteiro para comentários, porque você precisa definir o host para o servidor em vários locais (não é a melhor solução que conheço).
Agora seu sistema básico está pronto para uso. Você não precisa alterar as variáveis no código para os pecados de umidade do solo, você pode fazer isso diretamente na página da web.
Etapa 7: O sistema da web
Para usar o sistema, você também precisa de um servidor web. Eu uso um raspberry pi com Apache, PHP, Mysql, Gettext. O sistema da web é multilíngue, então você pode fazer isso facilmente no seu idioma. Ele vem com sueco e inglês (o inglês pode ter inglês incorreto, minha tradução não é 100%). Portanto, você precisa ter o Gettext instalado para o seu servidor, e também os locais.
Mostro algumas imagens acima do sistema.
Ele vem com um sistema de login simples e o login principal é: admin como usuário e water como senha.
Para usá-lo, você deve configurar três cron jobs (você os encontra na pasta cronjob)
O arquivo timer.php que você precisa para rodar a cada segundos. Isso mantém toda a automação para o sistema de furo. O nome do arquivo temperatur.php é usado para dizer ao sistema para ler a temperatura do ar e registrá-la. Portanto, você precisa configurar um cron job sobre a frequência com que irá executá-lo. Eu o tenho a cada 5 minutos. Então, o arquivo chamado dagstatistik.php deve ser executado apenas uma vez antes da meia-noite (como 23:30, 23:30). Ele pega os valores informados pelos sensores durante o dia e os salva para estatísticas semanais e mensais.
Observe que este sistema armazena a temperatura em Celsius, mas você pode alterar para Fahrenheit.
No arquivo db.php você configura a conexão do banco de dados mysql para o sistema.
Primeiro, adicione os sensores ao sistema. Em seguida, crie zonas e adicione sensores às zonas.
Se você tiver dúvidas ou encontrar bugs no sistema, relate-os na página do GitHub. Você pode usar o sistema web e não tem permissão para vendê-lo.
Se você tiver problemas com os locais para gettext, lembre-se de que se você usar o raspberry como servidor, eles geralmente são nomeados como en_US. UTF-8, portanto, você precisa fazer essas alterações no arquivo i18n_setup.php e na pasta locale. Caso contrário, você ficará preso ao idioma sueco.
Você faz o download na página do GitHub.
Recomendado:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio TP Link WN7200ND USB no trecho Raspbian: 6 etapas
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio USB TP Link WN7200ND no Raspbian Stretch: Raspberry Pi é ótimo para criar pontos de acesso sem fio seguros, mas não tem um bom alcance, usei um adaptador sem fio USB TP Link WN7200ND para estendê-lo. Quero compartilhar como fazer por que quero usar um pi de framboesa em vez de um roteador?
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: 4 etapas
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: Tenho assistido a alguns vídeos e bandas e quase todas usam um sistema sem fio na guitarra. Enlouquecer, mover-se, caminhar e fazer o que quiserem sem o cabo, então sonho em ter um .. Mas .. para mim agora é muito caro então eu vim para isso
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: 4 etapas
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: recentemente construí um sistema de alarme e o instalei em minha casa. Usei interruptores magnéticos nas portas e os conectei através do sótão. As janelas eram outra história e fiação direta não era uma opção. Eu precisava de uma solução sem fio e isso é
Converter roteador sem fio em ponto de acesso 2x do extensor sem fio: 5 etapas
Converter Roteador Wireless em Ponto de Acesso Wireless Extender 2x: Eu tinha uma conexão de internet wireless ruim em minha casa devido a um RSJ (viga de suporte de metal no teto) e queria aumentar o sinal ou adicionar um extensor extra para o resto da casa. Eu tinha visto extensores por cerca de £ 50 em um eletro