Mudanças entre as edições de "Curso Técnico em Telecomunicações - Projeto Integrador IV (PJI4)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 97: Linha 97:
 
/usr/local/bin/indicador.py > /dev/ttyACM0
 
/usr/local/bin/indicador.py > /dev/ttyACM0
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
==Python Script==
 +
#!/usr/bin/env python
 +
 +
import subprocess
 +
import time
 +
 +
while True:
 +
#
 +
# Conta quantos usuarios conectados no AP.
 +
# Armazena na variavel "usuarios".
 +
p = subprocess.Popen('hostapd_cli all_sta |grep aid|wc -l', shell=True,
 +
                      stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
 +
for line in p.stdout.readlines():
 +
num_usuarios = int(line.strip())
 +
if num_usuarios < 10:
 +
usuarios = '0' + str(num_usuarios)
 +
else:
 +
usuarios = str(num_usuarios)
 +
retval = p.wait()
 +
#
 +
# Mede a qualidade do sinal na rede mesh.
 +
# Armazena na variavel "qualidade".
 +
p = subprocess.Popen('iw dev mesh0  station dump | grep signal: | cut -d : -f 2 | cut -d d -f 1', shell=True,
 +
                    stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
 +
for line in p.stdout.readlines():
 +
num_qualidade = 80 + int(line.strip())
 +
if num_qualidade < 10:
 +
qualidade = '0' + str(num_qualidade)
 +
else:
 +
qualidade = str(num_qualidade)
 +
retval = p.wait()
 +
print "MSG:" + usuarios + ":" + qualidade
 +
time.sleep(1)
 +
 +
 +
 +
  
 
==Documentação==
 
==Documentação==

Edição das 21h57min de 29 de junho de 2016

Totem

#!/bin/bash

if [ "${3}" = "" ]
then
  echo "Use: ${0} map <interface_mesh> <interface_ap>"
  echo "     ${0} mpp <interface_mesh> <interface_internet>"
  exit 1
else
  TIPO=${1}
  MESH=${2}
  AP=${3}
  INTERNET=${3}
fi

function basico(){
  service network-manager stop
  ip link set ${1} down
  iw dev ${1} interface add mesh0 type mp mesh_id Gourmet-Backhaul
  # iw dev mesh0 set channel 9
  iw dev mesh0 set freq 5190 HT40+
  ip link set mesh0 up
}

function map(){
  brctl addbr br0
  brctl addif br0 mesh0
  ip link set br0 up
  ip -4 address add 10.0.0.X/8 dev br0
  ip -4 route add 0.0.0.0/0 via 10.0.0.1
  killall -TERM hostapd
  sleep 1
  killall -KILL hostapd
  echo "interface=${2}" > /etc/hostapd.conf
  echo "bridge=br0" >> /etc/hostapd.conf
  echo "driver=nl80211" >> /etc/hostapd.conf
  echo "ssid=Gourmet" >> /etc/hostapd.conf
  echo "channel=3" >> /etc/hostapd.conf
  echo "ctrl_interface=/var/run/hostapd" >> /etc/hostapd.conf
  hostapd -B /etc/hostapd.conf
}

function mpp(){
  ip link set mesh0 up
  ip -4 address add 10.0.0.1/8 dev mesh0
  iw mesh0 set mesh_param mesh_gate_announcements 1
  iw mesh0 set mesh_param mesh_hwmp_rootmode 1
  restart isc-dhcp-server
  ip link set ${2} up
  dhclient ${2}
  sysctl -w net.ipv4.conf.all.forwarding=1
  iptables -t nat -F
  iptables -t nat -A POSTROUTING -o ${2} -j MASQUERADE
}

case ${TIPO} in
  "map")
    basico ${MESH}
    map ${MESH} ${AP}
    ;;
  "mpp")
    basico ${MESH}
    mpp ${MESH} ${INTERNET}
    ;;
esac


  • Para usar no servidor: adicionar a seguinte linha no começo do arquivo /etc/rc.local:
/etc/init.d/gourmet mpp wlan2 eth0
  • Para usar no totem: adicionar a seguinte linha no começo do arquivo /etc/rc.local:
/etc/init.d/gourmet map wlan2 wlan0

para verificar o funcionamento da rede sem fio:

watch -n1 'iw dev mesh0 station dump | egrep "(Station|inactive|rx|tx)"; echo; iw dev mesh0 mpath dump; echo; hostapd_cli all_sta | egrep "(:|connected_time)"'

Monitoramento de qualidade

Monitor

Arduino

Para configurar a interface serial do Arduino usando o Linux[1]: stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts </syntaxhighlight> e depois basta enviar para o arquivo /dev/ttyACM0: /usr/local/bin/indicador.py > /dev/ttyACM0 </syntaxhighlight>


Python Script

  1. !/usr/bin/env python

import subprocess import time

while True: # # Conta quantos usuarios conectados no AP. # Armazena na variavel "usuarios". p = subprocess.Popen('hostapd_cli all_sta |grep aid|wc -l', shell=True,

                      stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

for line in p.stdout.readlines(): num_usuarios = int(line.strip()) if num_usuarios < 10: usuarios = '0' + str(num_usuarios) else: usuarios = str(num_usuarios) retval = p.wait() # # Mede a qualidade do sinal na rede mesh. # Armazena na variavel "qualidade". p = subprocess.Popen('iw dev mesh0 station dump | grep signal: | cut -d : -f 2 | cut -d d -f 1', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in p.stdout.readlines(): num_qualidade = 80 + int(line.strip()) if num_qualidade < 10: qualidade = '0' + str(num_qualidade) else: qualidade = str(num_qualidade) retval = p.wait() print "MSG:" + usuarios + ":" + qualidade time.sleep(1)



Documentação

Cronograma das Atividades

Semestre 2015-2
Semana Aula 1 Aula 2
1 - -
2 ? ?
3 ? Discussão da disciplina e projeto integrador.
4 ? Revisão de sistemas operacionais. Início dos trabalhos do projeto integrador.
5 ? Instalação do sistema operacional em rede e primeiros serviços: Cron, Syslog, NTP e SSH.
6 Instalação do sistema operacional em rede e primeiros serviços: Cron, Syslog, NTP e SSH.
7 Programação para a Web. Serviços para a Internet: LAMP (Linux + Apache + MySQL + PHP).
8 VoIP.
9 VoIP.
10 Serviços de telefonia IP.
11 Serviços de telefonia IP.
12 Serviços de comunicação da Internet: correio eletrônico, bate-papo e outros.
13 Serviços de comunicação da Internet: correio eletrônico, bate-papo e outros.
14 Convergência.
15 Convergência.
16 Gerência de rede.
17 Gerência de rede.
18 Projeto: documentação final e apresentação. Projeto: documentação final e apresentação.
19 Folga para feriados e erros no dimensionamento da carga horária. Folga para feriados e erros no dimensionamento da carga horária.
20 Folga para feriados e erros no dimensionamento da carga horária. Folga para feriados e erros no dimensionamento da carga horária.
Planejamento da disciplina

Conhecimentos sobre Telefonia IP para tratar no PI

<graphviz>

digraph VoIP {

subgraph clusterIP
{
 label="Redes"
 IP
 SIP
 DNS
 SDP
 RTP
}
DNS -> SIP
Tarifação -> "Telefonia IP"
VoIP -> "Telefonia IP"
SIP -> VoIP
SDP -> VoIP
RTP -> VoIP
IP -> SIP
IP -> SDP
IP -> RTP
Binário -> IP
Codec -> SDP
Modulação -> Codec
Sinais -> Modulação
Criptografia -> SIP 
Segurança -> Criptografia
QoS -> RTP
"Plano de Numeração" -> Tarifação
"Telefonia IP" -> Asterisk
Sinalização -> SIP

}

</graphviz>


Atividades em dois dias por semana (divididas em duas aulas de 1:30 h/ 20 semanas por semestre;

Semana Aula 1 Aula 2
1 Proposta do problema: convergência: cenário-problema. Proposta do problema: convergência: cenário-problema.
2 S.O.: administração de sistemas. S.O.: administração de sistemas.
3 Serviços: Compartilhamento (SMB/CIFS e HTTP). Serviços: Compartilhamento (SMB/CIFS e HTTP).
4 Serviços: Compartilhamento (HTTP e DHTML). Serviços: Compartilhamento (HTTP e DHTML).
5 Serviços: Comunicação (SMTP e IMAP). Serviços: Comunicação (SMTP e IMAP).
6 Serviços: Comunicação (SoftPBX). Serviços: Comunicação (SoftPBX).
7 Serviços: Comunicação (SoftPBX). Serviços: Comunicação (SoftPBX).
8 Serviços: Comunicação (SoftPBX e hardware). Serviços: Comunicação (SoftPBX e hardware).
9 Serviços: Comunicação (SoftPBX, hardware e tipos de sinalização). Serviços: Comunicação (SoftPBX, hardware e tipos de sinalização).
10 Serviços: Comunicação (protocolos de VoIP). Serviços: Comunicação (protocolos de VoIP).
11 Serviços: Comunicação (protocolos de VoIP). Serviços: Comunicação (protocolos de VoIP).
12 Gerência de rede: monitoramento. Gerência de rede: monitoramento.
13 Gerência de rede: contabilização. Gerência de rede: contabilização.
14 Convergência: plano de numeração. Convergência: plano de numeração.
15 Convergência: serviços (conferência, DISA). Convergência: serviços (conferência, DISA).
16 Convergência: mensagens unificadas. Convergência: mensagens unificadas.
17 Convergência: tarifação. Convergência: tarifação.
18 Projeto: documentação final e apresentação. Projeto: documentação final e apresentação.
19 Folga para feriados e erros no dimensionamento da carga horária. Folga para feriados e erros no dimensionamento da carga horária.
20 Folga para feriados e erros no dimensionamento da carga horária. Folga para feriados e erros no dimensionamento da carga horária.

Diário de bordo

Semestre 2016-1
Semestre 2015-2
  • Dia 04/11/2015:
    • Configuração da BIOS:
      • Garantia de que o sistema iniciará sem teclado, mouse ou vídeo.
      • Restauração do sistema após queda de energia.
    • Instalação do sistema operacional.
    • Configuração da rede:
      • IP: 200.135.37.X (92 = Adriano, 93 = Taís, 94 = Cláudio)
      • Máscara de sub-rede: 255.255.255.192 ou /26
      • Gateway ou rota-padrão: 200.135.37.126
      • Servidores DNS: 200.135.37.72 e 200.135.37.65
    • Particionamento:
      • Primeira partição primária de 20GB para "/".
      • Segunda partição primária, com o restante do disco, para LVM.
    • Instalação do GRUB na MBR do disco rígido (no caso, /dev/sda).
    • Arquivos após a instalação:
      • /etc/apt/sources.list

deb http://debian.pop-sc.rnp.br/debian/ stable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free </syntaxhighlight>

    • Comandos após a instalação:

apt-get update apt-get install ssh apt-get install ntp vi /etc/ntp.conf </syntaxhighlight>

      • Mudar as linhas com a expressão server por:

server pool.ntp.br iburst prefer server ntp.cais.rnp.br iburst server ntp.ufsc.br iburst </syntaxhighlight>

      • E reiniciar o serviço:

systemctl restart ntp </syntaxhighlight>

Material de Aula

Programação:


Linux:

Comandos HTML:



Voltar

Curso Técnico em Telecomunicações