Mudanças entre as edições de "PJI11104-2016-1"
(Criou página com '==Totem== * Referência: Imagem:TCC_MuriloBauer.pdf * Script <tt>/etc/init.d/gourmet</tt> com permissões 755: <syntaxhighlight lang=bash> #!/bin/bash if [ "${3}" = "" ] then echo "Use: ...') |
(→Totem) |
||
Linha 85: | Linha 85: | ||
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)"' | 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)"' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | ==Monitoramento de qualidade== | ||
+ | ===Monitor=== | ||
+ | Arquivo <tt>/usr/local/bin/indicador.py</tt>: | ||
+ | <syntaxhighlight lang=python> | ||
+ | #!/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) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Arduino=== | ||
+ | Para configurar a interface serial do Arduino usando o Linux<ref>http://playground.arduino.cc/Interfacing/LinuxTTY</ref>: | ||
+ | <code> | ||
+ | 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 <tt>/dev/ttyACM0</tt>: | ||
+ | <code> | ||
+ | /usr/local/bin/indicador.py > /dev/ttyACM0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Código Arduino=== | ||
+ | Programa desenvolvido para comunicação do Arduino com o display de LCD 16x2: | ||
+ | <syntaxhighlight lang=c> | ||
+ | //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); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Documentação== | ||
+ | |||
+ | *[[PJI4-TecTel|Carga horária, Ementas, Bibliografia]] | ||
+ | |||
+ | *[[PJI4-TecTel (Plano de Ensino) | Plano de Ensino]] | ||
+ | |||
+ | ==Cronograma das Atividades== | ||
+ | |||
+ | {{collapse top| bg=lightgreen |Semestre 2015-2}} | ||
+ | {| border="1" cellpadding="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. | ||
+ | |} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | <!-- | ||
+ | PROFESSOR: COPIAR TODO ESSE BLOCO PARA CRIAR NOVOS CRONOGRAMAS. O COMENTÁRIO ABAIXO DEVE SER RETIRADO PARA A CRIAÇÃO DE NOVAS LINHAS NA TABELA | ||
+ | --> | ||
+ | {{collapse top| bg=lightgreen | Planejamento da disciplina}} | ||
+ | <!-- | ||
+ | {{Cronograma-top}} | ||
+ | {{Cl|1 |12/04 | 4 | Apresentação da Disciplina | Aula expositiva}} | ||
+ | {{cronograma-botton-int |36}} | ||
+ | --> | ||
+ | |||
+ | Conhecimentos sobre Telefonia IP para tratar no PI | ||
+ | <center><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></center> | ||
+ | |||
+ | |||
+ | |||
+ | Atividades em dois dias por semana (divididas em duas aulas de 1:30 h/ 20 semanas por semestre; | ||
+ | |||
+ | {| border="1" cellpadding="2" | ||
+ | !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. | ||
+ | |} | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | ==Diário de bordo== | ||
+ | {{collapse top| bg=lightgreen | expand=true |Semestre 2016-1}} | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top| bg=lightgreen|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 | ||
+ | <code> | ||
+ | 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: | ||
+ | <code> | ||
+ | apt-get update | ||
+ | apt-get install ssh | ||
+ | apt-get install ntp | ||
+ | vi /etc/ntp.conf | ||
+ | </syntaxhighlight> | ||
+ | *** Mudar as linhas com a expressão <tt>server</tt> por: | ||
+ | <code> | ||
+ | server pool.ntp.br iburst prefer | ||
+ | server ntp.cais.rnp.br iburst | ||
+ | server ntp.ufsc.br iburst | ||
+ | </syntaxhighlight> | ||
+ | *** E reiniciar o serviço: | ||
+ | <code> | ||
+ | systemctl restart ntp | ||
+ | </syntaxhighlight> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | ==Material de Aula== | ||
+ | Programação: | ||
+ | * [[Media:Introducao_a_Programacao.pdf | Algoritmos - Parte 01]] | ||
+ | * [[Media:Exercícios_Introdução_Programação.pdf | Exercícios - Parte 01]] | ||
+ | * [[Media:Introdução ao PHP2.pdf | Introdução ao PHP - Parte 02]] | ||
+ | * [[Media:Intro_MySQL2015_1.pdf | Introdução ao MySQL - Parte 03]] | ||
+ | * [[Media:AtividadesAdicionaisPIV.pdf | Atividades Adicionais - Nova opção Menu]] | ||
+ | |||
+ | |||
+ | Linux: | ||
+ | * [http://www.guiafoca.org/cgs/guia/avancado/index.html Guia Foca] | ||
+ | |||
+ | Comandos HTML: | ||
+ | * [http://www.lsi.usp.br/~help/html/comandos.html Principais comandos] | ||
+ | |||
+ | <references/> | ||
+ | |||
+ | {{VOLTAR |Curso Técnico em Telecomunicações - Páginas das Disciplinas}} | ||
+ | {{TECTELECO}} |
Edição atual tal como às 17h02min de 15 de agosto de 2016
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: