Este tutorial vai mostrar como usar um Arduino para controlar um servo motor a partir de um navegador web no seu smartphone ou PC. Vamos utilizar a tecnologia WebSocket para permitir um controle fluido e dinâmico do servo motor por meio de uma interface gráfica de usuário web.
Agora, por que devemos usar o WebSocket? Veja o motivo:
Sem o WebSocket, toda vez que você precisasse ajustar o ângulo do servo, teria que recarregar a página web. Isso não é o ideal.
Porém, com o WebSocket, estabelecemos uma conexão dedicada entre a página web e o Arduino. Essa configuração nos permite transmitir o valor do ângulo para o Arduino em segundo plano, sem precisar recarregar a página. Como resultado, o servo funciona de forma suave e responde em tempo real. Bem impressionante, não é?
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Temos tutoriais específicos sobre servo motor e WebSocket. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação com o Arduino, o código Arduino... Saiba mais sobre eles nos links a seguir:
O código do Arduino configura tanto um servidor web quanto um servidor WebSocket. Veja o processo passo a passo:
Quando você digita o endereço IP do Arduino em um navegador web, ele envia uma requisição pela página web (Interface do Usuário) hospedada no Arduino.
O servidor web do Arduino responde enviando de volta o conteúdo da página web (HTML, CSS, JavaScript).
Seu navegador web então exibe a página web.
O código JavaScript incorporado na página web inicia uma conexão WebSocket com o servidor WebSocket no Arduino.
Quando a conexão WebSocket está ativa, se você ajustar a alavanca na página web, o código JavaScript transmite discretamente o valor do ângulo para o Arduino por essa conexão WebSocket em segundo plano.
O servidor WebSocket no Arduino, ao receber esse valor de ângulo, ajusta o servo motor de acordo.
Em resumo, a conexão WebSocket possibilita um controle suave e em tempo real do ângulo do servo motor.
Diagrama de Ligação entre o Servo Motor e o Arduino
This image is created using Fritzing. Click to enlarge image
Para simplificar, o diagrama de ligação acima é usado para fins de teste ou aprendizado e para servo motores de baixo torque. Na prática, recomendamos fortemente usar uma fonte de alimentação externa para o servo motor. O diagrama de ligação abaixo mostra como conectar o servo motor a uma fonte de alimentação externa.
Código Arduino
O conteúdo da página web (HTML, CSS, JavaScript) fica armazenado separadamente em um arquivo index.h. Assim, teremos dois arquivos de código na Arduino IDE:
Um arquivo .ino, que é o código do Arduino, que cria um servidor web e um servidor WebSocket e controla o servo motor
Um arquivo .h, que contém o conteúdo da página web.
Agora você tem o código em dois arquivos: ArduinoGetStarted.com.ino e index.h
Clique no botão Upload na Arduino IDE para carregar o código no Arduino.
Abra o Serial Monitor
Confira o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino Uno R4 WiFi - WebSocket Server controls Servo Motor
Connected! IP Address: 192.168.0.254
SSID: YOUR_WIFI_SSID
IP Address: 192.168.0.254
Signal strength (RSSI): -44 dBm
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.254:81
WebSocket server enabled successfully
Ln 11, Col 1
Arduino Uno on COM15
2
Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu smartphone ou PC.
Você verá a página web como abaixo:
O código JavaScript da página web cria automaticamente a conexão WebSocket com o Arduino.
Agora você pode controlar o ângulo do servo motor girando a alavanca do motor na interface web.
Confira o resultado no Serial Monitor; você também verá os valores de ângulo vindos da web.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
WebSocket server enabled successfully
WebSocket client connected from: 192.168.0.7
New WebSocket connection
Rotate Servo Motor to 90
Rotate Servo Motor to 89
Rotate Servo Motor to 88
Rotate Servo Motor to 87
Ln 11, Col 1
Arduino Uno on COM15
2
Para economizar a memória do Arduino, as imagens do servo motor NÃO são armazenadas no Arduino. Em vez disso, elas ficam armazenadas na internet; por isso, seu celular ou PC precisa ter conexão com a internet para carregar as imagens da página de controle web.
※ Nota:
Se você modificar o conteúdo HTML no index.h e não mexer em nada no arquivo ArduinoGetStarted.com.ino, quando você compilar e carregar o código no Arduino, a Arduino IDE não vai atualizar o conteúdo HTML.
Para fazer a Arduino IDE atualizar o conteúdo HTML nesse caso, faça uma alteração no arquivo ArduinoGetStarted.com.ino (por exemplo, adicionar uma linha vazia, adicionar um comentário....)
Explicação do Código Linha por Linha
O código Arduino acima contém explicações linha por linha. Leia os comentários no código!
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!