Iniciação ao Arduino
1. ESP8266 – ESP01
O ESP8266 ESP-01 é um módulo Wi-Fi que permite que os microcontroladores
acessem uma rede wireless. Este módulo é um SOC (System On a Chip) independente que não
precisa necessariamente de um microcontrolador.
Dependendo da versão do ESP8266, é possível ter até 9 GPIOs (General Purpose Input
Output). Assim, podemos fornecer um acesso à Internet por um microcontrolador ou podemos
simplesmente programar o ESP8266 para não apenas ter acesso a uma rede Wi-Fi, mas também
para atuar como um microcontrolador. A figura 01 apresenta a placa do ESP01.
Figura 01 – Placa do ESP01
São 8 pinos, confira a descrição de cada um deles:
- RXD e TXD: São os pinos para comunicação serial.
- GPIO0 e GPIO2: São os pinos de propósito geral.
- GND: Referência da alimentação.
- VCC: Sinal de alimentação positivo de 3.3V.
- RST: Pino de reset.
- CH_PD: Chip Power Down
2. INSTALAÇÃO DA BIBLIOTECA NO IDE ARDUINO
Entre na IDE do Arduino e clique em Arquivo -> Preferências:
sttechboni.weebly.com 1
Iniciação ao Arduino
Na tela seguinte, digite o seguinte link no campo URLs adicionais de Gerenciadores de
Placas:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
A sua tela ficará assim:
Clique em OK para retornar à tela principal da IDE. Agora clique em Ferramentas ->
Placa -> Gerenciador de Placas:
Utilize a barra de rolagem para encontrar o ESP8266 by ESP8266 Community e clique
em INSTALAR.
Após alguns minutos as placas da linha ESP8266 já estarão disponíveis na lista de
placas da IDE do Arduino.
sttechboni.weebly.com 2
Iniciação ao Arduino
Para gravar o ESP01 é necessário um adaptador que tem um conector USB para que o
conecte diretamente ao computador. Um chip CH340 cuida de todo o processo de conversão
USB-Serial, e o adaptador possui um capacitor de 1000µF para evitar problemas na alimentação
do ESP8266. A figura mostra esse adaptador.
Figura – Adaptador com CI CH340
O sentido de conexão do módulo ESP8266 ESP-01, que deve ser encaixado no
adaptador conforme a figura:
Figura – Conexão ESP01 e o adaptador com CI CH340
Um drive deve ser instalado para a placa CH340:
https://sparks.gogo.co.nz/ch340.html
Para verificação de conexão na USB utiliza-se um terminal. Para download:
https://www.compuphase.com/software_termite.htm
sttechboni.weebly.com 3
Iniciação ao Arduino
Para a transmissão de um programa para ESP01 deve-se seguir os seguintes passos:
1. Conectar a placa na USB como a conexão do pino GPIO0 ao GND;
2. Retire essa conexão;
3. No menu Arquivo, selecione Exemplos > 01.Basics > Blink
4. No menu Ferramentas selecione BUILTIN LED 1
5. Faça o download, sem a conexão dos pinos GPIO0 e GND
6. Retire e recoloque a placa do ESP01 na USB para reiniciar, sem a conexão dos
pinos GPIO0 e GND
O LED azul na por GPIO0 deve ficar piscando.
sttechboni.weebly.com 4
Iniciação ao Arduino
3. Acionamento de uma carga por wifi com ESP01
3.1 Aspectos de Hardware
Vamos para a montagem do hardware. A lista de componentes é a seguinte:
- Módulo relé;
- ESP-01;
- LED;
- Resistor de 330 [Ω].
Note que não nenhum Arduino ou outra placa de processamento, somente o ESP-01.
Usamos o seu GPIO02 para comandar o LED, sem a necessidade de circuitos de processamento
adicionais.
Para o circuito de acionamento, é necessário que o ESP já esteja com o software
embarcado.
Os pontos importantes a serem lembrados são:
Caso o pino RXD esteja conectado a um TXD de 5 [V], é necessário usar um conversor
de nível lógico ou um divisor de tensão. Alguns projetos na internet não fazem essa conversão,
mas o risco de prejuízo é sempre seu. O correto é sempre usar os níveis lógicos adequados para
cada circuito.
Recomenda-se o uso de uma fonte externa para alimentá-lo. Usar o 3.3 [V] de um
Arduino, por exemplo, como fonte de alimentação, não é uma boa opção, pois o ESP facilmente
consome mais corrente do que o Arduino pode fornecer.
sttechboni.weebly.com 5
Iniciação ao Arduino
3.2 Aspectos de software
Quanto ao programa, dois pontos são importantes de serem destacados. O primeiro é
que será utilizada a biblioteca ESP8266WiFi.h. E segundo, é preciso a instalação na sua IDE
arduino os pacotes referentes ao ESP8266. A IDE Arduino será usada apenas como ferramenta
de programação.
O programa:
#include <ESP8266WiFi.h> // Biblioteca
#define LoadPin 2 // GPIO2
const char* ssid = "amtdsp"; //Nome da sua rede ssid
const char* password = "08877190"; //Senha do sua rede
IPAddress staticIP(192,168,1,3);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
WiFiServer server(80); //Porta de serviço
int value = LOW;
void setup()
{
Serial.begin(9600); //Velocidade da serial
delay(10); // Tempo de retardo
pinMode(LoadPin, OUTPUT); // Define pino GPIO02 como saida
digitalWrite(LoadPin, LOW); // Inicia com valor lógico 0
// Conecta Rede wifi
Serial.println();
Serial.print("Conectando na rede: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
delay(500);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
sttechboni.weebly.com 6
Iniciação ao Arduino
Serial.println("");
Serial.println("Conectado!");
//Inicializa o servidor
server.begin();
Serial.println("Servidor Inicializado");
// Imprime o endereco IP
Serial.print("Utilize essa URL: 192.168.1.3 ");
Serial.print("http://gdresp01");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop()
{
// Verifica se o cliente está conectado
WiFiClient client = server.available();
if (!client)
{
return;
}
//Aguarda envio de dados pelo cliente
while (!client.available())
{
delay(1);
}
//LE a primeira linha da requisicao
String request = client.readStringUntil('\r');
client.flush();
//aciona a luminaria led de acordo com os dados recebidos
if (request.indexOf("/Carga=ON") != -1)
{
Serial.println(request);
digitalWrite(LoadPin, HIGH);
sttechboni.weebly.com 7
Iniciação ao Arduino
value = HIGH;
}
if (request.indexOf("/Carga=OFF") != -1)
{
Serial.println(request);
digitalWrite(LoadPin, LOW);
value = LOW;
}
//envia mensagem de resposta
client.println("HTTP/192.168.1.3 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("Status da carga: ");
if (value == HIGH)
{
client.print("On");
}
else
{
client.print("Off");
}
//Mensagem que aparece no site
client.println("<br><br>");
client.println("Clique<ahref=\"/Carga=ON\">here</a>paraligar<br><br><br>");
client.println("Clique <a href=\"/Carga=OFF\"> here</a> para desligar<br>");
client.println("</html>");
delay(1);
Serial.println("");
}
sttechboni.weebly.com 8