Ciao a tutti ho un problema con la funzione udp.write... vorrei riuscire ad inviare messaggi udp contenente nome sensore, valore rilevato (float)..una cosa del genere SENSORE1 25 C°
il testo viene inviato correttamente mentre il float no... da quanTo mi pare di capire (sono un principiante) devo riuscire a convertire il float in caratteri ASCII e poi inserirlo nel messaggio..ma non so come fare....
Ho letto qualcosa su questo topic Arduino Forum ma al momento non riesco a capire bene e a prendere spunto per poi risolvere il mio problema...se qualcuno ne sapesse un po di piu e avesse il buon cuore di darmi una mano.. Grazie..!
Vi posto il mio codice...che al momento invia solo SENSORE1 = C..il sensore in questione è il DS18B20..
#include <SPI.h>
#include <EthernetUdp.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
const int ONE_WIRE_BUS = 3; // signal pin of DS18B20 connected to pin 3
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168,1, 177 };
unsigned int localPort = 7777;
byte remote_ip[] = { 192, 168,1, 100 };
unsigned int remote_port = 7777;
EthernetUDP Udp;
float temp;
void setup()
{
Ethernet.begin(mac,ip);
Udp.begin(localPort);
sensors.begin();
}
void loop()
{
Udp.beginPacket(remote_ip,remote_port);
sensors.requestTemperatures(); // get data from DS18B20
temp = sensors.getTempCByIndex(0);
Udp.write("SENSOR1 = ");
Udp.write(temp);
Udp.write("C");
Udp.endPacket();
delay(1000);
}