Arduino - веб-осциллограф (триггер поддержки)
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Об этом проекте
Если вы новичок, вы можете узнать больше об Arduino - Wifi.
Демонстрация
Особенности
- Поддержка 6 каналов.
- Поддержка одного триггера, нескольких триггеров
- Выбираемый режим триггера:падающий, восходящий, падающий и восходящий.
- Настраиваемое значение триггера
- Регулировка временного разделения с помощью веб-ручки
- Регулировка деления напряжения для каждого канала с помощью веб-ручки.
- Регулировка смещения отображения для каждого канала с помощью веб-ручки.
- Коснитесь или щелкните, чтобы показать / скрыть область настроек.
- Работа на кросс-платформе:Window, Linux, iOS, Android ... (из-за особенностей Интернета), в которой есть веб-браузер.
Пользовательский интерфейс
Как это работает
Поскольку Web Oscilloscope является модификацией Web Serial Monitor на PHPoC, я сначала объясню, как работает Web Serial Monitor.
В PHPoC shield есть встроенное веб-приложение под названием «Web Serial Monitor». Он похож на Serial Monitor в Arduino IDE. Разница между Serial Monitor в среде Arduino IDE заключается в следующем:
- Монитор последовательного порта в среде Arduino IDE: Чтение данных с вывода arduino tx через USB-кабель.
- Web Serial Monitor на PHPoC Shield: Чтение данных с пина arduino tx через Интернет
В деталях, PHPoC Shield взаимодействует с Arduino через SPI. Когда пользователь получает доступ к Web Serial Monitor из веб-браузера. После загрузки страницы она устанавливает соединение WebSocket с PHPoC Shield. В настоящее время PHPoC Shield установлен на Arduino, он захватывает данные с вывода Arduino TX, а затем отправляет эти данные в Web Serial Monitor в веб-браузере через WebSocket. Web Serial получает данные и отображает их в Интернете.
Это позволяет пользователю не только видеть данные на ПК, но также просматривать данные на мобильном телефоне или любых устройствах, поддерживающих веб-браузер
Теперь давайте посмотрим, как работает веб-осциллограф.
Веб-осциллограф работает так же, как веб-последовательный монитор, за исключением последней части.
Вместо отображения необработанных данных в сети, веб-осциллограф визуализирует данные на графике. Добавлены другие функции, которые позволяют пользователю настраивать пользовательский интерфейс и запускать триггер.
О данных, которые отправляются из Arduino
Arduino считывает данные с вывода АЦП (от A0 до A5) и считывает метку времени (в микросекундах)
Данные АЦП преобразуются в напряжение и выводятся на последовательный порт вместе с отметкой времени в следующем формате:
- Во-первых, отметка времени, за которой следует пробел или символ "\ t".
- Затем следуют данные о напряжении. данные каждого канала разделяются пробелом или символом "\ t".
- Конец - символ новой строки.
Примечание. Максимальное количество каналов - 6, но вы также можете отправлять данные только одного, двух только трех каналов.
Исходный код
Код Souce состоит из двух частей:
- Код Arduino (см. WebOscilloscope.ino)
- Код веб-приложения (oscilloscope.php):это код пользовательского интерфейса. Его необходимо загрузить в PHPoC Shield в соответствии с этой инструкцией.
Как использовать
Доступ к веб-осциллографу через веб-браузер на ПК или смартфоне, набрав: http:// replace_ip_address /oscilloscope.php
Как измерить сигнал:просто нужно использовать два провода, один к GND и один к любому аналоговому выводу Arduino (от A0 до A5). Подключите эти два контакта к точке, где мы хотим проверить сигнал.
Так как каналов 6, нам понадобится 6 заземляющих проводов. Однако для удобства Arduino имеет только два контакта GND. Я делаю, как показано ниже, чтобы удлинить больше контактов GND.
Лучший стартовый комплект Arduino для начинающих
Если вы ищете комплект Arduino, см. «Лучший комплект Arduino для начинающих»
Ссылки на функции
- Serial.begin ()
- Serial.println ()
- delay ()
- миллис ()
- цикл для
- цикл while
- если еще
- цикл ()
- setup ()
- String.toInt ()
- String.substring ()
- String.indexOf ()
- String.remove ()
- String.equals ()
Код
- WebOscilloscope.ino
- oscilloscope.php
WebOscilloscope.ino Arduino
Это код Arduino. Нам НЕ нужно отправлять все 6-канальные данные. Как видите, я прокомментировал канал данных 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 () {// чтение беззнакового системного времени long time_a =micros (); // считываем аналоговое значение и преобразуем его в напряжение: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; // сначала отправляем системное время Serial.print (time_a); Serial.print (""); // отправляем значение каждого канала, разделенное "" или "\ 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 (""); // последний канал должен отправлять символы новой строки Serial.println (VoltageChannel5);}
oscilloscope.php PHP
Это веб-код.PHPoC Shield - веб-осциллограф для Arduino
Схема
Производственный процесс