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.