Eu estou começando a trabalhar com o Arduino agora e estou tendo dificuldades em alguns aspectos como manipular strings. O meu problema é o seguinte:
Minha aplicação envia para o Arduino uma série de strings com este formato: "xxx;yyyyyyyyy", onde o y pode variar de tamanho. Preciso receber esta string e separá-la em duas partes. No caso eu preciso colocar "xxx" em um variável e "yyyyyyyyy" em outra onde eu vou enviá-las separadamente para uma outra função. Faço isso brincando com as funções do php e javascript, mas no Arduino estou apanhando demais e gostaria da ajuda dos colegas para resolver esta questão. Grato
O ideal é separar as strings a enviar com outro caracter. Um "\n\r", por exemplo, e depois ir recebendo os caracteres e quando receberes o caracter de newline, sabes que recebeste uma string.
Eu dei o exemplo "\n\r" porque é o equivalente em C para a tecla "enter". No caso de teres um método que lesse ou escrevesse linhas (delimitadas pelo "\n\r") tornava-se mais simples.
Entretanto dei uma vista de olhos na linguagem do Arduino e não me parece que haja um método desses e no PHP também não, logo esses caracteres (nota que \n é um caracter e \r é outro) podem ser substituidos por quaisquer outros.
Como exemplo numa aplicação que fiz há uns anos atrás, tinha uma mensagem composta desta forma:
xxx:yyyyyyyyyyy:zzz$
xxx era o cabeçalho onde eu informava qual era o tipo de informação que estava a enviar. Ou seja, medição de temperatura "ttt", medição de humidade "hhh", etc, etc...
yyyy era o valor a enviar. Não tinha tamanho definido.
zzz era o checksum da mensagem (para detectar erros de transmissão) mas não te precisas de preocupar.
">" indicava o inicio duma mensagem
"$" indicava o fim da mensagem.
":" eram valores delimitadores. Se quiseres podes usar outros caracteres e não precisam de ser sempre iguais.
Que exemplo de código queres? O Arduino é um pouco estranho no que toca a receber dados pela porta série e para ser sincero, eu nem uso a linguagem do Arduino, mas se fores mais específico no que não percebes posso tentar fazer algo.