Bonsoir Claudius,
J'avais fait une réponse mais un peu rapide, je croyais que c'était pour communiquer entre deux Arduino.
Mais à partir d'un ordi ce n'est pas beaucoup plus compliqué
// Code pour l'Arduino
void setup() {
Serial.begin(9600); // Initialiser la communication série à 9600 bauds
}
void loop() {
// Vérifier si une donnée a été reçue de l'ordinateur
if (Serial.available() > 0) {
String request = Serial.readStringUntil('\n');
Serial.print("Reçu de l'ordinateur: ");
Serial.println(request);
// Répondre à l'ordinateur
Serial.println("Bonjour Ordinateur!");
}
}
#include <iostream>
#include <boost/asio.hpp>
#include <boost/asio/serial_port.hpp>
#include <boost/asio/serial_port_base.hpp>
using namespace boost::asio;
int main() {
io_service io;
serial_port serial(io, "COM3"); // Remplacer "COM3" par le port série utilisé par votre Arduino
serial.set_option(serial_port_base::baud_rate(9600));
serial.set_option(serial_port_base::character_size(8));
serial.set_option(serial_port_base::parity(serial_port_base::parity::none));
serial.set_option(serial_port_base::stop_bits(serial_port_base::stop_bits::one));
serial.set_option(serial_port_base::flow_control(serial_port_base::flow_control::none));
// Envoyer un message à l'Arduino
std::string message = "Bonjour Arduino!\n";
write(serial, buffer(message.c_str(), message.size()));
// Lire la réponse de l'Arduino
char reply[128];
read(serial, buffer(reply, 128));
std::cout << "Réponse de l'Arduino: " << reply << std::endl;
return 0;
}
Tu vérifiras, c'est pas testé entre autres choses les lib mais le principe est là
Christophe