Tenho um Arduino que faz a leitura de alguns sensores e preciso que depois da leitura ele envie pela serial, de uma só vez, todos os valores obtidos nas leituras, para que um aplicativo em PHP possa disponibilizar os valores na web. Alguem sabe como devo proceder?
No código do Arduino, pensei em criar um objeto string, e cada função de ler sensor eu concateno a string com o valor lido ou uso return para a função principal que tratá a string, mas não estou conseguindo fazer nehuma delas.
Objecto String e um microcontrolador de 8 bits não é uma grande combinacão... é muito bom para aprender C++, mas pouco mais.
Então o ideal, se souberes o número máximo de caracteres que um valor vai ter é optar por uma solucão de vectores e itoa() e send/print.
int val1 = 0xCE;
int val2 = 0xAC;
char str[6]; //65537 + terminador.
loop() {
itoa(val1, str, 16);
Serial.print(str);
Serial.print(';');//separador de strings
itoa(val2, str, 16);
Serial.print(str);
Serial.print(';');//separador de strings
[...]
//and so on and so on...
}
Então eu crio uma string (array de caracteres). Ok, mas como posso alterar seu conteúdo a cada leitura feita?
Pelo que entendi do código que informou, ele envia (Serial.print) várias vezes a string, e eu preciso conseguir uma só string com todos os valores obtidos.