Pour aller plus loin
Appareils SinricPro
SinricPro propose de nombreux appareils (virtuels) afin de dialoguer avec différents types d'objets connectés. En effet un objet connecté peut être raccordé à différents types de capteurs ou d'actionneurs.
Méthode :
L'appareil Switch a été programmé grâce à la classe SinricProSwitch.
SinricPro possède d'autres classes adaptées à différents type de capteurs et actionneurs.
Le principe de programmation reste identique à ce que nous avons vu :
on crée un objet du type voulu en dehors de toute fonction en précisant le DEVICE_ID. Exemple :
SinricProSwitch& mySwitch = SinricPro[SWITCH_ID];
on écrit la fonction de rappel (fonction appelée en cas de message request()) en se référant à la documentation SinricPro. Exemple :
bool onPowerStateCb(const String& deviceId, bool& state) {
...........
return true;
}
on enregistre cette fonction de rappel grâce à la fonction indiquée dans la classe en question (toujours de la forme
on...()). Cet enregistrement se fait dans la fonctionsetupSinricPro(). Exemple :
mySwitch.onPowerstate(onPowerStateCb);
enfin on écrit la fonction chargée d'envoyer un message de type event() grâce à la fonction indiquée dans la classe en question (toujours de la forme
send...Event()).
mySwitch.sendPowerStateEvent(buttonState);
Exemple :
Objectif : afficher l'information fournie par un montage potentiométrique.
On utilisera la classe SinricProTemperaturesensor. On appellera la fonction sendTemperatureEvent() toutes les 60 s dans la fonction handleButtonPress(). Il faudra également démarrer l'appareil pour que SinricPro affiche la valeur issue du potentiomètre.
Complétez la fonction handleButtonPress() de manière à :
lire la broche analogique sur laquelle on branchera le point milieu d'un potentiomètre alimenté en 3,3 V ;
envoyer la valeur numérique de la sortie du CAN de l'ESP (10 bits pour l'esp8266 et 12 bits pour l'esp32) vers SinricPro grâce à la fonction
sendTemperatureEvent();répéter ces deux opérations toutes les 60 s.
On oubliera pas d'inclure le fichier d'en-tête
SinricProTemperaturesensor.h.
Câblez le potentiomètre conformément au schéma qui correspond à votre carte :
// Rappel sur la conversion ananlogique - numérique// Pour l'esp8266 :analogRead(A0); // Le résultat sur 10 bits doit être mémorisé dans une variable
// Pour l'esp32 :analogRead(36); // Le résultat sur 12 bits doit être mémorisé dans une variable




