All, thanks for your help. I have it working now.
One jeenode has the room board a second jeenode has an lcd.
I'm still missing something because it seems that the hdr (node id) is not being sent. I have tried looking for the reason, but cannot find it.
Even went back to using eeprom config instead of specified:
// initialize wireless node for 868 Mhz, group 4, node 9
//rf12initialize(9, RF12868MHZ, nodeid);
rf12config();
rf12easyInit(5); // throttle packet sending to at least 5 seconds apart
You can see I'm still learning C, because I'm having trouble putting a '.' in the temp reading. The LCD sketch:
#include
#include
PortI2C myBus (3);
LiquidCrystalI2C lcd (myBus);
char character;
void setup () {
Serial.begin(57600);
Serial.println("\nremoteLCD;
// intialize wireless node for 868 MHz, group 4, node 20
rf12initialize(20, RF12868MHZ, 5);
// show a startup message on the LCD
lcd.begin(16, 2);
lcd.print("remoteLCD;
}
void loop () {
if (rf12recvDone() && rf12crc == 0) {
// clear screen, return to home position, and display received string
lcd.clear();
// byte hdr = rf12data[0];
byte a = rf12data[0];
byte b = rf12data[1];
byte c = rf12data[2];
byte d = rf12data[3];
// int deviceid = hdr & 0x1F;
// lcd.print((int) deviceid);
// lcd.print(' ');
int light = a ;
lcd.print((int) light);
lcd.print(' ');
int motion = b & 1;
lcd.print((int) motion );
lcd.print(' ');
int humidity = b >> 1;
lcd.print((int) humidity);
lcd.setCursor(0,1);
lcd.print("temp:");
int temperature = (((256 (d&3) + c) ^ 512) - 512);
// temperature = temperature0:2-1];
lcd.print((int) temperature);
lcd.print(' ');
int battery = (d >> 2) & 1;
lcd.print((int) battery);
lcd.print(' ');
// Serial.println(" ok");
}
}