Módulos RF y virtualWire

Hola a todos!!

Estoy intentando hacer comunicacion inalámbrica de temperatura con unos módulos de 433mhz y tengo un problema con la librería virtualwire....
El caso es que utiliza valores char* entonces no puedo pasar como argumento un float....alguien sabe como pasar de float a char*?? os dejo el código del emisor:

#include <VirtualWire.h>
void setup()
{
vw_setup(2000);
}
void loop()
{
int temp=analogRead(0);
  
send(temp);
delay(1000);
}
void send (char *message)
{
vw_send((uint8_t *)message, strlen(message));
vw_wait_tx(); // Wait until the whole message is gone
}

aquí me da el error de: invalid conversion from 'int' to 'char*'

muchísimas gracias!!!

Puedes usar

char msg[10];
sprintf (msg, "%i" ,temp);

Y envía msg

Muchísimas gracias!! eso funcionó!!! Ahora a ver si consigo grabarlo en attiny85

Saludos!

de nada... :slight_smile:

Por cierto...
Como vas a grabar ese sketch en un attiny85 para que lo ejecute?
Me interesa para mi proyecto, ahora usó una arduino pro mini, pero se podría reducir tamaño y precio , no? Sólo tengo que emitir con led ir...

Pues estoy intentándolo y me está dando muchos problemas, la libreria de virtual wire pone que es compatible con attiny85 perooooo, no se yo.... te paso los códigos que tengo, estoy usando un ATTINY85 como emisor y un arduino nano como receptor:
EMISOR

#include <VirtualWire.h>
void setup()
{
vw_setup(2000); // Bits per sec
Serial.begin(9600);
vw_set_tx_pin(0);
pinMode(4,OUTPUT);

}
void loop()
{

send("hola");

}
void send (char *message)
{
if(vw_send((uint8_t *)message, strlen(message)))
{
digitalWrite(4,HIGH);
delay(200);
digitalWrite(4,LOW);
delay(200);
}
vw_wait_tx(); // Wait until the whole message is gone
}

RECEPTOR

#include <VirtualWire.h>
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message
void setup()
{
Serial.begin(9600);
Serial.println("Device is ready");
// Initialize the IO and ISR
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver
}
void loop()
{
if (vw_get_message(message, &messageLength)) 
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++)
{
Serial.write(message[i]);
}
Serial.println();
}
}

no se que pasa pero ATTINY85 parece que si que envía, porque los LEDS me hacen caso como consecuencia de enviar, pero NANO no recibe...el caso es que entre arduino uno como emisor y nano como receptor si que recibía....que lio!!!!

No se si podéis echarme una mano!

Gracias!!!!

No se sí podré ayudarte mucho, pero primero,
Podrías ponerme como son los pones del artiny85?

Según he visto por Google tiene 8 pines, imagino que el 1 es el pin 0 en el código y el 8 es el 7 en el código.
Según eso, el pin 0 es el reset, así que no se sí funcionará como salida de datos para el transmisor de 400mhz

Y un esquema del montaje del emisor también vendría bien...

Buenos días,

pues estoy creando un post con toda esta información, cuando lo tenga preparado te dejo el enlace! pero de momento si quieres ver el pinout de attiny te dejo alguna entrada anterior.

www.josehervas.es/sensorizados/

Saludos!

Perfecto!
He descubierto el ATtiny85 gracias a este post, todavía no lo tengo todo claro las limitaciones que tiene, pero ya me estoy leyendo el Datasheet , esta semana voy a pedir unos cuantos para empezar a enredar...
Me haré el programador para acoplar a la arduino uno, y empezare a hacer cositas... Y lo que comentabas tu, de enviar la lectura del sensor de temperatura de forma inalámbrica es un comienzo...

Espero ese post con ansia...
Un saludo!