Você está na página 1de 20

Arduino Instalando e

configurando um servidor web


[Parte1]

Depois de um bom tempo sem publicar nada, pois tive problemas


familiares, bom mas vamos retomar os artigos de Arduino.
Vamos instalar um servidor web com alguns servios adicionais que
iremos usar mais a frente, neste post e no prximo ser abordado a
instalao do servidor web apache2, php e banco de dados mysql na
plataforma Windows e Linux.

Windows
Instalao de Servidor Web (Apache), PHP5 e MySQL em plataforma
Windows, para quem no usa Linux, nem em VM hehe. Apesar que
todos os posts que irei publicar o meu server estar rodando em uma VM
Linux, mas muda apenas o diretorio dos arquivos praticamente.
Bom primeiramente baixe o WAMP5 atualmente verso 2.1, cliquei
aqui para baixar.
Antes de instalarmos o WAMP5, vamos ver as portas abertas ou listadas
no nosso computador, usamos o comando netstat -na no Windows.
Bom entre as primeiras podemos ver 135, 445 que so usadas no
compartilhamento do Windows (RPC e SMB) e tambm a 139(netbios),
mas no temos a 80 que ser padro do nosso servidor web e nem 3306
usada no banco de dados MySQL.
Depois de baixar o WAMP5 comece a instalar, vou dar ateno a
seguinte tela:
Deixe como padro o diretrio C:\wamp, como na figura acima.
Espere a instalao terminar.
Caso surgir mais alguma opo s avanar no existe nenhum segredo
at ento.
Finalizando a instalao vamos iniciar os servios do WAMP e testar,
para iniciar faa como na figura abaixo:

Caso na bandeja do Windows no aparea o cone como apontado pela


seta amarela, de dois cliques no cone WampServer na rea de Trabalho
como mostrado na seta azul, em seguida de um clique no cone na
bandeja e clique na opo apontada pela seta laranja Iniciar todos os
Servios.

E agora vamos executa novamente o comando netstat -na no MS-DOS e


observar a sada:
E podemos ver agora 80 e 3306 que so as respectivas portas do
Apache e o MySQL.

Vamos testar, abra o navegador [Internet Explorer (eca), Mozilla Firefox,


Google Chrome] e no endereo digite:

127.0.0.1 e de enter como figura abaixo:


Se apareceu uma tela como acima, maravilha! Esta funcionando.
Isso quer dizer que localmente, direto no computador que esta instalado
o Servidor Web est funcionando, mas como o interesse acessa a
pagina de qualquer local da rede ou at mesmo da internet, vamos ver se
esta funcionando pela rede tambm, primeiramente vamos ver qual o IP
do nosso Windows, abrindo uma janela do MS-DOS e usando o
comando ipconfig como na figura abaixo:
Agora abra algum navegador em algum computador da rede ou em uma
outra Maquina Virtual e digite no endereo o IP do Windows com o
WAMP, no nosso caso 192.168.0.188, no meu caso a seguinte
mensagem surgiu no navegador:
A mensagem at clara, no? S faltou ele escrever Voc no pode
acessar o servidor, hahaha hehe. Bom no Linux eu at conheo o que
faz isso e como corrigir, mas no Windows no sabia mas fui no arquivo
responsvel no caso o httpd.conf, que todas as configuraes do Apache
ficam neste arquivo, ento vamos entender o erro e corrigir.
Primeiro acesse o menu do WAMP e v em Apache > httpd.conf como na
figura abaixo e no arquivo que abrir procure a linha Allow from
127.0.0.1, sem as aspas claro.
E como j mostrei na prpria figura acima, mude Allow from 127.0.0.1
para Allow from All, o erro que estava dando era que voc no pode
acessar a pagina sem estar no computador local, ou no computador que
esta rodando a aplicao (localhost ou 127.0.0.1), isso muito util em
caso esteja rodando um supervisrio via web que apenas o computador
local pode acessar, mas no nosso caso vamos liberar para toda a rede e
mais a frente deixamos a configurao mais enxuta para cada caso.
Depois de alterar o arquivo httpd.conf salve o mesmo e vamos reiniciar o
WAMP, como na figura abaixo:
E tente abrir novamente, a tela acima esta divida entre o navegador no
meu host e no lado direito a minha VM com Windows + WAMP,
reiniciando todos os servios como acima voc reinicia o MySQL
tambm, como foi apenas o Apache que alteramos voc pode reiniciar o
mesmo clicando no cone do WAMP na bandeja indo em Apache >
Services > Reiniciar Servio.
Pronto! Servidor web rodando local e remoto. Agora vamos ver onde
criamos as paginas web. Como instalamos em C:\wamp, acesse:

c:\wamp\www

O diretrio que voc criar ae, o arquivo (html, htm, php, css, js, ) que
voc criar no www ou no diretrio dentro dele pode ser acessado via
web.
Vamos a um exemplo que irei at adotar para futuros posts, crie um
diretrio dentro de C:\wamp\www com o nome arduino e dentro do
diretrio arduino um arquivo chamado index.html.
Agora abra o arquivo index.html com o bloco de notas mesmo e insira o
seguinte cdigo:

1 <html>
2 <head><title>Arduino Web Local</title></head>
3
4 <body>
5 <h1>Arduino Web Cliente</h1>
6
7 <a>Servidor web para comunicar com Arduino Ethernet Shield funcionando!</a>
8 </body>
9 </html>

Agora abra o navegador local ou remoto e digita no endereo


http://192.168.0.188/arduino/ e de enter, lembrando de substituir o
192.168.0.188 pelo IP do seu Windows + WAMP.
E algo como abaixo ir carregar:
Na imagem acima do lado esquerdo podemos ver a pagina web
carregada e do lado direito o caminho C:\wamp\www\arduino e o arquivo
index.html. Ae podemos criar outros diretrios, vrios arquivos html, php,
css e dentre outros.
A instalao no Windows eu achei um pouco longo e trabalhosa, prxima
parte ser no Linux e vocs iro ver a facilidade de levantar os mesmos
servios, espero ter sido claro e de fcil compreenso e que todos
consigam caso precise fazer no Windows.

A ideia juntar a idia e o poder o Arduino + Ethernet Shield com o poder


e recursos de um servidor web de verdade (Apache, php5, python dentre
outros recursos) pois no Arduino ficamos muito limitados em poder de
processamento e apenas formatao html, j um servidor apache temos
um leque enorme de possibilidades e ideia que iremos explorar em
breve.

Arduino Instalando e
configurando um servidor web
[Parte2]
Linux
Agora voc iro ver como complexa a instalao do Apache + PHP5 +
MySQL Server no Linux, hehe. Brincadeiras a parte, no porque sou
usurio nato de Linux e uso isso todo santo dia mas, hoje qualquer
aplicao web, banco de dados, compartilhamento de arquivos eu faria
em Linux, com certeza ir ter bem menas dor de cabea.
Bom ento vamos preparar nosso laboratrio web server Linux para
nossos futuros trabalhos com Arduino. No caso estou usando uma
Maquina Virtual com o Ubuntu 10.10 Maverick 64bits, tenha certeza que
a internet esteja habilita na sua VM ou computador e vamos iniciar.
Antes de instalarmos os servios vamos ver o que temos rodando nas
portas do nosso Linux:
No vejo nada na 80 nem na 3306 ok? Na 22 sim que meu SSH e nas
outras de outros servios que rodam em background.
Abra um terminal bash do Linux, se usar Ubuntu pressione Ctrl + T, ou v
em Aplicativos > Acessrios > Terminal.
Em seguida logue como super usurio (su) ou use o sudo antes dos
comandos que irei passar.

root@vb-om-teste:/# apt-get update && apt-get install apache2 apache2-utils libapache2-


1
mod-php5 php5 php5-mysql php5-dbg php5-cgi mysql-server mysql-client

ou

cleiton@vb-om-teste:/$ sudo apt-get update && sudo apt-get install apache2 apache2-utils
1
libapache2-mod-php5 php5 php5-mysql php5-dbg php5-cgi mysql-server mysql-client

Como na figura abaixo:


Pode ser aparea uma mensagem pedindo confirmao para instalar libs
adicionais, apenas digite S.
Agora vamos ver o que esta rodando aps a instalao acima:
Temos o netstat com www e mysql que so os servios, e um outro que
est aberto no endereo remoto 192.168.0.12 eu j testei hehe.
Pra ficar mais limpa a visualizao vamos usar o nmap, como na figura
abaixo:
Agora ficou claro, no? 80 aberta sendo http e 3306 aberta sendo mysql.
No assustem com 8080 um outro server web, no Apache o
Tomcat, mas no ir nos atrapalhar em nada.

Ok, agora vamos ver nosso IP do Linux para testar local e remoto nosso
servidor web, usaremos o comando ifconfig, como na figura abaixo:
Com o IP do Linux em mos no meu caso 192.168.0.10, abra um
navegador e digite 192.168.0.10.
E com j deu pra notar na imagem acima do lado esquerdo esta o
navegador no computador Windows e na do lado direito a VM Linux com
o Apache2, MySQL e PHP5 e abriu sem problemas pela rede, no
tivemos o mesmo problema que no Windows.
A mensagem It works! . padro do Apache e sinal que esta
funcionando!
Agora vamos ver onde inserimos os arquivos (html, htm, css, js, php, )
no Windows ficava em C:\wamp\www correto? No Linux quase a
mesma ideia, mas o local padro /var/www/.

Ento acesse /var/www, pode ser pelo terminal mesmo digitando:

1 cleiton@vb-om-teste:/$ cd /var/www/
2 cleiton@vb-om-teste:/var/www$
Vamos criar um diretrio em /var/www com o nome arduino tambm que
iremos usar em outros posts e dentro de /var/www/arduino um arquivo
chamado index.html, faa como abaixo:

1 cleiton@vb-om-teste:/var/www$ mkdir arduino


2 cleiton@vb-om-teste:/var/www$ cd arduino
3 cleiton@vb-om-teste:/var/www/arduino$ touch index.html

Ok, agora vamos inserir o contedo html como no post do Windows, para
isso quem souber usar o nano,
vi ou vim faa via terminal mesmo, caso contrario digite o comando
abaixo:

1 cleiton@vb-om-teste:/var/www/arduino$ gedit index.html

E insira o seguinte contedo html:

1
2 <html>
3 <head><title>Arduino Web Local</title></head>
4
5 <body>
6 <h1>Arduino Web Cliente</h1>
7 <a>Servidor web para comunicar com Arduino
8 <br>
9 Ethernet Shield funcionando!<br>
1 Powered Linux!</a>
0 </body>
1 </html>
1
Agora abra um navegador e digite o IP do Linux, no meu caso
http://192.168.0.10/arduino/ e uma pagina como abaixo para ser
carregada.

Ento do lado esquerdo esta nossa pgina web que acabamos de criar e
do lado direito esta o caminho do nosso diretrio e pagina
/var/www/arduino, o contedo da pagina e o arquivo dentro de
/var/www/arduino no caso index.html.

Aqui tudo funcionou de primeira, e fiz o procedimento no Ubuntu 12.04


tambm, mas caso a pgina no carrega, faa o seguinte:

1 cleiton@vb-om-teste:/var/www/arduino$ cd /var/www/
2 cleiton@vb-om-teste:/var/www$ sudo chown www-data:www-data arduino/ -R

E tente novamente, para funcionar sem problemas.


Bom agora estamos com nossos dois laboratrios web (Windows e
Linux) instalados e funcionando, com banco de dados e PHP5 para fazer
scripts, tratamentos e armazenar em um banco de dados.