Problema ao receber dados via Bluetooth

Olá, estou fazendo um prejeto na qual tenho que receber os valores dos sensores de temperatura e umidade do solo para o aplicativo mobile feito no Kodular, porém estou tendo problemas ao receber os dados. Tentei alguns códigos que encontrei, no entando nenhum sucesso, quem conseguir ajudar agradeço <3

Código Arduino:

#include <SoftwareSerial.h>
#include "dht.h"

 

#define rele 12
const int pinSensorA = A0;
int leituraSensor = 0;

 

const int pinoDHT11 = A5;
dht DHT;

 

SoftwareSerial BTSerial(2, 3); // Define os pinos para comunicação Bluetooth (TX, RX)

 

void setup() {
  pinMode(pinSensorA, INPUT);
  pinMode(rele, OUTPUT);

  Serial.begin(9600);      // Inicia a comunicação serial com o PC
  BTSerial.begin(9600);    // Inicia a comunicação serial com o módulo Bluetooth
  delay(1000);             // Aguarde 1 segundo
}

 

void loop() {
  // Leitura do sensor de umidade do solo
  leituraSensor = analogRead(pinSensorA);

 

  // Leitura dos dados do sensor de temperatura e umidade
  DHT.read11(pinoDHT11);
  float temperatura = DHT.temperature;
  float umidade = DHT.humidity;

 

  // Conversão da Umidade do Solo para Porcentagem
  const int maxUmidadeSolo = 700; // Valor máximo quando o solo está úmido
  const int minUmidadeSolo = 300; // Valor mínimo quando o solo está seco
  float umidadeSoloPercentagem = map(leituraSensor, minUmidadeSolo, maxUmidadeSolo, 0, 100);

 

  // Arredonda a temperatura para uma casa decimal
  temperatura = round(temperatura * 10) / 10.0;

 

  // Envia os dados via Bluetooth
  BTSerial.print("U:");
  BTSerial.println(round(umidade)); // Arredonda a umidade do ar para o valor inteiro mais próximo
  BTSerial.print("T:");
  BTSerial.println(temperatura);
  BTSerial.print("S:");
  BTSerial.println(umidadeSoloPercentagem); // Envie a umidade do solo em porcentagem

 

  // Imprime os dados no monitor serial
  Serial.print("Umidade do Ar: ");
  Serial.print(round(umidade)); // Arredonda a umidade do ar para o valor inteiro mais próximo
  Serial.println("%");
  Serial.print("Temperatura: ");
  Serial.print(temperatura, 1); // 1 casa decimal
  Serial.println("°C");
  Serial.print("Umidade do Solo: ");
  Serial.println(umidadeSoloPercentagem); // Imprima a umidade do solo em porcentagem

 

  // Controle da bomba
  if (leituraSensor > maxUmidadeSolo) {
    digitalWrite(rele, HIGH);   // liga a bomba
    delay(500);
    digitalWrite(rele, LOW);    // desliga a bomba
    delay(10000);               // aguarda 10 segundos antes de verificar novamente
  }

 

  delay(2000); // Intervalo de leitura
}

Código App Kodular:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.