Você está na página 1de 10

PRIMEIROS PASSOS COM O ESP8266

UTILIZANDO A IDE DO ARDUINO


GUARNIERI, Eliton Tiago Guzi 1

RESUMO
Este documento apresenta uma forma simples de utilizao da IDE do Arduino para
o mdulo ESP8266. Com um passo a passo de configurao da IDE como tambm
um exemplo simples da sua utilizao, todo o processo sendo demostrado atravs
de imagens.
Palavras-chave: ESP8266; IDE Arduino.

ABSTRACT
This document presents a simple way to use the Arduino IDE for ESP8266 module.
With a step by step of the IDE configuration as well a simple example of its use, the
process being shown with images.
Keywords: ESP8266; IDE Arduino.

INTRODUO
Promovendo uma soluo de baixo custo para projetos de Internet das Coisas
com soluo de comunicao Wi-Fi, o mdulo ESP8266 chegou no mercado no final
de 2014, criado pela empresa chinesa Espressif Systems. Existem vrios mdulos
disponveis no mercado, alguns com preos menores que 5 dlares.
Mas uma das maiores dificuldades ainda encontrada como utilizar esta
ferramenta da melhor forma possvel e como ela pode encaixar em seu projeto.
Existem vrios firmwares disponveis no mercado, cada qual com uma forma

_____________
1Graduando do Curso de Bacharel em Cincia da Computao do Instituto Federal de Educao,
Cincia e Tecnologia Catarinense - Cmpus Videira, elitontiagoguzi@gmail.com;
Videira SC, Julho de 2016.

diferente de programao, algumas com linguagens interpretadas outras com


linguagens compiladas.
Para usurios do Arduino, existe uma forma de utilizar a mesma IDE e a
mesma linguagem de programao para programar o ESP8266. Esta uma forma
bem interessante pois a curva de aprendizagem se torna bem mais curta, mas a
documentao ainda escassa, pois esta forma de programao ainda nova.
Para auxiliar nos primeiros passos, este artigo propiciar um tutorial para
utilizar a IDE do Arduino para programar o mdulo ESP8266, seguido de um
exemplo bem simples de pisca Led via pgina Web local.
REQUISITOS PARA CONFIGURAO DA IDE
Com o lanamento da IDE do Arduino 1.6.4, placas de terceiros podem ser
adicionadas. Se estiver usando uma verso anterior da IDE anterior da 1.6.4
necessrio atualiz-la agora. A ltima verso da IDE pode ser baixada a partir do
arduino.cc (SPARKFUN, 2015). A verso em julho de 2016 a 1.6.9 (figura 1),
possuindo verses para diferentes sistemas operacionais. Sendo necessrio
somente clicar na sua verso de SO que o download comear.
Figura 1: Tela de download da IDE do Arduino.

Fonte: arduino.cc.

Para verificar se a sua verso compatvel necessrio verificar se possui


URLs adicionais de gerenciadores de placas (figura 2), dentro de preferncias que
acessada atravs do menu superior arquivo.

Figura 2: Tela preferncias da IDE do Arduino.

Fonte: O autor.

CONFIGURANDO A IDE

Para comear necessrio inserir a URL customizada no campo marcado da


figura 2. A URL que dever ser adicionada vista abaixo:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Com a URL adicionada somente necessrio clicar em OK. Aps isso feito
novas opes aparecero no gerenciador de placas. O gerenciador de placas se
encontra dentro do menu ferramentas, seguido do submenu placa: xxx, como pode
ser visto na figura 3.

Figura 3: Caminho para acessar gerenciador de placas.

Fonte: O autor.

Ao abrir o gerenciador de placas deve haver novas entradas alm das placas
Arduino padro. Procure por ESP8266 (figura 4) e clique na entrada, em seguida,
selecione instalar.
Figura 4: Tela para adio das placas do ESP8266.

Fonte: O autor.

Feito isso as definies de placa e ferramentas para o ESP8266 sero


incluidas (figura 5), juntamente com alguns exemplos simples para sua utilizao
inicial (figura 6). Feito isso a IDE est pronta para uso.
Figura 5: Placas adicionadas no arduino.

Fonte: O autor.

Figura 6: Novos exemplos para o ESP8266.

Fonte: O autor.

EXEMPLOS DE UTILIZAO

Alguns exemplos no funcionam como esperado sendo necessrio algumas


alteraes para conseguir ter um bom funcionamento. O cdigo abaixo demonstra
um exemplo, onde o ESP8266 cria uma pgina web com botes para ligar e desligar
um led, ao acionar algum dos botes inserido uma extenso ao link com a letra H
ao apertar o boto para ligar o led ou a letra L ao apertar o boto para desligar o
led. Com base nesta extenso que o programa determina qual ao ir tomar.
Cdigo exemplo de pisca led via web.
/*
WiFi Web Server LED Blink
A simple web server that lets you blink an LED via the web.
This sketch will print the IP address of your WiFi Shield (once connected)
to the Serial monitor. From there, you can open that address in a web browser
to turn on and off the LED on pin 9.
If the IP address of your
shield is yourAddress:
http://yourAddress/H turns the LED on
http://yourAddress/L turns it off
This example is written for a network using WPA encryption. For
WEP or WPA, change the Wifi.begin() call accordingly.
Circuit:
* WiFi shield attached
* LED attached to pin 9
created 25 Nov 2012
by Tom Igoe
altered 10 Set 2015
by Eliton Tiago
*/
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiClient.h>
#include <SPI.h>
char ssid[] = "yournetwork";
// your network SSID (name)
char pass[] = "yourpassword"; // your network password
int keyIndex = 0;
// your network key Index number (needed only for WEP)
int status = WL_IDLE_STATUS;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(2, OUTPUT);

// initialize serial communication


// set the LED pin mode

WiFi.begin(ssid, pass);
Serial.println("");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
printWifiStatus();

// start the web server on port 80


// you're connected now, so print out the status

void loop() {
WiFiClient client = server.available(); // listen for incoming clients
if (client) {
// if you get a client,
Serial.println("new client");
// print a message out the serial port
String currentLine = "";
// make a String to hold incoming data from the client
while (client.connected()) {
// loop while the client's connected
if (client.available()) {
// if there's bytes to read from the client,
char c = client.read();
// read a byte, then
Serial.write(c);
// print it out the serial monitor
if (c == '\n') {
// if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// the content of the HTTP response follows the header:
client.print("<font size=\"7\">Click <a href=\"/H\">here</a> turn the LED on pin 2 on<br><br>");
client.print("Click <a href=\"/L\">here</a> turn the LED on pin 2 off<br>");
// The HTTP response ends with another blank line:
client.println();
// break out of the while loop:
break;
}
else {
// if you got a newline, then clear currentLine:
currentLine = "";
}
}
else if (c != '\r') { // if you got anything else but a carriage return character,
currentLine += c;
// add it to the end of the currentLine
}
// Check to see if the client request was "GET /H" or "GET /L":
if (currentLine.endsWith("GET /H")) {
digitalWrite(2, HIGH);
// GET /H turns the LED on

}
if (currentLine.endsWith("GET /L")) {
digitalWrite(2, LOW);
// GET /L turns the LED off
}
}
}
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
// print where to go in a browser:
Serial.print("To see this page in action, open a browser to http://");
Serial.println(ip);
}

Na figura 7 observado o exemplo em execuo demonstrando o seu


funcionamento, com o led acesso ao fundo.
Figura 7: Teste com o exemplo passado.

Fonte: O autor.

O modelo do ESP8266 utilizado no exemplo passado neste artigo foi o


ESP201 e ligao pode ser verificada na figura 8. Se ocorrer alguns problemas ao
tentar carregar o programa, pode ser resolvido dando um pulso no boto de reset
um pouco antes do programa comear a ser carregado.
Figura 8: Ligao utilizada no exemplo

Fonte: O autor.

RESULTADOS E DISCUSSO

Tendo em vista todo o poder que a IDE do Arduino j propricia a muitos


usurios desta ferramenta, poder ir alm do que o Arduino j faz, se utilizando de
projetos com uma soluo de comunicao sem fio. Contando ainda com a

10

facilidade de utilizao da linguagem e a gama de programas que podem ser


encontrados na web.

REFERNCIAS

SPARKFUN. ESP8266 Thing Hookup Guide - Installing the ESP8266 Arduino


Addon. 2015. Disponvel em: <https://learn.sparkfun.com/tutorials/esp8266-thinghookup-guide/installing-the-esp8266-arduino-addon>. Acesso em: 06 jul. 2016.