La emisión inalábrica se puede usar, como en este prototipo, para enviar de un punto a otro la lectura de un termómetro, o varios. El alcance comprobado de este SIN ANTENA ha sido de cuatro metros, con antenas a la vista me comentan de varias decenas de metros.
Serian ideales para montar alarmas en el colmenar.
El receptor alimentado con una bateria, en el centro el arduino1 arriba a la derecha pantalla y sonda, y abajo derecha el módulo receptor,
Este sería el resultado: vemos como outdoor las lecturas remotas y como indoor las locales.
Este es el diminuto módulo receptor.
Este sería su antena aunque con un hilo nos basta.
Antes de meternos con el emisor comprobamos que funciona bien el Nano y lo comprobamos cargando un programa sencillo de saludo.
Este es el tamaño del arduino Nano comparado con un lápiz usb.
Este es el módulo emisor solo, esa cosa redonda es un cristal de cuarzo, y el cableado de la sonda remota.
Códigos necesarios y librerías:
//RECEPTOR
//Comunidad de Foros salinas52
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Here is the code for receiver:
//www.facebook.com/njizi.dvizi
#include <VirtualWire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
int i;
LiquidCrystal_I2C lcd(0x27,16,2);
#define ONE_WIRE_BUS 7
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
void setup(){
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.init();
sensors.begin();
vw_setup(2000);
vw_rx_start();
vw_set_rx_pin(11);
}
void loop(){
sensors.requestTemperatures();
Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la temperatura en grados Celsius
Serial.println(" grados Centigrados");
lcd.backlight();
lcd.setCursor(0, 1);
lcd.print("Indoor:");
lcd.setCursor(9, 1);
lcd.print(sensors.getTempCByIndex(0));
//lcd.setCursor(14, 1);
lcd.print((char)223);
lcd.print("C");
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if( vw_get_message(buf, &buflen) )
{
lcd.setCursor(0, 0);
lcd.print("Outdoor:");
for (i = 0; i < buflen; i++)
{
lcd.write(buf[i]);
}
lcd.setCursor(14, 0);
lcd.print((char)223);
lcd.print("C");
}
}
//EMISOR Comunidad de Foros salinas52
#include <VirtualWire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
char msg[6];
void setup() {
Serial.begin(9600);
sensors.begin();//Se inician los sensores
vw_setup(2000);
vw_set_tx_pin(3);
}
void loop() {
sensors.requestTemperatures(); //Prepara el sensor para la lectura
Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la temperatura en grados Celsius
Serial.println(" grados Centigrados");
float temperature = sensors.getTempCByIndex(0);
dtostrf(temperature, 6, 2, msg);
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
delay(200);
}
Otros:
Los dos módulos
El Arduino Nano.
Las sondas, de estas se puede poner en paralelo unas cuantas que se identifican por ID
saludos