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 :
Câblage du potentiomètre pour la carte ESP32 Wroom Devkit 2
Câblage du potentiomètre pour la carte NodeMCU ESP8266
// 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
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.