Salve a tutti, sto creando una piccola "stazione meteo bluetooth" con i seguenti componenti:
-Arduino Uno;
-Modulo bluetooth hc-05;
-Sensore DHT22;
-Sensore pioggia.
A collegamenti fatti, mi sono aiutato con uno sketch trovato online. Sia i collegamenti sia lo sketch sono corretti; ho scaricato l'app per Android "Bluetooth Terminal" e ho effettuato il collegamento.
All'utilizzo però, inviando la lettera "t", invece di avere in risposta il valore della temperatura, sul mio dispositivo è uscito scritto "La temperatura è: temp °Cnan."
Vi lascio qui il sito da cui ho preso lo sketch: http://grapesteam.altervista.org/stazione-meteo-cellulare/?doing_wp_cron=1526478031.0668389797210693359375
Vi lascio qui lo sketch utilizzato:
#include <Adafruit_Sensor.h>
#include <DHT.h> //libreria per utilizzare le ffunzioni e i comandi riguardanti il sensore DHT22
#include <SoftwareSerial.h> //libreria che permette la comunicazione
SoftwareSerial BT(11, 12); //Pin utilizzati per ricevere e inviare dati BT
//Constants
#define DHTPIN 7 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
#define WATER_PIN A0
void setup()
{
BT.begin(9600);
BT.println("Arduino Pronto");
BT.println("\nt. Temperatura");
BT.println("\nh. Umidità");
BT.println("\np. Pioggia");
BT.println("Inserisci l'opzione: ");
Serial.begin(9600);
}
float temp = 0, hum = 0;
char c;
void loop()
{
delay(500);
//Read data and store it to variables hum and temp
hum= dht.readHumidity();
temp= dht.readTemperature();
if (BT.available()) {
c = (BT.read());
if (c == 't')
{
BT.println("La temperatura è(°C): ");
BT.println(temp);
}
if (c == 'h')
{
BT.println("L'umidità: ");
BT.println(hum);
BT.println("%/t");
}
if(c=='p')
{
int a=analogRead(WATER_PIN);
if(a<=800)
BT.println("PIOVE");
else
BT.println("NON PIOVE");
}
}
delay(2000);
}
Spero qualcuno possa aiutarmi. Grazie in anticipo.