Bem-vindo, Visitante
Nome do utilizador: Senha:
Montagens Electrónica

TÓPICO: SDI-12

SDI-12 26 Fev. 2014 23:10 #1

  • jm93
  • Avatar de jm93
  • DESLIGADO
  • membro há mais de 12 anos
  •   
  • Mensagens: 6
Boas,

Já alguem aqui trabalhou com sensores que usam protocolo de comunicação SDI-12?
Estou a desenvolver um projecto e precisava de ajuda na parte da comunicação deste tipo de sensores com o Arduino...
Já estive a efectuar umas pesquisas mas ainda não consegui perceber como é que são defenidos os endereços dos sensores para posteriormente enviar pela linha de dados o endereço do sensor do qual quero efectuar a leitura...

Alguem me pode ajudar? :)

Desde já obrigado, abraço!

SDI-12 27 Fev. 2014 21:42 #2

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro há mais de 15 anos top5 em número de mensagens
  • pt  
  • Mensagens: 8048
  • Agradecimentos 3192
Última Edição: 27 Fev. 2014 22:00 por zurca1599.

SDI-12 27 Fev. 2014 22:56 #3

  • jm93
  • Avatar de jm93
  • DESLIGADO
  • membro há mais de 12 anos
  •   
  • Mensagens: 6
Sim eu ja tinha visto esses links e neste momento estou a analizar a library SDI-12 para perceber melhor o funcionamento...
Mas o que eu queria mesmo saber é como é que eu faço a "programação" do endereço de cada sensor? Consegue-me explicar qual o procedimento para fazer essa programação?

Um abraço :)
Última Edição: 27 Fev. 2014 22:57 por jm93.

SDI-12 28 Fev. 2014 04:59 #4

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro há mais de 15 anos top5 em número de mensagens
  • pt  
  • Mensagens: 8048
  • Agradecimentos 3192
Um típico sistema sensor de medição/registador funciona como se segue:

Passo 1. O registador de dados desperta todos os sensores do SDI-12 com uma pausa.

Passo 2. O registador transmite um comando para um sensor específico, instruindo-o a fazer uma medição.
Neste comando o 1º caracter é o número/letra que identifica o sensor.

Passo 3. A sensor abordado responde em 15,0 milissegundos devolvendo o tempo máximo até os dados de medição estarem prontos e o número de valores de dados, que irá retornar.

Passo 4. Se a medição está disponível de forma imediata, o registrador envia um comando para o sensor instruindo-o a retornar a(s) medida(s).

Se a medida não está pronto,o registador de dados aguarda para o sensor para enviar uma solicitação para o gravador, que indica que os dados estão prontos. O registador, em seguida, transmite um comando para obter os dados.

Etapa 5. O sensor responde, retornando uma ou mais medições.


A Taxa de Transmissão e estrutura Byte é de
1200.

1 Start bit
7 bits de dados, do bit menos significativo transmitido em primeiro lugar
1 bit de paridade, se quer paridade
1 stop bit


Todos os caracteres transmitidos no barramento SDI-12 devem ser caracteres ASCII imprimíveis.

Há exceções:
1) todas as respostas de um SDI-12, sensor, devem terminar com os carateres retorno
de carro (0D hex, 13 decimal)
e mudança de linha (0A hex, 10 decimal)
(return e linefeed)


2) Em alguns casos, a segunda e a terceira característica de um código pode não ser caracteres ASCII imprimíveis


Todos os comandos estão disponiveis na especificação que indiquei antes.


O sistema funciona de forma semelhante ao rs232 mas com um conjunto de codigos próprio do protocolo.
Última Edição: 28 Fev. 2014 05:33 por zurca1599.

SDI-12 09 Abr. 2014 17:59 #5

  • jm93
  • Avatar de jm93
  • DESLIGADO
  • membro há mais de 12 anos
  •   
  • Mensagens: 6
Boa tarde novamente,

Antes de mais nada obrigado zurca1599 pela ajuda, já entendi o protocolo e agora vou passar para a montagem do circuito que irá fazer a ligação entre os sensores e o Arduino, mas estou com um pequeno problema...
Tenho que projetar uma proteção para o pino do Arduino onde vão ser ligados os sensores, uma vez que, como podem ser usados cabos compridos está exposto a ruído, nomeadamente ruído eletromagnético que o poderá danificar...
Estava a pensar em usar um isolador ótico, mas sendo a linha de dados bidirecional não estou a ver como o posso fazer :s
É possível ligar dois isoladores óticos, um em cada sentido? Caso seja possível, como os posso liga de maneira a ficarem os dois a funcionar na mesma linha?
Alguém sabe como posso implementar esta proteção, ou conhece outro tipo de proteção que seja possível implementar?

Um abraço :)
Última Edição: 09 Abr. 2014 18:00 por jm93.

SDI-12 09 Abr. 2014 21:31 #6

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro há mais de 15 anos top5 em número de mensagens
  • pt  
  • Mensagens: 8048
  • Agradecimentos 3192
Se vir o pdf do 1º link

www.sdi-12.org/specification.php?fileID=1

no apêndice A tem como fazer o circuito protegido.
Última Edição: 09 Abr. 2014 21:32 por zurca1599.

Pesquisar Esquemas | Dicas Defeito | Equivalência Componentes | Modelo v Chassis | Service Mode |
Enviar Esquema