Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Um projeto de Jackson Breakell, Tyler McCubbins e Jakob Thaler para EF 230
A agricultura é um fator vital de produção nos Estados Unidos. As safras podem ser utilizadas para uma ampla variedade de finalidades, desde matérias-primas para a produção de roupas, produtos farmacêuticos e aditivos alimentares até o consumo direto de partes da safra, na maioria das vezes os frutos em germinação. A maioria das safras nos Estados Unidos são cultivadas ao ar livre, onde as condições climáticas e a temperatura não podem ser controladas em grande escala. Considerando como as condições climáticas adversas podem afetar drasticamente o crescimento das safras, que por sua vez afetam a economia dos Estados Unidos, o monitoramento das condições de um campo de cultivo torna-se vital.
Nosso dispositivo, o Agricultural Sensor Array, permite que os agricultores monitorem a condição de partes pré-selecionadas de seu campo usando 4 sensores: um sensor de água da chuva, um sensor de umidade do solo, um sensor de temperatura e um sensor fotoelétrico. A combinação desses sensores permite que um agricultor planeje adequadamente a produção da safra da safra, ajuste para pouca ou muita chuva, lide melhor com desastres que podem matar as safras e economizar tempo e problemas ao coletar amostras de solo e usar equipamentos de sensor mais caros. Neste Instructable, iremos orientá-lo através da fiação e codificação por trás de nosso Agrícola Sensor Array, para que você também possa fazer o seu próprio.
Etapa 1: Reúna os materiais necessários
Abaixo está uma lista dos materiais necessários que você precisará para começar"
1. Placa Arduino, de preferência Arduino Uno
2. Placa de ensaio básica
3. 1 resistor de 220 ohms
4. Fios variados de cores diferentes
5. Micro USB para cabo USB
6. Alto-falante montável em placa
7. Sensor fotoelétrico
8. Sensor de temperatura
9. Sensor de água da chuva
10. Sensor de umidade do solo
11. Computador com Matlab 2017 e pacote de suporte Arduino instalado (pacote de suporte pode ser encontrado em Add-Ons)
Etapa 2: conecte a placa e conecte
Comece instalando a fiação da placa conforme mostrado acima ou da maneira que melhor se adapte a você. Existem maneiras literalmente ilimitadas de fazer a fiação da placa, então a configuração exata depende de você. Depois que a placa estiver conectada, comece a conectar seus sensores. A água da chuva, a umidade do solo e os sensores fotoelétricos são todas saídas analógicas, portanto, certifique-se de que estejam conectados à seção de entrada analógica do Arduino. O sensor de temperatura, por outro lado, é uma saída digital, portanto, certifique-se de que ele esteja conectado a uma entrada digital disponível em seu Arduino. O Arduino deve ter saídas para 3,3 V e 5 V, portanto, certifique-se de que os sensores estejam conectados a tensões com as quais são compatíveis.
Depois de ter certeza de que a placa foi conectada corretamente, conecte o cabo Micro USB para USB do seu computador na porta Micro USB do seu computador e ligue o Arduino. Abra o Matlab e, certificando-se de ter instalado o Arduino Support Package em Add-Ons, execute o comando "fopen (serial ('nada'))", sem o ". Um erro deve aparecer, e o erro deve informar você existe um comporta disponível com um número. Execute o comando "a = arduino ('comx', 'uno')", onde x é o número de seu comport, para mapear seu Arduino para um objeto. O LED no Arduino deve piscar rapidamente para indicar que está conectado.
Etapa 3: codificar os sensores fotoelétricos e de temperatura
Antes de iniciar a codificação, anote onde seus sensores estão conectados no Arduino, pois isso será importante para o comando readVoltage. Comece seu código configurando a variável sunshine igual ao comando "readVoltage (a, 'X #') ', onde X # é a porta à qual você está conectado e a está simplesmente chamando o Arduino que você mapeou para essa variável. Inicie uma instrução if e defina a primeira condição para a luz do sol <3. Defina a saída como "info. TOD = 'noite'" para mostrar a hora do dia como uma estrutura e, em seguida, adicione uma instrução else com a saída como "info. TOD = ' day '". Como esta é uma instrução else, não precisamos de uma condição, pois funcionará para todos os outros valores não definidos na instrução if. Certifique-se de terminar sua instrução if com um fim e vá para a programação o sensor de temperatura.
Defina a variável thermo igual a outro comando readVoltage, sendo o comando "readVoltage (a, 'X #')". Em nosso caso, a temperatura teve que ser convertida de unidades de voltagem para Celsius, então a equação "tempC = (thermo-.5). * 100" para converter da voltagem para Celsius. Para facilitar, convertemos a temperatura em Celsius para Fahrenheit, mas isso é puramente opcional.
Código para fins de colagem
luz solar = readVoltage (a, 'A1') se luz solar <3
info. TOD = 'noite'
outro
info. TOD = 'dia'
fim
thermo = readVoltage (a, 'A3');
tempC = (termo-0,5). * 100;
info.tempF = (9 / 5. * tempC) +32
Etapa 4: codificar os sensores de água da chuva e umidade do solo
Conforme declarado na última etapa, certifique-se de saber a quais portas seus sensores estão conectados na placa Arduino, pois isso tornará essa etapa muito menos frustrante. Comece com o sensor de água da chuva e inicie uma instrução if. Defina a primeira condição para "readVoltage (a, 'X #')> 4" e defina sua saída para "info. Rain = 'sem precipitação". Adicione um elseif e defina sua condicional para o comando readVoltage antes, mas defina-o como> 2. Adicione um "&&" para indicar outra condição que deve ser cumprida e defina-o como um comando readVoltage como antes e defina-o como <= 4. A saída será "info. Rain = 'misting'". Finalmente, adicione um else e defina sua saída como "info. Rain = 'downpour'". Pode ser necessário ajustar os valores para as condições com base na umidade ambiente da sala em que está trabalhando.
Em seguida, comece o código para o sensor de umidade do solo e comece com uma instrução if. Defina a condição da instrução if para "readVoltage (a, 'X #')> 4 e adicione a saída" info.soil = 'dry' ". Adicione uma instrução elseif e, usando o comando readVoltage acima, defina-a para> 2. Adicione um "&&" e defina outro comando readVoltage para <= 4. Defina sua saída como "info.soil = 'saturação ideal'". Adicione uma instrução else e defina sua saída como "info.soil = 'flood' ", e não se esqueça de adicionar um final.
Código para fins de colagem
se readVoltage (a, 'A0')> 4 info. Rain = 'sem precipitação'
elseif readVoltage (a, 'A0')> 2 && readVoltage (a, 'A0') <= 4
info. Rain = 'névoa'
outro
info. Rain = 'aguaceiro'
fim
se readVoltage (a, 'A2')> 4
info.soil = 'seco'
elseif readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4
info.soil = 'saturação ideal'
outro
info.soil = 'inundação'
fim
Etapa 5: codificação de saída de alto-falante e caixa de mensagem
As saídas para este dispositivo podem variar amplamente, mas, neste caso, iremos conduzi-lo através de uma saída de alto-falante montada diretamente em um dispositivo e uma saída de caixa de mensagem que pode ser visualizada em um computador remoto. Nosso alto-falante é projetado para emitir frequências diferentes, inferior ou pior, para temperatura ideal de colheita, luz solar, umidade do solo e precipitação. Comece o código de saída do alto-falante com uma instrução if e defina sua condição para o comando "readVoltage (a, 'X #')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Adicione o mesmo comando playTone como mostrado acima, mas altere 200 para 1000 para produzir um tom mais alto e positivo. Em seguida, adicione um outro e adicione o mesmo comando playTone novamente, mas altere 1000 para 1500. Esses tons variáveis indicam a gravidade da situação do campo. Certifique-se de adicionar um final para completar sua declaração if.
Nossa seção final de código será uma saída que produzirá uma caixa de mensagem. Crie uma string usando 'marcas entre colchetes e converta as partes de sua estrutura em strings usando o comando "num2str (info.x)", onde x é um nome de subestrutura na estrutura de informações. Use "string newline" para adicionar novas linhas em sua caixa de mensagem e digite sua mensagem em texto usando as aspas, adicionando o valor real do campo na string usando o comando num2str mencionado anteriormente. Finalmente, com a string definida, use o comando "msgbox (string)" para exibir os dados como uma caixa de mensagem em seu monitor.
Código para fins de colagem
se readVoltage (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)
elseif luz solar> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4
playTone (a, 'D9', 1000, 3)
outro
playTone (a, 'D9', 1500, 5)
fim
string = ['A temperatura é (graus F)', num2str (info.tempF)]
string = [string newline 'O solo é', num2str (info.soil)]
string = [string newline 'A precipitação externa é', num2str (info. Rain)]
string = [string newline 'A hora do dia é', num2str (info. TOD)]
msgbox (string)
Etapa 6: Conclusão
Enquanto o mundo continua dependendo cada vez mais de alternativas sintéticas aos itens anteriormente colhidos das lavouras, a agricultura certamente permanecerá um fator relevante e importante da economia por muito tempo. O monitoramento adequado de terras agrícolas é fundamental para um agricultor obter o máximo de sua colheita e, com nosso dispositivo, não só é possível monitorar toda a área agrícola remotamente, mas também de maneira barata e fácil de instalar e de maneira confiável. Esperamos que este guia tenha se mostrado informativo e fácil de seguir, e esperamos que o dispositivo seja útil para qualquer forma que você deseje implementá-lo ou experimentá-lo.
Boa codificação, A equipe do Agricultural Sensor Array