Arduino - Oscilloscope Web (Support Trigger)
Composants et fournitures
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
À propos de ce projet
Si vous êtes débutant, vous pouvez en savoir plus sur Arduino - Wifi.
Démonstration
Fonctionnalités
- Prise en charge de 6 chaînes
- Prise en charge d'un seul déclencheur, de plusieurs déclencheurs
- Mode de déclenchement sélectionnable :descendant, ascendant, descendant et ascendant
- Valeur de déclenchement réglable
- Réglage de la division du temps via un bouton Web
- Ajustement de la division de tension pour chaque canal via un bouton Web
- Ajustement du décalage d'affichage pour chaque canal via un bouton Web
- Appuyez ou cliquez pour afficher/masquer la zone de réglage
- Travail sur multiplateforme :Windows, Linux, iOS, Android... (en raison de la caractéristique du Web), qui dispose d'un navigateur Web
Interface utilisateur
Comment ça marche
Étant donné que Web Oscilloscope est une modification de Web Serial Monitor sur PHPoC, je vais d'abord expliquer comment fonctionne Web Serial Monitor.
PHPoC shield dispose d'une application Web intégrée, appelée "Web Serial Monitor". C'est similaire à Serial Monitor sur Arduino IDE. La différence entre Serial Monitor sur Arduino IDE est que :
- Moniteur série sur Arduino IDE : Lecture des données de la broche arduino tx via un câble USB.
- Web Serial Monitor sur PHPoC Shield : Lecture des données de la broche arduino tx via Internet
Dans le détail, PHPoC Shield communique avec Arduino via SPI. Lorsque l'utilisateur accède à Web Serial Monitor à partir d'un navigateur Web. Une fois la page chargée, la page établit une connexion WebSocket à PHPoC Shield. À ce stade, PHPoC Shield est empilé sur Arduino, il capture les données de la broche Arduino TX, puis envoie ces données à Web Serial Monitor sur un navigateur Web via WebSocket. Web Serial reçoit les données et s'affiche sur le Web.
Cela permet à l'utilisateur non seulement de voir les données sur PC, mais également de voir les données sur le mobile ou tout autre appareil prenant en charge un navigateur Web
Voyons maintenant comment fonctionne l'oscilloscope Web.
Web Oscilloscope fonctionne de la même manière que Web Serial Monitor, à l'exception de la dernière partie.
Au lieu d'afficher des données brutes sur le Web, Web Oscilloscope visualise les données sur le graphique. D'autres fonctions sont ajoutées, qui permettent à l'utilisateur d'ajuster l'interface utilisateur et d'effectuer le déclenchement.
À propos des données envoyées depuis Arduino
Arduino lit les données de la broche ADC (de A0 à A5) et lit l'horodatage (en microsecondes)
Les données ADC sont converties en tension et imprimées sur le port série avec l'horodatage selon le format suivant :
- Tout d'abord, l'horodatage, suivi d'un caractère vide ou "\t".
- Et puis, suivi des données de tension. les données de chaque canal sont séparées par un caractère blanc ou "\t".
- La fin est un caractère de nouvelle ligne
Remarque : Le canal maximum est de 6, mais vous pouvez également envoyer uniquement les données d'un, deux seulement trois canaux.
Code source
Le code source comprend deux parties :
- Code Arduino (voir WebOscilloscope.ino)
- Code de l'application Web (oscilloscope.php) :il s'agit du code de l'interface utilisateur. Il doit être téléchargé sur PHPoC Shield conformément à cette instruction
Comment utiliser
Accédez à l'oscilloscope Web à partir du navigateur Web de votre PC ou de votre smartphone en tapant :http:// replace_ip_address /oscilloscope.php
Comment mesurer le signal :il suffit d'utiliser deux fils, un vers GND et un vers n'importe quelle broche analogique d'Arduino (A0 à A5). Connectez ces deux broches au point où nous voulons vérifier le signal.
Comme il y a 6 canaux, nous avons besoin de 6 fils de terre. Pour plus de commodité, cependant, Arduino n'a que deux broches GND. Je fais comme ci-dessous pour étendre plus de broches GND.
Le meilleur kit de démarrage Arduino pour débutant
Si vous recherchez un kit Arduino, consultez Le meilleur kit Arduino pour les débutants
Références de fonction
- Serial.begin()
- Série.println()
- retard()
- millis()
- boucle for
- boucle while
- si autre
- boucle()
- configuration()
- String.toInt()
- String.substring()
- Chaîne.indexOf()
- Chaîne.remove()
- Chaîne.égales()
Code
- WebOscilloscope.ino
- oscilloscope.php
WebOscilloscope.inoArduino
C'est un code arduino. Nous n'avons PAS besoin d'envoyer les 6 données de canal. Comme vous pouvez le voir, j'ai commenté le canal de données 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() { //lire l'heure système non signée long time_a =micros(); // lit la valeur analogique et convertit en tension :float voltageChannel0 =analogRead(A0) * ratio; float voltageChannel1 =analogRead(A1) * ratio; float voltageChannel2 =analogRead(A2) * ratio; float voltageChannel3 =analogRead(A3) * ratio; tension flottanteChannel4 =analogRead(A4) * ratio ; float voltageChannel5 =analogRead(A5) * ratio; // envoie d'abord l'heure du système Serial.print(time_a); Serial.print(" "); // envoie la valeur de chaque canal, séparée par " " ou "\t". Serial.print(voltageChannel0) ; Serial.print(" "); Serial.print(voltageChannel1) ; Serial.print(" "); Serial.print(voltageChannel2) ; Serial.print(" "); //Serial.print(voltageChannel3) ; //Série.print(" "); Serial.print(voltageChannel4) ; Serial.print(" "); //le dernier canal doit envoyer avec de nouveaux caractères de ligne Serial.println(voltageChannel5);}
oscilloscope.phpPHP
Ceci est un code Web.PHPoC Shield - Oscilloscope Web pour Arduino
Schémas
Processus de fabrication