#include <Wire.h>char data[59]= {};// mon tableau à envoyerint i =0;int X=0;String donnees;int humsol=50;int humair=20;int tempext=25;int tempint=18;int niveau=1;int lum=1000;void setup(){ Serial.begin(9600); Wire.begin(0x12); // addresse 0x12 Wire.onRequest(sender);}void loop(){ donnees=""; //je vide le String donnees donnees="tempext"; donnees +="="; donnees +=String(tempext); donnees += ";"; // et je le remplis donnees +="tempint"; donnees +="="; donnees +=String(tempint); donnees += ";"; donnees +="humsol"; donnees +="="; donnees +=String(humsol); donnees += ";"; donnees +="humair"; donnees +="="; donnees +=String(humair); donnees += ";"; donnees +="lum"; donnees +="="; donnees +=String(lum); donnees += ";"; donnees +="niveau"; donnees +="="; donnees +=String(niveau); //Serial.println(donnees); // cela me donne 1 fois string = "50 20" for (int i=donnees.length()+1;i<60;i++){ donnees +=" "; } donnees.toCharArray(data,60); // je le tranforme en tableau de char //Serial.println(data); // cela me donne 1 fois char = "50 20" delay(100);}void sender(){ Serial.print(data[X]); Wire.write(data[X]); // envoi du tableau sur 59 byte //Serial.println(X); X++; if(X>=59){ X=0; Serial.println(""); }}
#include <Wire.h>String donnees;int index=0;void setup(){ Wire.begin(0x12); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); Serial.begin(9600); donnees=""; }void loop(){ delay(1000);}void receiveEvent(int bytesReceived){ Serial.println("receiveEvent"); Serial.println(bytesReceived); while(Wire.available()){ int n=Wire.read(); Serial.print(n); if (n==15 && bytesReceived==1){ donnees="Hello all !"; index=0; } Serial.print(" "); } Serial.println("");}void requestEvent(){ Serial.println("requestEvent"); if (index >= donnees.length()) { Wire.write(0); } else { Wire.write(donnees[index]); } index++;}