Étape 5: Exemple de code
/*
Yeelink capteur client puissance ELECTRIQUE exemple * / #include #include #include #include octet buff [2] ; pour yeelink api #define APIKEY « 537ef1cef1b8726b39347abb8c0c809a » / / remplacer votre clé api d’yeelink ici #define DEVICEID 7931 / / remplacer votre ID de périphérique #define SENSORID 12568 / / remplacer votre capteur ID / / assigner une adresse MAC pour le contrôleur ethernet. la mac de Byte [] = {0 x 00, 0x1D, 0 × 72, 0 × 82, 0 × 35, 0x9D} ; Initialisez l’instance de la bibliothèque : EthernetClient client ; Char [serveur] = "api.yeelink.net" ; nom adresse des API yeelink unsigned long lastConnectionTime = 0 ; la dernière fois vous connecté au serveur, en millisecondes lastConnected booléen = false ; État de la connexion, la dernière fois par le biais de la principale boucle postingInterval long non signé const = 3 * 1000 ; délai entre 2 datapoints, 30 s String returnValue = "" ; ResponseBegin booléen = false ; void setup() {pinMode (7, sortie) ; Wire.Begin() ; serial port de départ : Serial.begin(57600) ; Démarrer la connexion Ethernet avec DHCP : si (Ethernet.begin(mac) == 0) {Serial.println ("Impossible de configurer Ethernet à l’aide de DHCP"); for(;;);} else {Serial.println ("configuration Ethernet OK");}} void loop() {/ / si il y a des données entrantes de la connexion net. / / envoyer sur le port série. Il s’agit pour le débogage / / uniquement à des fins : si (client.available()) {char c = client.read(); / / Serial.print(c) ; if (c == ' {') ResponseBegin = true ; else if (c == '}') ResponseBegin = false end if (ResponseBegin) returnValue += c;} si (returnValue.length()! = 0 & & (ResponseBegin == false)) {Serial.println(returnValue) ; if (returnValue.charAt(returnValue.length()-1) == ' 1′) {Serial.println ("allumer la LED"); digitalWrite (7, HIGH);} else if(returnValue.charAt(returnValue.length()-1) == ' 0′) {Serial.println ("désactiver la LED"); digitalWrite (7 FAIBLE) ; } returnValue = "";} Si il n’y a aucune connexion au réseau, mais il y avait une dernière fois / / dans la boucle, puis arrêtez le client : si (! client.connected() & & lastConnected) {Serial.println() ; Serial.println("disconnecting.") ; client.Stop() ; } / / Si vous n’êtes pas connecté, et dix secondes se sont écoulées depuis / / votre dernière connexion, puis reconnectez-vous et envoyer des données : if(!client.connected() & & (millis() – lastConnectionTime > postingInterval)) {/ / lire les données du capteur, à remplacer par votre code //int sensorReading = readLightSensor() ; Serial.Print("yeelink:") ; récupérer des données de serveur getData() ; } / / stocker l’état de la connexion pour la prochaine fois par / / la boucle : lastConnected = client.connected() ; } / / Cette méthode effectue une connexion HTTP pour le serveur et get données retour void getData(void) {/ / si il y a une connexion réussie : si (client.connect (serveur, 80)) {Serial.println("connecting...") ; Envoyer la demande HTTP GET : client.print (« GET /v1.0/device/") ; client.Print(DEVICEID) ; client.Print("/Sensor/") ; client.Print(SENSORID) ; client.Print("/DataPoints") ; client.println ("HTTP/1.1″) ; client.println ("Host : api.yeelink.net") ; client.Print ("Accept: *") ; client.Print("/") ; client.println("*") ; client.Print (« U-ApiKey: ") ; client.println(apikey) ; client.println ("Content-Length:" 0 ") ; client.println ("Connection : close") ; client.println() ; Serial.println ("impression se fait.") ; } else {/ / si vous ne pouvait pas établir une connexion : Serial.println ("connexion impossible") ; Serial.println() ; Serial.println("disconnecting.") ; client.Stop() ; } / / note le temps que la connexion a été effectuée ou tentée : lastConnectionTime = millis() ; }