Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino - weboscilloscoop (ondersteuningstrigger)

Componenten en benodigdheden

Arduino UNO
× 1
PHPoC Shield voor Arduino
× 1
Jumperdraden
× 1

Over dit project

Als je een beginner bent, kun je meer leren over Arduino - Wifi.

Demonstratie

Functies

  • Ondersteunt 6 kanalen
  • Ondersteuning van één trigger, meerdere triggers
  • Selecteerbare triggermodus:vallen, stijgen, dalen en stijgen
  • Instelbare triggerwaarde
  • Tijdverdeling aanpassen via een webknop
  • De spanningsverdeling voor elk kanaal aanpassen via een webknop
  • De weergave-offset voor elk kanaal aanpassen via een webknop
  • Tik of klik om het instellingengebied te tonen/verbergen
  • Werk aan cross-platform:Window, Linux, iOS, Android... (vanwege kenmerk van web), dat een webbrowser heeft

Gebruikersinterface

Hoe het werkt

Omdat Web Oscilloscope een wijziging is van Web Serial Monitor op PHPoC, zal ik eerst uitleggen hoe Web Serial Monitor werkt.

PHPoC-schild heeft een ingebouwde ingebouwde web-app, genaamd "Web Serial Monitor". Het is vergelijkbaar met Serial Monitor op Arduino IDE. Het verschil tussen seriële monitor op Arduino IDE is dat:

  • Seriële monitor op Arduino IDE: Gegevens lezen van arduino tx-pin via USB-kabel.
  • Web Seriële Monitor op PHPoC Shield: Gegevens lezen van arduino tx-pin via internet

In detail communiceert PHPoC Shield met Arduino via SPI. Wanneer de gebruiker Web Serial Monitor opent vanuit een webbrowser. Nadat de pagina is geladen, maakt de pagina een WebSocket-verbinding met PHPoC Shield. Op dit moment is PHPoC Shield gestapeld op Arduino, het legt gegevens vast van de Arduino TX-pin en stuurt deze gegevens vervolgens naar Web Serial Monitor in de webbrowser via WebSocket. Web Serial ontvangt de gegevens en wordt op internet weergegeven.

Hierdoor kan de gebruiker niet alleen de gegevens op de pc zien, maar ook de gegevens op de mobiele telefoon of apparaten die een webbrowser ondersteunen

Laten we nu eens kijken hoe weboscilloscoop werkt.

Web Oscilloscope werkt hetzelfde als Web Serial Monitor, behalve het laatste deel.

In plaats van ruwe data op het web weer te geven, visualiseert Web Oscilloscope de data op de grafiek. Er zijn andere functies toegevoegd, waarmee de gebruiker de gebruikersinterface kan aanpassen en een trigger kan uitvoeren.

Over gegevens die door Arduino worden verzonden

Arduino leest gegevens van ADC-pin (van A0 tot A5) en leest tijdstempel (in microseconden)

ADC-gegevens worden geconverteerd naar spanning en afdrukken naar seriële poort samen met tijdstempel volgens het volgende formaat:

  • Ten eerste het tijdstempel, gevolgd door een spatie of "\t"-teken.
  • En dan, gevolgd door spanningsgegevens. gegevens van elk kanaal worden gescheiden door een spatie of "\t"-teken.
  • Het einde is een teken van een nieuwe regel

Opmerking: Het maximale kanaal is 6, maar u kunt ook alleen gegevens van één, twee slechts drie kanalen verzenden.

Broncode

De broncode bestaat uit twee delen:

  • Arduino-code (zie de WebOscilloscope.ino)
  • Web-app-code (oscilloscope.php):dit is gebruikersinterfacecode. Het moet worden geüpload naar PHPoC Shield volgens deze instructie

Hoe te gebruiken

Open Web Oscilloscope vanuit de webbrowser op uw pc of smartphone door te typen:http:// replace_ip_address /oscilloscope.php

Hoe signaal te meten:U hoeft alleen maar twee draden te gebruiken, één naar GND en één naar elke analoge pin van Arduino (A0 tot A5). Verbind deze twee pinnen met het punt waar we het signaal willen controleren.

Omdat er 6 kanalen zijn, hebben we 6 aardedraden nodig. Voor het gemak heeft Arduino echter slechts twee GND-pins. Ik doe zoals hieronder om meer GND-pinnen uit te breiden.

De beste Arduino-starterkit voor beginners

Als u op zoek bent naar een Arduino-kit, zie dan De beste Arduino-kit voor beginners


Functiereferenties

  • Serial.begin()
  • Serial.println()
  • vertraging()
  • millis() ​​​​​​​
  • for-lus
  • terwijl-lus
  • indien anders
  • loop()
  • setup()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()

Code

  • WebOscilloscope.ino
  • oscilloscoop.php
WebOscilloscope.inoArduino
Dit is arduino-code. We hoeven NIET alle 6 kanaalgegevens te verzenden. Zoals je kunt zien, heb ik commentaar gegeven op datakanaal 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() {//lees systeemtijd unsigned long time_a =micros(); // lees de analoge waarde en converteer naar spanning:float voltageChannel0 =analogRead (A0) * ratio; float voltageChannel1 =analogRead (A1) * ratio; float voltageChannel2 =analogRead (A2) * ratio; float voltageChannel3 =analoog lezen (A3) * verhouding; float voltageChannel4 =analogRead (A4) * ratio; float voltageChannel5 =analoog lezen (A5) * verhouding; // stuur eerst de systeemtijd Serial.print (time_a); Serieel.print(" "); // verzend de waarde van elk kanaal, gescheiden door " " of "\t". Serial.print (voltageChannel0); Serieel.print(" "); Seriële.afdruk (voltageChannel1); Serieel.print(" "); Seriële.afdruk (voltageChannel2); Serieel.print(" "); //Serial.print (voltageChannel3); //Serial.print(" "); Serial.print (voltageChannel4); Serieel.print(" "); // het laatste kanaal moet verzenden met nieuwe lijnkarakters Serial.println (voltageChannel5);}
oscilloscoop.phpPHP
Dit is webcode.
PHPoC Shield - weboscilloscoop voor Arduino



Schema's


Productieproces

  1. Web-gestuurde DMX-controller
  2. DIY Eenvoudige 20 kHz Arduino-oscilloscoop op Nokia 5110 LCD
  3. Arduino Spybot
  4. FlickMote
  5. Zelfgemaakte tv B-Gone
  6. Hoofdklok
  7. Vind mij
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. DIY 10Hz-50kHz Oscilloscoop op 128x64 LCD-scherm