Tenho um projeto que usa 10 Arduinos. Cada um em um local diferente do prédio e todos rodando o mesmo sketch.

Preciso, de alguma forma, identificar cada Arduino com um número ou letra de modo que, de acordo com essa identificação, o programa vai tomar uma ação diferente:

Se for o Arduino 1 faça isso. Se for Arduino 2 faça aquilo e assim por diante...

Já me sugeriram que eu utilize um cartão SD com o número do Arduino gravado em um arquivo.

Dessa forma forma funciona pois, assim que ligo o aparelho, ele lê o cartão e toma a ação de acordo com a identificação gravada nele. Além disso, posso colocar uma etiqueta em cada cartão para facilitar para o operador identificar cada um.

Alguém conhece alguma outra alternativa para fazer isso sem aumentar muito o custo do projeto?

Desde já agradeço qualquer sugestão.

Exibições: 642

Responder esta

Respostas a este tópico

Gust

Gustavo, obrigado pelos links.

Vou ler todos.

Qual o tipo de comunicação dos arduinos?

Gravar um codigo na Eeprom creio que seria a melhor saida, visto que não vai precisar de nenhuma alteração em hardware, nenhum uso de I/O.

Se a comunicação for via ethernet, você pode simplesmente usar o endereço IP para isso, afinal não vai poder ter ips duplicados na rede, assim não precisar fazer nenhuma alteração no sketch, somente no sistema de gerencia.

Olá Manoel!

Tenho dois projetos parecidos.

Em um deles, os Arduinos não se comunicam.

No outro, são ESP8266 que se comunicam via wi-fi pelo servidor. Cada um deveria possui um IP diferente. Você já fez algo parecido? Usou a EEPROM?

Grato.

O roteador se encarrega de fornecer um ip diferente para cada equipamento.
Sobre a eeprom, lembre-se que alterar esse valor não será tão simples como nas outras opções citadas aqui. Se o número de portas utilizadas é um fator importante para você e caso queira alterar esses números salvos posteriormente, você pode testar opções usando uma porta analógica.
Talvez uma combinação de resistires que se alteram de acordo com as chaves formando um divisor de tensão pode ser útil para você pois só usaria uma porta

Augusto, eu estou usando endereço ip para poder identificar o meu hardware, cada terminal tem seu ip unico e este é usado identificá-los, o servidor recebe os dados e sabe de onde está vindo cada informação, baseado no IP de quem está enviado e toma alguma ação.
Usando o ESP tambem dá para fazer a identificação por ip.

No meu caso, a eeprom estou usando apenas para armazenar dados referente a rede, configuração de I/Os e chave de segurança para a troca de informação terminal/servidor.

Arthur, porque você acha que alterar o valor na eeprom não seria um processo simples, teve alguma experiencia ruim em manipular dados na eeprom?

Nunca tive problemas em manipular dados na eeprom, mas acredito que mudar a posição de uma chave seja mais prático do que gravar algo na eeprom.
Claro que precisa avaliar a situação antes, digamos que esse valor nunca irá se alterar ou então a frequência com que essa alteração seja feito for pequena, a eeprom é uma ótima alternativa. Mas se desejar alterar esse valor com uma frequência grande, talvez todo dia ou algo assim, já acho que usar chaves seria uma alternativa melhor
Também existem outros pontos a serem analisados, por exemplo se o arduino se mantém conectado de algum forma com um computador, gravar um valor na eeprom seria tão fácil quanto alterar um chave (talvez até mais fácil) mas se ele não tem nenhuma conexão com outro dispositivo isso pode ser um "problema"

José Augusto, no caso do ESP8266 você pode configurar um IP para cada placa.

Mas seria IP fixo. Essas informações ficam gravadas na memória Flash do módulo. 

Elas não são perdidas após desligar a energia. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço