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 :

1
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 :

1
bool onPowerStateCb(const String& deviceId, bool& state) {
2
    ...........
3
    return true;
4
}
  • 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 fonction setupSinricPro(). Exemple :

1
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()).

1
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 :

Câblage du potentiomètre pour la carte ESP32 Wroom Devkit 2

Câblage du potentiomètre pour la carte NodeMCU ESP8266

1
// Rappel sur la conversion ananlogique - numérique
2
// Pour l'esp8266 :
3
analogRead(A0); // Le résultat sur 10 bits doit être mémorisé dans une variable
4
// Pour l'esp32 :
5
analogRead(36); // Le résultat sur 12 bits doit être mémorisé dans une variable

Méthode

Vérifier que la valeur issue du CAN de l'ESP s'affiche bien dans SinricPro. Les données sont actualisées seulement toutes les 60 s !

Les valeurs affichées ne correspondent évidemment pas à une température, mais cette exemple permet de montrer comment on peut afficher un signal numérique.