Salve a tutti , ho provato con dei modulini a 433 mhz a trasmettere la temperatura esterna all'arduino.
Girovagando in rete , mi sono imbattuto in questo codice
TX:
#include <VirtualWire.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
const int led_pin = 13;
const int transmit_pin = 8;
struct package
{
float temperature ;
float humidity ;
};
typedef struct package Package;
Package data;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(500); // Bits per sec
pinMode(led_pin, OUTPUT);
}
void loop()
{
digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
readSensor();
vw_send((uint8_t *)&data, sizeof(data));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(led_pin, LOW);
delay(2000);
Serial.println(data.temperature);
}
void readSensor()
{
dht.begin();
delay(1000);
data.humidity = dht.readHumidity();
data.temperature = dht.readTemperature();
}
RX:
#include <LiquidCrystal.h>
#include <VirtualWire.h>
const int receive_pin = 8;
char temperatureChar[10];
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
struct package
{
float temperature = 0.0;
float humidity = 0.0;
};
typedef struct package Package;
Package data;
void setup()
{
pinMode(13,OUTPUT);
Serial.begin(9600);
delay(1000);
lcd.begin(16,2);
// Initialise the IO and ISR
vw_set_rx_pin(receive_pin);
vw_setup(100); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[sizeof(data)];
uint8_t buflen = sizeof(data);
if (vw_have_message()) // Is there a packet for us?
{
vw_get_message(buf, &buflen);
memcpy(&data,&buf,buflen);
digitalWrite(13,1);
Serial.print("\nPackage:");
Serial.print(data.temperature);
String temperatureString = String(data.temperature,1);
temperatureString.toCharArray(temperatureChar,10);
lcd.setCursor(1,0);
lcd.print("Temp");
lcd.setCursor(6,0);
lcd.print(data.temperature);
}
}
Quelle poche volte che arriva il segnale , esce sempre che è presente un Overflow. Potete Aiutarmi?