Arduino - Web Oscilloscope (Support Trigger)
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Se você é um iniciante, pode aprender mais sobre o Arduino - Wifi.
Demonstração
Recursos
- Suporte 6 canais
- Suporta gatilho único, gatilho múltiplo
- Modo de gatilho selecionável:queda, subida, queda e subida
- Valor de gatilho configurável
- Ajuste da divisão do tempo por meio de um botão da web
- Ajuste da divisão de tensão para cada canal por meio de um botão da web
- Ajuste do deslocamento da tela para cada canal por meio de um botão giratório da web
- Toque ou clique para mostrar / ocultar a área de configuração
- Trabalho em plataforma cruzada:Window, Linux, iOS, Android ... (devido à característica da web), que possui um navegador da web
Interface do usuário
Como funciona
Como o Web Oscilloscope é uma modificação do Web Serial Monitor no PHPoC, vou explicar como o Web Serial Monitor funciona primeiro.
O escudo PHPoC tem um aplicativo da web embutido, chamado "Web Serial Monitor". É semelhante ao Serial Monitor no Arduino IDE. A diferença entre o Serial Monitor no Arduino IDE é que:
- Monitor serial no IDE Arduino: Lendo dados do pino tx do arduino via cabo USB.
- Monitor serial da web no PHPoC Shield: Leitura de dados do arduino tx pin via Internet
Em detalhes, o PHPoC Shield se comunica com o Arduino via SPI. Quando o usuário acessa o Web Serial Monitor de um navegador da web. Depois que a página é carregada, ela faz uma conexão WebSocket com o PHPoC Shield. Neste momento, o PHPoC Shield está empilhado no Arduino, ele captura dados do pino TX do Arduino e, em seguida, envia esses dados para o Web Serial Monitor no navegador via WebSocket. O Web Serial recebe os dados e os exibe na web.
Isso permite que o usuário não apenas veja os dados no PC, mas também veja os dados no celular ou em qualquer dispositivo que ofereça suporte a um navegador da web
Agora vamos ver como o Osciloscópio da Web funciona.
O Osciloscópio da Web funciona da mesma forma que o Monitor Serial da Web, exceto pela última parte.
Em vez de exibir dados brutos na web, o Web Oscilloscope visualiza os dados na garra. Outras funções são adicionadas, o que permite ao usuário ajustar a IU e executar o gatilho.
Sobre os dados, que são enviados do Arduino
O Arduino lê os dados do pino ADC (de A0 a A5) e lê o carimbo de data / hora (em microssegundos)
Os dados ADC são convertidos em voltagem e impressos na porta serial junto com o carimbo de data / hora de acordo com o seguinte formato:
- Em primeiro lugar, carimbo de data / hora, seguido de um espaço em branco ou um caractere "\ t".
- E então, seguido pelos dados de tensão. os dados de cada canal são separados por um espaço em branco ou caractere "\ t".
- O final é um caractere de nova linha
Nota: O canal máximo é 6, mas você também pode enviar apenas dados de um, dois, apenas três canais.
Código-fonte
O código Souce inclui duas partes:
- Código Arduino (consulte o WebOscilloscope.ino)
- Código do aplicativo da Web (oscilloscope.php):este é o código da interface do usuário. Ele precisa ser carregado para PHPoC Shield de acordo com esta instrução
Como usar
Acesse o Osciloscópio da web a partir do navegador da web em seu PC ou smartphone digitando: http:// replace_ip_address /oscilloscope.php
Como medir sinal:Só precisa usar dois fios, um para GND e outro para qualquer pino Analógico do Arduino (A0 a A5). Conecte esses dois pinos ao ponto em que queremos verificar o sinal.
Como existem 6 canais, precisamos de 6 fios de aterramento. Por conveniência, no entanto, o Arduino tem apenas dois pinos GND. Eu faço como abaixo para estender mais pinos GND.
O melhor Arduino Starter Kit para iniciantes
Se você estiver procurando por um kit Arduino, consulte O melhor kit Arduino para iniciantes
Referências de função
- Serial.begin ()
- Serial.println ()
- atraso ()
- milis ()
- para loop
- while loop
- se mais
- loop ()
- configuração ()
- String.toInt ()
- String.substring ()
- String.indexOf ()
- String.remove ()
- String.equals ()
Código
- WebOscilloscope.ino
- oscilloscope.php
WebOscilloscope.ino Arduino
Este é o código do Arduino. NÃO precisamos enviar todos os dados de 6 canais. Como você pode ver, eu comentei canal de dados 3#include#include #define AREF 5.0 # define ADC_MAX 1023.0float ratio =AREF / ADC_MAX; void setup () {Serial.begin (115200); Phpoc.begin ();} void loop () {// ler a hora do sistema unsigned long time_a =micros (); // lê o valor analógico e converte para tensão:float voltageChannel0 =analogRead (A0) * ratio; float voltageChannel1 =analogRead (A1) * ratio; float voltageChannel2 =analogRead (A2) * ratio; float voltageChannel3 =analogRead (A3) * ratio; float voltageChannel4 =analogRead (A4) * ratio; float voltageChannel5 =analogRead (A5) * ratio; // envia a hora do sistema primeiro Serial.print (time_a); Serial.print (""); // envia o valor de cada canal, separado por "" ou "\ t". Serial.print (voltageChannel0); Serial.print (""); Serial.print (voltageChannel1); Serial.print (""); Serial.print (voltageChannel2); Serial.print (""); //Serial.print(voltageChannel3); //Serial.print (""); Serial.print (voltageChannel4); Serial.print (""); // o último canal deve enviar com novos caracteres de linha Serial.println (voltageChannel5);}
oscilloscope.php PHP
Este é o código da Web.PHPoC Shield - Web Oscilloscope para Arduino 0
Esquemas
Processo de manufatura