A comunicação sem fio entre dispositivos eletrônicos e módulos é muito importante, para torná-los 'adequados' no mundo da Internet das coisas. O protocolo HTTP e a linguagem HTML tornaram possível a transferência dos Dados para qualquer lugar do mundo, pela web. Já cobrimos alguns projetos que usam Wi-Fi com Arduino, dê uma olhada neles em Primeiros passos:
- Envio de e-mail usando Arduino e módulo WiFi ESP8266
- Robô controlado por WiFi usando Arduino
- Controlando LED RGB usando Arduino e Wi-Fi
Agora, neste tutorial, estamos construindo um programa para enviar dados para a Web usando o Arduino e o módulo Wi-Fi. Para isso, primeiro precisamos de um endereço IP de servidor global ou local, aqui para fins de facilidade e demonstração, estamos usando o servidor local.
Componentes necessários:
- Arduino UNO
- Módulo ESP8266 Wi-Fi
- Cabo USB
- Fios de conexão
- Computador portátil
- Fonte de energia
Módulo Wi-Fi ESP8266:
Conexões de circuito:
Diagrama de circuito para “Pós-dados do Arduino para a Web” é fornecido abaixo. Precisamos principalmente de um módulo Wi-Fi Arduino e ESP8266. Os pinos Vcc e GND do ESP8266 são conectados diretamente a 3,3 V e o GND do Arduino e o CH_PD também está conectado a 3,3 V. Os pinos Tx e Rx do ESP8266 são conectados diretamente aos pinos 2 e 3 do Arduino. A biblioteca serial do software é usada para permitir a comunicação serial nos pinos 2 e 3 do Arduino. Já cobrimos a interface do módulo ESP8266 Wi-Fi com o Arduino em detalhes.
Usando a Biblioteca serial de software aqui, permitimos a comunicação serial nos pinos 2 e 3 e os tornamos Rx e Tx, respectivamente. Por padrão, os pinos 0 e 1 do Arduino são usados para comunicação serial, mas usando a biblioteca SoftwareSerial, podemos permitir a comunicação serial em outros pinos digitais do Arduino.
Nota: Para assistir a resposta do ESP8266 no monitor serial, abra o Monitor serial do IDE Arduino.
Explicação de trabalho:
Em primeiro lugar, precisamos conectar nosso módulo Wi-Fi ao roteador Wi-Fi para conectividade de rede. Em seguida, iremos configurar o servidor local, enviar os dados para a Web e, finalmente, fechar a conexão. Este processo e comandos foram explicados nas etapas abaixo:
1. Primeiro, precisamos testar o módulo Wi-Fi enviando o comando AT , ele irá reverter uma resposta contendo OK .
2. Depois disso, precisamos selecionar o modo usando o comando AT + CWMODE = mode_id , usamos o modo id = 3. IDs de modo:
1 = Modo Estação (cliente)
2 = Modo AP (host)
3 = Modo AP + Estação (Sim, ESP8266 tem um modo duplo!)
3. Agora precisamos desconectar nosso módulo Wi-Fi da rede Wi-Fi conectada anteriormente, usando o comando AT + CWQAP, já que ESP8266 é conectado automaticamente por padrão com qualquer rede Wi-Fi disponível anteriormente
4. Depois disso, o usuário pode reiniciar o módulo com o comando AT + RST . Esta etapa é opcional.
5. Agora precisamos conectar ESP8266 ao roteador Wi-Fi usando o comando fornecido
6. Agora obtenha o endereço IP usando o comando fornecido:
Ele retornará um endereço IP.
7. Agora ative o modo multiplex usando AT + CIPMUX = 1 (1 para conexão múltipla e 0 para conexão única)
8. Agora configure ESP8266 como servidor usando AT + CIPSERVER = 1, port_no (a porta pode ser 80). Agora o seu Wi-Fi está pronto. Aqui, '1' é usado para criar o servidor e '0' para deletar o servidor.
9. Agora, usando um determinado comando, o usuário pode enviar dados para o servidor local criado:
Id = ID no. de transmissão de conexão
Comprimento = comprimento máximo de dados é 2 kb
10. Depois de enviar ID e Comprimento para o servidor, precisamos enviar dados como: Serial.println (“[email protected]”);
11. Depois de enviar os dados, precisamos fechar a conexão por meio de um comando:
Agora os dados foram transmitidos ao servidor local.
12. Agora digite o endereço IP na barra de endereços no navegador da web e pressione Enter. Agora o usuário pode ver os dados transmitidos na página da web.
Verifique o vídeo abaixo para ver o processo completo.
Etapas para programação:
1. Inclui SoftwareSerial Library para permitir a comunicação serial nos PINs 2 e 3 e declara algumas variáveis e strings.
#incluir
2. Depois disso, temos que definir algumas funções para realizar nossas tarefas desejadas.
Na função Setup () , inicializamos a comunicação UART serial embutida para ESP8266 como client.begin (9600); à taxa de transmissão de 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Sistema pronto.."); }
3. Na função wifi_init () , inicializamos o módulo wifi enviando alguns comandos como reset, configurar modo, conectar ao roteador, configurar conexão etc. Estes comandos também foram explicados acima na parte de descrição.
void wifi_init () {connect_wifi ("AT", 100); conectar_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Na função connect_wifi () , enviamos dados de comandos para ESP8266 e então lemos a resposta do módulo Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; enquanto (1) {Serial.println (cmd);…………………
5. A função sendwebdata () é usada para enviar dados para o servidor local ou página da web.
void sendwebdata (String webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. A função void send () é usada para enviar strings de dados para a função sendwebdata () . Isso será enviado posteriormente para a página da web.
void Send () {webpage = "
Bem-vindo ao Circuit Digest
"; enviar dados da web (página da web); página da web = nome; página da web + = dat;…………………7. A função get_ip () é usada para obter o endereço IP do servidor local criado.
8. Na função void loop () , enviamos instruções ao usuário para atualizar a página e verificar se o servidor está conectado ou não. Quando o usuário atualiza ou solicita a página da web, os dados são transmitidos automaticamente para o mesmo endereço IP.
loop vazio () {k = 0; Serial.println ("Atualize sua página"); enquanto (k <1000)………………
Podemos exibir quaisquer dados do Arduino para a página da Web usando este processo, como temperatura e umidade ambiente, hora do relógio, coordenadas de GPS, frequência cardíaca etc.