-
Posts
36 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por WMAC
-
-
Olá, glra...gente, alguém sabe como faço pra receber uma string com valores de vários sensores e desmontá-la a partir de caracteres delimitadores?
Por exemplo estou enviando pela Serial do Arduino ao Esp01 a seguinte string:
"#34;54;67;99*"
Onde # delimita inicio, ; separa os valores e * indica o fim da string...preciso receber os valores sempre numa mesma ordem.
Se alguém puder ajudar agradeço..
- 1
-
Olá, gente.. estou precisando de ajuda... estou tentando realizar o envio de strings de um arduino mega para um esp01 8266 através da serial.
O código pra receber que implementei no esp é:
if (Serial.available()) { String rx; String strArr2[4]; delay(10); while(Serial.available()){ //char *a = 12;12.6;78;87;; char a = Serial.read(); rx += a; }
No entanto, embora as strings estejam sendo enviadas para o esp ele não entra no if Serial.available... O hardware que estou usando é um adaptador pra esp01/usb ´para programar direto na IDE e depurar em seguida conecto ao arduino mega para a comunicação pela Serial2 do mega. O vejo pelo monitor da IDE é que os dados estão sim sendo enviados pelo Arduino ao Esp mas não compreendo o porque não entra no if para receber e processar as strings. Se alguém puder me ajudar agradeço muito.
-
@GuilhermeGB Obrigada mesmo! Deu certo aqui! Agora o problema que estou tendo é com a comunicação serial entre o arduino mega e o esp01.. abri outro tópico para ver se consigo alguma ajuda sobre.
-
Olá, glra.. estou tentando enviar uma string de um arduino mega para um esp01 8266 .
Para enviar os dados do mega uso apenas:
if (Serial2.available()) { //no caso o tx do esp01 está no rx2 e o rx do esp01 está no tx2.. delay(10); Serial2.println(valores); // a string valores contém dados de sensores }
E para receber os dados no esp01 uso:
if (Serial.available()) { String rx; delay(10); while(Serial.available()){ char a = Serial.read(); rx += a; }
Acontece que não estou recebendo nada na serial do esp (info: bd de ambos está em 115200). Alguém tem ideia do que seja que possa me auxiliar por favor. Agradeço..
-
@GuilhermeGB Obrigada, Guilherme. Eu entendi a lógica entretanto não entendo como passar isso pro for.. Poderia exemplificar, por favor?
-
@GuilhermeGB Sim, mas você sabe como eu poderia fazer isso para vários valores que vão enviados na mesma string e separados por ";", por exemplo?
-
@GuilhermeGB Obrigada por responder. Sim mas fiquei em dúvida em como fazer para "desmontar" essa string com os valores dos sensores quando ela chega ao esp01..
-
Olá, glra... estou tentando enviar dados de leitura de alguns sensores em uma string pela serial do arduino para um esp01 ler e "desmontar" para enviar os dados pra web. Alguém pode me orientar, por favor... sobre como montar e enviar essa string e como converter os valores em float quando chegam no esp? Agradeço.
-
@darkstrikerd obrigada por responder.
Tentei de duas formas:
1- Utilizando os commandos AT ele até conecta com o servidor do PBI e até mesmo indica que o json foi enviado mas na plataforma não chega nenhum dado;
2 - Usei a library WiFi esp para fazer a requisição HTTP POST, usando a porta 443 (HTTPS). Aqui ele consegue se conectar ao power BI, mas recebo os erros "TIMEOUT" e
Data packet send error (2)
Failed to write to socket 3
Eu consegui enviar json pro PBI usando um NodeMCu, as bibliotecas disponíveis para ele consideram o certificado SHA-1, diferente das bibliotecas que encontrei para o esp01. Preciso utilizar o arduino+esp01 como hardware.
-
@aphawk Obrigada pela dica! Teria algum pra indicar, por favor?
-
@Sérgio Lembo Muito obrigada! Usei aqui, deu tudo certo!
- 2
-
Olá, pessoal.
Estou tentando alimentar um circuito com o NodeMCU com uma bateria chumbo ácido de 12V 12 Ah. A tensão fica fica entre 13,5 e 13,8V. Eu queria saber se o regulador de tensão LM 2596 seria adequado para essa aplicação.
Obrigada.
-
Olá, glra...Precisando de ajuda
Estou tentando enviar dados no formato json do arduino +esp01 para um conjunto de dados POWER BI através de requisição POST http mas não estou conseguindo. Estou utilizando os comandos AT, o esp conecta à rede wifi mas ocorre falha de conexão ao acessar a URLpush (url+API) que o power bi disponibiliza na versão online quando se cria um conjunto de dados.
-
@Flávio Pedroza Foi esse mesmo que usei! Muito obrigada pela ajuda!
-
@Matheus Maldi obrigada por responder! Pode anexar o código, pls rsrs
@Matheus Maldi e @Flávio Pedroza muito obrigada, agora deu certo!
-
@Matheus Maldi Pronto..pelo Modbus Poll eu tenho os 2 valores dos regs em inteiro que é 50938 e 1, o valor total pelo medidor é 116474
-
@Matheus Maldi e @Flávio Pedroza obrigada por responderem. Tentei da forma como vocês sugeriram e não deu certo. Fiz um outro teste obtendo a leitura de registradores com um SCADA e vi que obtenho valor correto lendo a variável como inteiro trocado de 4 bytes sem sinal, que teoricamente é a forma como vocês estão sugerindo, certo? Mas o valor que obtenho ao tentar com o Arduino não corresponde ao esperado...
-
@Davi Silva Santos Obrigada por responder! Mas acho que não expliquei direito...estou realizando a comunicação Modbus entre o arduino e um inversor solar..na memória do inversor um determinado valor que quero ler ocupa 2 registradores (32bits) de 16 bits cada (registradores de holding) . A variável é do tipo inteiro, só que,segundo o manual, a ordem das palavras é Lo-Hi. Eu queria saber como faço pra obter o valor inteiro..
-
Olá, gente. Estou tentando ler um valor inteiro que ocupa 2 registradores (32 bits) com o arduino. O manual do produto informa que o padrão para variáveis de 32 bits é Lo-Hi.
Desde já, agradeço.
-
@aphawk obrigada pelas dicas! Realmente deveria ser simples mesmo, até porque eu testei com Modbus Slave e deu tudo certo...inclusive eu retirei o resistor de terminação do módulo para ver se funcionava uma vez, teoricamente, redes de curta distância não precisam dele. Não funcionou...
O módulo está bom e funciona mas não com o inversor (como eu disse testei o circuito e o código usando o Modbus Slave)
Felizmente, testei a comunicação apenas com o CI MAX485 (nem os resistores de polarização e terminação) e usando a biblioteca ModbusMaster e funcionou perfeitamente (até que enfim....rs). Eu deveria ter feito isso bem antes mas como tudo funcionava com o simulador ficou difícil encontrar o erro..
Quero agradecer a todos que deram um pouco de seu tempo pra me ajudar aqui no fórum. Obrigada!
- 2
-
@aphawk Obrigada por responder! Sim, esse módulo já tem um resistor de terminação. Sobre trocar de library já testei todas que consegui encontrar e nada..kkkk
-
@aphawk Olá, estou usando o conversor TTL pra RS485 (FIGURA 1). Uma coisa que percebi e que não citei aqui é que o erro E0 só aparece quando eu não conecto o GND do driver RS485 do inversor ao do arduino. Se eu conectar passo a receber erro de timeout...
-
@aphawk pela minha pesquisa, acredito que o problema tenha relação com polarização e/ou terminação de linha que o inversor pode possuir/precisar. Isso pode estar corrompendo os dados transmitidos, pois o que consta é o erro de código 0xE0 o qual representa diferença entre o ID requisitado e o da resposta...
No manual existem algumas informações mas não o suficiente que indiquem a necessidade de implementar a polarização ou terminação da linha. Estou aguardando mais esclarecimentos por parte do fabricante do inversor. Qualquer avanço, eu posto aqui.
-
@Thiago Miotto obrigada por responder! Já tentei isso e não funcionou.
@aphawk obrigada por responder! Sim, o endereço (slave ID) que estou usando é o ID 7 e ele está especificado em: node.begin(7,Serial) no código. Os parâmetros de comunicação como ID, baud rate, paridade estão todos corretos pois posso conferir no monitor que o inversor tem.
Inclusive usei o software Modbus Poll para simular um mestre e consigo ver o tráfego de dados entre o inversor e o PC usando um conversor RS485/USB, e funciona perfeitamente..
Também já usei o Modbus Slave para testar o código e circuito com arduino e o conversor RS485/TTL e também tenho sucesso na comunicação. Entretanto quando junto o circuito com arduino e o inversor não tenho resposta..
- 1
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Como receber e desmontar strings de "floats" em C?
em Microcontroladores
Postado
@devair1010 Obrigada por responder, então a questão é que a string vai sendo recebida caractere por caractere na serial, e isso tá dificultando a implementação da lógica por mim uma vez que dependendo do tempo a string já tá pelo meio..