#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {192, 168, 0, 5 }; // ip in lan
EthernetServer server(80); //server port
String readString;
void setup()
{
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
Wire.begin(); // join i2c bus (address optional for master)
}
void loop()
{
EthernetClient client = server.available();
if (client)
{
while (client.connected())
{
if (client.available())
{
char c = client.read();
if (readString.length() < 100) readString += c;
if (c == '\n')
{
client.stop();
int spacePosition = readString.indexOf('/');
if (readString.charAt(spacePosition + 1) == '?')
{
Wire.beginTransmission(4); // transmit to device #4
char buffer[32];
readString.toCharArray(buffer, 32);
Wire.write(buffer);
Serial.print(buffer);
Wire.endTransmission(); // stop transmitting
}
readString="";
}
}
}
}
}
#include <Wire.h>
void setup()
{
Wire.begin(4);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void loop()
{
delay(100);
}
void receiveEvent(int howMany)
{
while(1 < Wire.available()) // loop through all but the last
{
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}