Arduino Uno serial monitor gegevens via usb op pc.

Arduino specifieke Software
Berichten: 17
Geregistreerd: 05 Mei 2023, 10:13
Woonplaats: Dalfsen

Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor frans36 » 24 Jul 2023, 11:11

Beste forumers,

Ik heb even de volgende vraag.
Ik heb een projectje afgemaakt en dit werkt.
Ik zie de informatie op een o-led schermpje en ook bij/op de serial monitor.

Echter zou ik de serial monitor gegevens ook in een apart scherm op de pc willen weergeven.
Ik ben bezig ook deels voor dit project met visual studio om het geheel mogelijk samen te voegen in een scherm afbeelding.

Mijn vraag is nu hoe kan ik de serial monitor gegevens in een schermpje te zien krijgen op het beeld scherm van me pc.

Heeft de arduini uno daar een standaard libary voor om de gegevens bijvoorbeeld weer te geven op een pc beeldscherm?

Graag hoor ik van jullie zodat ik de juiste weg op ga.

Bij voorbaat mijn dnak.

Mvg,

Frans36

Advertisement

Berichten: 4086
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor shooter » 24 Jul 2023, 13:13

of standaard via de monitor of als je meer ermee wilt zul je naar processing moeten kijken bijv.
paul deelen
shooter@home.nl

Berichten: 17
Geregistreerd: 05 Mei 2023, 10:13
Woonplaats: Dalfsen

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor frans36 » 24 Jul 2023, 13:20

Beste shooter,

Bedankt voor uw reactie.

IK kom graag even terug op uw antwoordt.
Standaard via monitor of toch naar processing.

Ik heb zeg maar het project draaien.
het zijn 2 temperatuur sensor en een pomp functie die aan of uit gaat dit zie ik allemaal perfect terug
in de serial monitor als ik deze heb opgestart.

Echter zou ik graag zien dat deze info ook op mijn eigen gemaakte screen op de pc wordt weer gegeven.
Ik gebruik visual studio om zeg maar het scherm te maken.
Nu zou ik verwachten dat ik de serial data die de arduino uno er uitgooit dt ik die moet onderscheppen
met een progje en deze weer laat in lezen in visual studio.
maar dan komt het hoe?
is daar serialTransfer uit de libary voor te gebruiken?

Mvg,
Frans36

Gebruikers-avatar
Berichten: 118
Geregistreerd: 01 Okt 2015, 11:54
Woonplaats: Castricum

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor FonzieBonzo » 24 Jul 2023, 19:30

Hi

Gebruik je C# aan de windows VS kant?
Dan kan je met IO.Port de comport van je arduino uitlezen.

(code met een beetje hulp van ChatGPT)

csharp code
using System;
using System.IO.Ports;

namespace ArduinoSerialCommunication
{
class Program
{
static SerialPort serialPort;

static void Main(string[] args)
{
// Verander deze poortnaam naar de juiste poortnaam van je Arduino
string portName = "COM3";

// Baud rate (snelheid) moet overeenkomen met de Arduino instelling
int baudRate = 9600;

// Maak een nieuw SerialPort object
serialPort = new SerialPort(portName, baudRate);

try
{
// Open de verbinding met de Arduino
serialPort.Open();

// Eventhandler voor het ontvangen van data
serialPort.DataReceived += SerialPort_DataReceived;

Console.WriteLine("Druk op Enter om het programma te stoppen.");
Console.ReadLine();

// Sluit de verbinding met de Arduino
serialPort.Close();
}
catch (Exception ex)
{
Console.WriteLine("Er is een fout opgetreden: " + ex.Message);
}
}

private static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// Lees de data van de Arduino en toon het in de console
string data = serialPort.ReadLine();
Console.WriteLine("Ontvangen data: " + data);
}
}
}

Berichten: 187
Geregistreerd: 26 Aug 2015, 11:57

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor Frits1956 » 25 Jul 2023, 08:35

Huh?????

Kan de arduino IDE met Csharp overweg?

Gebruikers-avatar
Berichten: 118
Geregistreerd: 01 Okt 2015, 11:54
Woonplaats: Castricum

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor FonzieBonzo » 25 Jul 2023, 08:52

Hi,

Of ik begrijp je verkeerd maar volgens mij wil je de seriele port van de Arduino met jou Visual Studio project uitlezen.

De Arduino meld zich als seriele comport aan op jou pc dus je kun je de betreffende comport met ieder programma in de gaten houden zonder dat jou VS project weet dat het om een Arduino gaat.

Je benaderd dus niet de Arduino IDE maar de Arduino zelf.

Gr,
Fonzie

Berichten: 17
Geregistreerd: 05 Mei 2023, 10:13
Woonplaats: Dalfsen

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor frans36 » 27 Jul 2023, 19:10

Beste FonzieBonzo,

Bedankt als eerste voor uw reactie.
Ik zag dat u een antwoordt aan Frits1956 had gegeven.
Inderdaad is dat de wijze zo wil ik dus de serial port gebruiken en uitlezen met VS.

Ik heb echter uw code geprobeert Bedankt nogmaals hier voor.

Echter komen daar bij mij is VS 11 fouten uit.

IK ben zelf bezig geweest via het internet en heb het nu voor elkaar dat de code om de 1 seconden de waarde's uit
de seriale port weer geeft in een textbox echter als deze vol is komt er geen nieuwe regel dan wel waarde binnen.

Dit is de code voor VS.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;

namespace Serial_ArduinoUno
{
public partial class Form1 : Form
{
SerialPort serialPort;

public Form1()
{
InitializeComponent();
timer1.Interval = 1000;
timer1.Start();

serialPort = new SerialPort("COM5", 115200);

try
{
serialPort.Open();
}
catch
{
Console.WriteLine("Unable to open COM port - Check it's not in use.");
}
}
private void timer1_Tick(object sender, EventArgs e)
{
bool haveInformation = false;
string Information = string.Empty;

while (!haveInformation)
{
Information = serialPort.ReadLine();
if (!string.IsNullOrEmpty(Information))
{
haveInformation = true;
}
}
if (haveInformation)
{
textBox1.Text += "Special:" + Information + Environment.NewLine;
}
}
}

}

Nu is mijn vraag?

Hoe krijg ik het hiervoor elkaar met een aanpassing in deze code.
Dat de waarde's die van de seriele port afkomen zeg gewoon ververst worden maar
dan op de zelfde tekstregel en niet er onder.
zodat eigenlijk de textbox niet vol loopt.

Graag hoor ik van de gene die de tip weet.

bij voorbaat mijn dank.

Mvg,

Frans36

Gebruikers-avatar
Berichten: 636
Geregistreerd: 15 Nov 2015, 11:54

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor Gij Kieken » 28 Jul 2023, 09:51

Ik ben niet echt vertrouwd met de syntax van VS.
Laat gewoon die + Environment.NewLine weg en schrijf enkel je string met write.
Ook zal je waarschijnlijk een clear moeten schrijven om de eventueel resten in textbox uit te gommen zeg maar.

Gebruikers-avatar
Berichten: 118
Geregistreerd: 01 Okt 2015, 11:54
Woonplaats: Castricum

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor FonzieBonzo » 28 Jul 2023, 09:51

Hi Frans,


Ik zie dat ik jullie twee namen door elkaar heb gehaald :D
@Frits: Met de zelfde code zou je ook met de serial monitor van de Arduino IDE kunnen praten. Veel zin zal het niet hebben of misschien wel om je C# project te kunnen debuggen.

Jouw code is geen goede basis omdat je geen on_DataReceived crieerd. Dan zou je data kunnen verliezen omdat er geen controle is of/en de Arduino blijft niet wachten totdat de data goed is ontvangen.

Onderstaande code blijft de comport monitoren op data en wacht tot deze een LF heeft ontvangen en plaats dan de gebufferde string (receivedData) in de textbox.

csharp code
using System.IO.Ports;

namespace WinFormsApp1
{
public partial class Form1 : Form
{
private SerialPort serialPort;
private string receivedData = "";

private event EventHandler DataReceivedEvent;

public Form1()
{
InitializeComponent();

// Initialiseer het SerialPort object
serialPort = new SerialPort("COM5", 9600);
serialPort.DataReceived += SerialPort_DataReceived;

// Abonneer op het DataReceivedEvent
DataReceivedEvent += MainForm_DataReceivedEvent;

try
{
// Open de verbinding met de Arduino
serialPort.Open();
}
catch (Exception ex)
{
MessageBox.Show("Fout bij het openen van de seriële poort: " + ex.Message);
}
}

private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// Lees de data van de Arduino
string data = serialPort.ReadExisting();

// Voeg de data toe aan de globale string
receivedData += data;

// Controleer of het "return" teken is gedetecteerd
if (receivedData.Contains("\r\n"))
{
// Verhoog het DataReceivedEvent
OnDataReceived(EventArgs.Empty);

// Maak de globale string leeg na het verwerken van het event
receivedData = "";
}
}

protected virtual void OnDataReceived(EventArgs e)
{
DataReceivedEvent?.Invoke(this, e);
}

private void MainForm_DataReceivedEvent(object sender, EventArgs e)
{
// Behandel de ontvangen data hier
// Toon de ontvangen data in het tekstvak textBox1
this.Invoke((MethodInvoker)(() => textBox1.Text = receivedData));
}

protected override void OnFormClosing(FormClosingEventArgs e)
{
// Sluit de seriële poort wanneer het formulier wordt gesloten
if (serialPort.IsOpen)
serialPort.Close();

base.OnFormClosing(e);
}
}
}

Berichten: 17
Geregistreerd: 05 Mei 2023, 10:13
Woonplaats: Dalfsen

Re: Arduino Uno serial monitor gegevens via usb op pc.

Berichtdoor frans36 » 28 Jul 2023, 13:35

Beste FonzieBonzo,

bedankt voor uw bericht en uw nieuwe code.
echter heb ik even de vraag met welke versie u werkt qua VS.
aangezien ik een 4 tal meldingen qua foutjes krijg.

Ik werk met VS 2022 versie Version 17.6.5

de melding die ik krijg is dat:

The type name 'SerialPort' could not be found in the namespace System.IO.Ports

IK ben nog niet zo heel ver met VS maar ik denk dat er een foutje zit in de versies qua gebruik
dan wel dat het bij mij nog niet compleet is qua System bestand van VS.

Ik hoor graag even van U mocht dat schikken.
Bij voorbaat mijn dank.

Mvg,

Frans36

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: aefujebeqea en 11 gasten