Dúvida sobre comunicação serial entre Arduino Nano e NodeMCU

Olá! Sou novo no fórum e eu já pesquisei em outros posts, mas não consegui resolver meu problema.

É o seguinte: Eu liguei um termistor NTC de 10k no Arduino Nano e ele por sua vez transmite a leitura pela porta serial para o NodeMCU.

O problema é:

Quando eu vejo o monitor serial do Arduino a leitura está certinha comparando com um outro aparelho (TC-900Ri clock Full Gauge) que usa um sensor igual. Tanto no quente quanto no frio (abaixo de 0ºc) eles ficam praticamente iguais.

Porém, quando eu envio essa informação pelo TX do Arduino para o RX do NodeMCU, a leitura em temperatura ambiente continua igual. O problema é que quando eu coloco os dois sensores no frio, eles ficam com uma diferença considerável entre eles. E isso aumenta a medida que a temperatura cai.

Por exemplo: Enquanto o aparelho mostra -4ºc, o sensor que está no Arduino Nano que está transmitind para o NodeMCU mostra -8ºc.

Figura 1: Essa é a ligação que estou usando no momento
Figura 2: Esses são os dois sensores. Um está ligado ao aparelho que mencionei e o outro ao Arduino Nano


Figura 3:
Esse é o aparelho onde está ligado o segundo sensor. Trata-se de um controlador utilizado em câmara frigorífica modelo TC-900Ri clock da Full Gauge.





Os códigos que estou utilizando são os seguintes:


ARDUINO NANO

#include <Thermistor.h>

#define TAMANHO_STRING_SERIAL 4

Thermistor temp(2);
float temperatura = 0;

void fazLeituraEConverteParaCelsius(){
   char temperaturaSerial[TAMANHO_STRING_SERIAL];

   temperatura = temp.getTemp(); //VARIÁVEL DO TIPO INTEIRO QUE RECEBE O VALOR DE TEMPERATURA CALCULADO PELA BIBLIOTECA
   dtostrf(temperatura,TAMANHO_STRING_SERIAL,1,temperaturaSerial);
   Serial.write(temperaturaSerial, TAMANHO_STRING_SERIAL);
}

void setup() {
   Serial.begin(9600);
}

void loop() {
   fazLeituraEConverteParaCelsius();

   delay(1000);
}


======================================================

NODE MCU

#define TAMANHO_STRING_SERIAL 4

float temperatura=0;

char StringLeiturasADC[TAMANHO_STRING_SERIAL];

bool VerificaSeHaInformacaoNaSerial(){

   if (Serial.available() > 0) {
      for(int i=0; i < TAMANHO_STRING_SERIAL; i++){
         StringLeiturasADC[i] = Serial.read();

         Serial.println(StringLeiturasADC[i]);
      }

      temperatura = atof(StringLeiturasADC);

      Serial.print("Temperatura: ");
      Serial.print(temperatura, 1);
      Serial.println(" ºc");

      return true;
   }
   Serial.println("Não há dados!");
   return false;
}

void setup() {
   Serial.begin(9600);
}

void loop() {
   VerificaSeHaInformacaoNaSerial();

   delay(1000);

}

======================================================

Agradeço desde já a todos que puderem me ajudar, pois já faz umas duas semanas que estou quebrando a cabeça com isso.

Exibições: 598

Responder esta

Respostas a este tópico

Boa noite,

Você esta alimentando o Arduino de forma incorreta! 

Ele deve ser alimentado com 5V .

O Node MCU esta conectado em uma USB do seu PC?

Se for assim, no pino VIN do NodeMCU deverá ter uma tensão próxima (abaixo)  de 5V. Meça essa tensão!

Se OK, conecte o VIN do NodeMCU no pino 5V do Arduino. 

Obrigado por responder, José Gustavo.

Eu esqueci de colocar a alimentação no desenho, mas está da seguinte forma: O Node MCU fica conectado a USB do computador. Então eu liguei o pino VU do Node MCU no VIN do Arduino para alimentar também o Arduino.

Boa noite,

Você esta usando o NodeMCU V3 ? É exatamente essa placa?

O site da NodeMCU é péssimo! As informações não são precisas. O site parece estar abandonado. 

https://www.nodemcu.com/

O pino VU tem 5V ? Corresponde a tensão do 5V da  USB? 

Se você conectar 5V no VIN do Arduino Nano, a tensão de 5V sofrerá uma queda. 

Meça o pino 5V do Arduino Nano e me informe. 

O Node MCU que estou usando é esse.

Isso. Eu conecto o pino VU no VIN do Arduino para que possa alimentar as duas placas com o USB.

Porém, ainda não descobri porque o serial monitor no Arduino Nano mostra a leitura do sensor certinha, mas quando eu envio pelo TX para o RX do NodeMCU ele dá diferença.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço