Comunicação Serial com Arduino utilizando aplicação C++

Boa tarde,

Tenho alguma experiência com Arduíno e C++, porém esta é a primeira vez que estou tentando estabelecer comunicação entre Arduíno e PC via USB-Serial.

Encontrei um código em um blog: https://blog.manash.me/serial-communication-with-an-arduino-using-c-on-windows-d08710186498 (não o copiei para não ficar extenso).

O objetivo da minha aplicação C++ é coletar um valor do banco de dados postgresql e enviar este valor para uma saída do Arduíno PWM variando a luminosidade de um LED, por exemplo.

Seguindo o exemplo do blog, eu modifiquei o main.cpp deste blog adaptando a minha aplicação, segue o código:

#include
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include “SerialPort.h”

using namespace std;

char *port_name = “\\.\COM6”;

int main()
{

PGconn* conn;
conn=PQsetdbLogin(“localhost”,“5432”,NULL,NULL,“smartmonitor”,“postgres”,“densyx”);

// * Test if it´s ok

if (PQstatus(conn) != CONNECTION_OK){
fprintf(stderr, “Connection to database failed: %s”,
PQerrorMessage(conn));
PQfinish(conn);
}

SerialPort arduino(port_name);
if (arduino.isConnected()) cout << “Connection Established” << endl;
else cout << “ERROR, check port name”;

while (arduino.isConnected()){

char* value;

PGresult *res = PQexec(conn, “SELECT “Val” FROM “FloatTable” where “TagIndex”=46 ORDER BY “DateAndTime” DESC LIMIT 1”);

value=PQgetvalue(res,0,0);

//char newVal[sizeof(value)+1];
//strcpy(newVal,value);
//strcat(newVal,"\n");

//Writing string to arduino
arduino.writeSerialPort(value, sizeof(value));
PQclear(res);

}

PQfinish(conn);
}

Do jeito que está no blog, funciona, porém quando eu retiro a parte do código do main.cpp que solicita que o usuário digite algo (getline(cin, input_string):wink: , a aplicação não consegue enviar para o arduíno a saída devida.

Alguém saberia como solucionar este problema?

Desde já, agradeço muito!

Olá,

Acho que este é um projeto misto, e o melhor jeito de fazer isso é conseguindo ajuda de cada fórum correspondente ao assunto,

Este aqui é do Arduino, para Visual C++, com certeza as pessoas não vão nem entender a sintaxe, quanto mais tentar ajudar,

Experimente este: Fóruns do Msdn - Visual Studio - Geral

Boa sorte!