Estou trabalhando em um projeto que depende da comunicação sem fio e estou procurando a melhor alternativa. Estes são os requisitos de design:
- É fácil interagir com o Arduino
- Funciona em uma pequena faixa (5-6 metros no máximo)
- Consome pouca energia - o mínimo possível
- Os dispositivos não devem interferir entre si
- Não precisa ser em tempo real, o atraso pode ser da ordem de centenas de milissegundos
- Em geral, os dispositivos não estão à vista um do outro (o que significa que soluções de IR e similares não funcionam)
O cenário é:
Cerca de 10 dispositivos na mesma sala, comunicando-se, enviando mensagens curtas (no máximo 30 caracteres) entre si de vez em quando, por algumas horas (sem trocar as pilhas).
O melhor que pude encontrar é o Bluetooth (BLE, especificamente), principalmente porque existem alguns módulos Arduino + Bluetooth prontos e a promissora etiqueta "Low Energy" (no máximo metade do consumo de energia do Bluetooth normal), mas eu Gostaria de ter uma opinião de pessoas com mais experiência neste campo.
Respostas:
Dê uma olhada na linha de tranceivers XBee . Existem vários tipos, dependendo da faixa de transmissão e da potência desejada.
Esses dispositivos também fazem interface com os projetos do Arduino quase trivialmente. A
Serial
biblioteca utiliza o hardware UART do AVR, que é diretamente compatível com o pino Rx do XBee. Observe também que não são necessários shifters de nível porque o pino XBee Rx / Tx funciona com 5V!Observe , no entanto, que o XBee deve ser alimentado com 3,3V, para que um simples regulador de tensão LDO de 3,3V possa ser usado.
fonte
"Melhor" é difícil de definir, mas eu procuraria em um transceptor IEEE 802.15.4.
Usei um MRF24J40MA para um projeto ( https://github.com/briksoftware/gradusnik ). Você pode tentar ver se há algum código que você pode usar lá. O projeto é para o PIC, mas muitas coisas são realmente independentes da plataforma (especialmente os outros projetos dos quais depende).
O módulo consome cerca de 20mA em rx / tx, o que não é muito. No entanto, para obter um longo tempo de bateria, é necessário colocar o módulo em repouso a maior parte do tempo. Você pode usar uma rede habilitada para beacon para isso, com um dispositivo atuando como coordenador. O módulo consome alguns µA no modo de suspensão (verifique a folha de dados para ver os números exatos)
O único problema de interface com um Arduino é que você precisa de um shifter de nível 5-> 3.3 (se o Arduino ainda usa 5v).
Outro transceptor popular para o protocolo IEEE 802.15.4 é o módulo XBee, mas é muito mais caro.
fonte
Não o vejo como um problema sem fio, mas como um problema de protocolo.
Se a conservação da bateria é o nome do jogo e se um dispositivo pode, por meio da programação apropriada, adotar o papel de "mestre" temporário, é possível atribuir um intervalo de tempo a cada outro dispositivo. Depois que a alocação é feita, o mestre temporário pode voltar a ser um par, mas o importante é que uma estrutura de intervalos de tempo tenha sido criada e todos os pares terão comprado nessa estrutura.
O que isso faz? Ter um intervalo de tempo significa que você pode desligar o rádio por centenas de milissegundos e acordar para ver se há uma transmissão em andamento que se pretende receber. Quando um colega acorda, ele precisa esperar para ver se algum dos outros oito colegas está enviando uma mensagem para ele. O tempo é crítico, mas se você deseja uma bateria de longa duração, concentre-se no protocolo. Esta resposta é apenas um sopro de uma idéia. O intervalo de tempo de ativação será subdividido em 8 outros slots que cada um dos outros 8 pares estão alocados para transmitir e, se um estiver transmitindo, os outros poderão ouvir primeiro para verificar se eles podem transmitir. Algo assim: -
O slot "próximo" permite que novos colegas ingressem no grupo.
Transceptores de baixa potência são um lugar comum, então não vou investigar isso.
fonte
Experimente os módulos baratos de 433 mhz txrx. eles são úteis e podem ser facilmente conectados ao arduino. Eu os uso para meus projetos pessoais de robótica de hobby.
fonte
Só por curiosidade, por que o módulo transceptor sem fio NRF24L01 2.4GHz não foi mencionado? É uma unidade de baixa potência, pode ser alternada para o modo de espera para um consumo ainda mais baixo. Ele funciona com 3.3v, então pode usar um arduino de baixa potência ou um divisor, e o melhor de tudo é bem barato?
Aqui está a página do produto nRF24L01 +, juntamente com um manual de instruções nRF24L01 +, que contém informações sobre a interface de um para um Arduino junto com o código de exemplo.
fonte
O RFM12B vem à mente ..
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Algumas funcionalidades:
A interface de comunicação SPI deve ser razoavelmente configurada com o Arduino.
Atualmente, o modelo RFM12B-S2 é vendido por menos de US $ 7.
fonte