Mudanças entre as edições de "Curso Técnico em Telecomunicações - Projeto Integrador IV (PJI4)"
Linha 9: | Linha 9: | ||
*[[PJI11104-2016-1|PJI11104 2016-1]] | *[[PJI11104-2016-1|PJI11104 2016-1]] | ||
+ | *[[PJI11104-2016-2|PJI11104 2016-2]] | ||
==Totem== | ==Totem== |
Edição das 17h05min de 15 de agosto de 2016
Documentação
Material de Aula
Totem
- Referência: Arquivo:TCC MuriloBauer.pdf
- Script /etc/init.d/gourmet com permissões 755:
#!/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
Arquivo /usr/local/bin/indicador.py:
#!/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)
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>
Código Arduino
Programa desenvolvido para comunicação do Arduino com o display de LCD 16x2:
//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>
//Define os pinos que serão utilizados para a ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//Define o caracter da barra de intensidade de sinal
byte bar[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
};
void setup() {
//configura a comunicação serial com 9600 bps
Serial.begin(9600);
//Criar caracter
lcd.createChar(0, bar);
//Define o número de colunas e linhas do LCD
lcd.begin(16, 2);
}
// Função que lê uma string da Serial e retorna o seu valor
String leStringSerial(){
String conteudo = "";
char caractere;
// Enquanto receber algo pela serial
while(Serial.available() > 0) {
// Lê byte da serial
caractere = Serial.read();
// Ignora caractere de quebra de linha
if (caractere != '\n'){
// Concatena valores
conteudo.concat(caractere);
}
// Aguarda buffer serial ler próximo caractere
delay(10);
}
return conteudo;
}
void IntensidadeSinal(int porcent){
if(porcent >= 0 && porcent < 30){
lcd.setCursor(1, 1);
lcd.print("SINAL REDE:");
lcd.setCursor(12, 1);
lcd.write(byte(0));
}
if(porcent >= 30 && porcent < 55){
lcd.setCursor(1, 1);
lcd.print("SINAL REDE:");
lcd.setCursor(12, 1);
lcd.write(byte(0));
lcd.setCursor(13, 1);
lcd.write(byte(0));
}
if(porcent >= 55 && porcent <= 100){
lcd.setCursor(1, 1);
lcd.print("SINAL REDE:");
lcd.setCursor(12, 1);
lcd.write(byte(0));
lcd.setCursor(13, 1);
lcd.write(byte(0));
lcd.setCursor(14, 1);
lcd.write(byte(0));
}
}
void loop() {
// Se receber algo pela serial
if (Serial.available() > 0){
// Lê toda string recebida
String recebido = leStringSerial();
if (recebido.substring(0,3) == "MSG"){
//Limpa a tela
lcd.clear();
//Posiciona o cursor na coluna 3, linha 0
lcd.setCursor(1, 0);
//Envia o texcto entre aspas para o LCD
lcd.print("USER ACCESS:");
lcd.setCursor(13, 0);
lcd.print(recebido.substring(4,6));
int aux_sinal = atoi(recebido.substring(7,10).c_str()); //c_str vai retornar a versão C da string para o uso na função atoi.
IntensidadeSinal(aux_sinal);
}
}
}
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: