Simulando aplicações simples com TinyOS e Cooja

Este artigo é um tutorial que mostra como simular aplicações voltadas para Redes de Sensores sem Fio (RSSF), utilizando o TinyOS e o simulador Cooja. As aplicações que serão abordadas são: app Blink e um mini sistema distribuído simulando a mensagem de "eco" na arquitetura cliente-servidor.

[ Hits: 21.405 ]

Por: Richiely Batista de Moura Paiva em 24/09/2013


Simulação 2 - PppRouter e MyEcho



1. Simulando comunicação "cliente-servidor" com apps PppRouter e MyEcho:

Para trabalharmos com essa simulação, precisaremos de dois APPs, que também vêm junto com o TinyOS.

O funcionamento da aplicação é simples:

Definimos um nó como servidor, que recebe uma requisição de um nó na ponta da rede. Ocorre a troca de mensagens com estes dois nós por intermédio de outros nós "secundários" na rede e, o nó principal, que funcionará como servidor, irá responder ao comando recebido com uma mensagem de eco, retornando o que ele receber - se eu enviar a mensagem "TESTE ECO", o servidor retornará "TESTE ECO".

2. Entre na pasta do pppRouter (/home/tinyos/apps) e compile o APP com o seguinte comando:

make telosb blip

3. Entre na pasta do MyEcho (/home/tinyos/apps) e compile o APP com o mesmo comando anterior.

Compilamos os dois APPs necessários. Agora, vamos integrá-los na simulação no Cooja.

4. Abra o Cooja para configurar a simulação.

4.1. Crie uma nova simulação, com o nome que quiser.

4.2. Crie o primeiro Sky mote com o código do pppRouter (tem que ser o mote 1). Navegue até a pasta "build/telosb" dentro da pasta do APP pppRouter e selecione o main.exe:
* Importante: adicione apenas um nó com esta configuração.

4.3. Agora, você pode criar quantos Sky motes você quiser com o código do APP MyEcho (em média de 3 a 5 nós).

5. O tutorial em relação à primeira simulação difere-se neste ponto. Aqui, iremos fazer o uso de dois scripts simples que irão nos ajudar a configurar nossa interface de comunicação na rede simulada, criando uma conexão via socket.

5.1. Clique com o botão direito sobre o nó sensor 1 e procure a opção:

→ Mote tools for Sky 1 → Serial socket (SERVER)

5.1.1. Uma janela irá abrir indicando que a porta 60001 está escutando.

Neste momento, usaremos os dois scripts mencionados. Eles serão usados, basicamente, para criar uma interface chamada ppp0 de comunicação na rede.

5.2. Crie um documento em branco e salve-o com o nome socket.sh, contendo o seguinte conteúdo:

#!/bin/bash

sudo pppd debug passive noauth nodetach 115200 socket 127.0.0.1:60001 \
  nocrtscts nocdtrcts lcp-echo-interval 0 noccp noip ipv6 ::23,::24
5.3. Crie um segundo arquivo com o nome de interface.sh com o seguinte conteúdo:

#!/bin/bash

sudo ifconfig ppp0 add fec0::100/64
5.4. Crie um terceiro arquivo com o nome de pppd.sh contendo:

#!/bin/bash

sudo pppd debug passive noauth nodetach 115200 /dev/ttyUSB0 \
  nocrtscts nocdtrcts lcp-echo-interval 0 noccp noip ipv6 ::23,::24

5.5. Abra um terminal para executar cada comando, deixando-os pré-escritos, ao ponto de se apertar Enter.
5.5.1. Deixe uma aba no terminal do socket.sh com o comando ifconfig, para que você possa verificar se a interface ppp0 foi realmente criada.
5.6. Volte ao Cooja, coloque a velocidade em 100% e inicie a simulação.

5.7. Ative o comando socket.sh.

5.8. Em seguida, rode o arquivo interface.sh, configurando assim, o endereço IPv6.

Se tudo der certo, irá criar uma interface de rede ppp0 - vide via comando ifconfig em uma aba do terminal.
Abri dois terminais, configurei o Cooja, e deixei o socket.sh no primeiro terminal, e o interface.sh no segundo. Ao iniciar a simulação, executei os comandos nos terminais.
Interface ppp0 criada.

6.Tudo deve estar funcionando.

6.1. Use o nc6 para iniciar uma comunicação com os sensores:

nc6 -u fec0::2 8989

6.2. Tudo que digitar depois será enviado até o sensores, que responderá com a mesma String.


Página anterior     Próxima página

Páginas do artigo
   1. Introdução e contextualização
   2. Simulação 1 - Blink
   3. Simulação 2 - PppRouter e MyEcho
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compartilhando a internet com apenas uma placa de rede e um hub/switch

Instalação do Varnish + Apache + Virtual Hosts

Modem USB 3G largado na gaveta! Nãããõooo...

Integração Apache / ASP

Configurando BIND 9 + chroot sem mistérios

  
Comentários
[1] Comentário enviado por gontijobh em 24/09/2013 - 16:45h

Muito Obrigado, eu ainda não fiz ainda os exemplos que você passou, mais já me deu uma luz, nesta questão (Como começar).
Eu queria saber quais são as diferenças entre o Contiki e o TinyOS?
Para um projeto de Automação Residencial, qual você usaria?
Eu pretendo ter uma Aplicação(Provavelmente em Django) rodado em um Raspberry Pi e comunicando com os Sensores e os Atuadores através CoAP, você vê algum problema nesta arquitetura?
Para eu ligar o Raspberry Pi aos Sensores, eu necessito de um radio do mesmo dos Sensores ligado no Raspberry Pi, correto? Tem como ligar esse radio por USB? Ou Somente pelo GPIO?
Se eu usar a MSP430 Launchpad + CC2500 para desenvolver, eu vou ter alguma limitação, e muito difícil fazer essa ligação?
Essa Telosb é fácil de encontrar?
Desculpa ai pela quantidade de perguntas e por que eu estou começando agora nesse mundo então tenho um monte de duvidas.

[2] Comentário enviado por richielybmp em 26/09/2013 - 13:27h


[1] Comentário enviado por gontijobh em 24/09/2013 - 16:45h:

Muito Obrigado, eu ainda não fiz ainda os exemplos que você passou, mais já me deu uma luz, nesta questão (Como começar).
Eu queria saber quais são as diferenças entre o Contiki e o TinyOS?
Para um projeto de Automação Residencial, qual você usaria?
Eu pretendo ter uma Aplicação(Provavelmente em Django) rodado em um Raspberry Pi e comunicando com os Sensores e os Atuadores através CoAP, você vê algum problema nesta arquitetura?
Para eu ligar o Raspberry Pi aos Sensores, eu necessito de um radio do mesmo dos Sensores ligado no Raspberry Pi, correto? Tem como ligar esse radio por USB? Ou Somente pelo GPIO?
Se eu usar a MSP430 Launchpad + CC2500 para desenvolver, eu vou ter alguma limitação, e muito difícil fazer essa ligação?
Essa Telosb é fácil de encontrar?
Desculpa ai pela quantidade de perguntas e por que eu estou começando agora nesse mundo então tenho um monte de duvidas.



Olá gontijobh.

Bom, quanto o Contiku e o TinyOS, a diferença entre eles e qual usar dependendo da aplicação, eu não saberia te falar com exatidão.
O que se sabe é apenas o que o pessoal comenta nos fóruns das duas plataformas. Eu estou usando o TinyOS como proposta dos meus orientadores na Universidade para a elaboração de um trabalho nosso.

Att.

[3] Comentário enviado por purcina em 24/06/2014 - 18:20h

Amigo, primeiro quero te parabenizar pelo trabalho. Segundo, na segunda parte da simulção vc diz que utiliza a app MyEcho, esta app não está disponível para mim, você poderia me ajudar a resolver isto? Obrigado.

[4] Comentário enviado por richielybmp em 27/08/2014 - 08:48h


[3] Comentário enviado por purcina em 24/06/2014 - 18:20h:

Amigo, primeiro quero te parabenizar pelo trabalho. Segundo, na segunda parte da simulção vc diz que utiliza a app MyEcho, esta app não está disponível para mim, você poderia me ajudar a resolver isto? Obrigado.


Olá purcina,
Inicialmente desculpe pela demora da resposta. Segundo, obrigado pelo feedback do artigo.
Quanto a sua pergunta, bom, na maquina virtual que eu disponibilizei existe uma pasta com várias app's,

" Esta é a máquina virtual, já configurada com os softwares que serão utilizados (a senha é user):
http://cia2.inf.ufg.br/ftp/images/Contiki_TinyOS.ova "

... dentre elas a app MyEcho, tente subir a imagem do sistema.

Qualquer outra dúvida me mande e-mail!

Att,

[5] Comentário enviado por cristofe em 27/08/2014 - 09:08h

Parabéns pelo artigo e pelo atendimento. Estarei com o desafio de colocar em produção um sistema BAN com sensores para pacientes com insuficiência cardíaca. Foi um bom início. Compartilho o link da professora:
Curso:
http://www.dcc.ufrj.br/~silvana/tinyos/

Em adição, também há o livro do TinyOS porém em inglês, a teoria dele é muito boa, segue:
http://www.inf.ufg.br/~brunoos/books/TinyOS_Programming-eBook.pdf

São pessoas assim que fazem um mundo migrar para melhor....;-)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts