Table des matières:

Capteur de présence : 12 étapes
Capteur de présence : 12 étapes

Vidéo: Capteur de présence : 12 étapes

Vidéo: Capteur de présence : 12 étapes
Vidéo: Comment installer un détecteur de mouvement pour un allumage automatique de l’éclairage ? 2024, Novembre
Anonim
Capteur de présence
Capteur de présence

Les wearables sont généralement des appareils compatibles BLE. Il est courant pour eux d'annoncer périodiquement certaines données le long de son adresse MAC. Nous utilisons un ESP pour analyser ces données et déclencher un événement via Internet lorsqu'il trouve une adresse MAC spécifique. Cette implémentation particulière est destinée à un seul utilisateur sur une prise intelligente connectée à une lampe. Mais il peut également être utilisé avec un ensemble d'appareils enregistrés avec tout type d'appareils compatibles IOT.

Fournitures

  1. ESP32
  2. (optionnel) Prise murale WiFi TECKIN S10
  3. Appareil compatible BLE de toute sorte

Étape 1: Définissez votre scénario

Définissez votre scénario
Définissez votre scénario

Pour le déclencheur, vous pouvez utiliser la plupart des appareils portables modernes. Il peut s'agir d'une Apple Watch, d'un bracelet mi fit, d'un téléphone ou même de votre propre accessoire portable basé sur un ESP32.

Probablement l'une des étapes les plus importantes. Il faut anticiper sur 3 choses:

1. Quel appareil portable ou appareil va être le déclencheur du capteur de proximité.

2. Qu'est-ce qui va déclencher le capteur (cela se fait via IFTTT).

3. Quand le capteur va se déclencher

Pour cet exemple, j'utiliserai mon Apple Watch pour déclencher une prise intelligente pour allumer une lampe lorsque je suis assis à mon bureau.

Dans ce tutoriel, nous examinerons une prise intelligente de TECKIN. Vous pouvez le trouver chez amazon à un bon prix. Il est également compatible avec Alexa et Google Home. Grande valeur!

Étape 2: (Intro) Définir le déclencheur - Plusieurs utilisateurs

Si vous souhaitez configurer de manière à ce qu'il fonctionne avec toute personne disposant d'un appareil compatible BLE suffisamment proche de votre capteur, ignorez l'étape suivante. C'est assez utile, c'est le réglage que j'utilise personnellement. Gardez à l'esprit que ce capteur peut être facilement piraté ou exploité pour se déclencher, donc je ne ferais pas confiance à une pinte de support de sécurité; juste pour une question pratique (c'est-à-dire que je ne veux pas qu'il soit déclenché par mon PC car il sera toujours à côté du capteur).

Étape 3: (Intro) Définir le déclencheur - Utilisateurs limités

Cette étape varie considérablement selon votre configuration. Pour limiter les appareils pouvant déclencher le capteur, vous avez de nombreux itinéraires à limiter:

- Adresse MAC BLE (équivalente à l'adresse IP sur un réseau wifi. La raison pour laquelle elle ne garantit pas la sécurité puisque ce n'est pas la vraie adresse MAC du module. Sur les appareils iOS elle change à chaque redémarrage du bluetooth, pas si fun)

- Code du fabricant (meilleure option, mais aucun moyen de limiter les appareils spécifiques du même fabricant/modèle)

- Nom, service UIDD (rare mais la meilleure option, principalement des vêtements de bricolage ou peut-être une application Android)

Quelques notes:

1. S'il s'agit d'un appareil iOS:

- Vous avez des avantages et des inconvénients importants. Pro, ils transmettent le niveau de puissance auquel il s'agit de données publicitaires. C'est utile au stade de l'étalonnage, vous constaterez que l'utilisation d'une Apple Watch est utile car elle diffuse à 24 db, les iPhones et la plupart des appareils transmettent à 12 db.

CON, vous devrez trouver des solutions de contournement. L'adresse MAC annoncée (la principale méthode d'identification) change à chaque redémarrage du signal Bluetooth, ce qui signifie que vous devrez télécharger le code à chaque fois… pas amusant. Vous pouvez utiliser les données du fabricant qui peuvent varier selon les modèles. Cela signifie que vous pouvez limiter pour qu'il détecte "tous les iPhone 8".

2. S'il s'agit d'un appareil Android:

- Personnellement, je n'ai pas d'appareil Android. Mais il existe probablement de nombreuses applications qui peuvent corriger l'adresse MAC ou même ajouter un nom personnalisé (si c'est la voie que vous souhaitez suivre). Sur les appareils iOS, il existe une application "nrf connect" qui peut le faire. Mais n'est pas persistant, ce qui signifie que si vous verrouillez l'écran ou changez d'application, la configuration s'éteint en quelques secondes.

3. Un autre ESP32. (votre meilleur pari)

- Un code simple comme celui-ci peut être implémenté dans un appareil comme celui-ci; une bande intelligente alimentée par esp32. Le code est en fait un exemple de la bibliothèque ESP BLE BLE_IBeacon.ino. Je ne l'ai pas beaucoup testé depuis que mon bracelet intelligent est en cours d'expédition, je publierai probablement des mises à jour bientôt.

Étape 4: (Configuration) - IFTTT

(Configuration) - IFTTT
(Configuration) - IFTTT

Ok, donc à ce stade, vous devriez probablement prendre toutes les décisions de votre flux de travail. Vous avez votre dispositif de déclenchement, vous avez un endroit pour mettre l'ESP avec une connexion sans fil à Internet et vous avez une action en tête que IFTTT peut automatiser.

IFTTT est puissant; que ce soit juste pour envoyer une simple notification à votre appareil, vous souhaitez envoyer un tweet ou allumer une ampoule avec une prise intelligente. Dans ce tutoriel, nous allons implémenter le dernier avec les prises intelligentes TECKIN compatibles avec IFTTT. Dans tous les cas, téléchargez l'application IFTTT ou accédez au site Web IFTTT.com et créez un compte.

C'est tout pour l'instant !

Si vous souhaitez simplement envoyer une notification ou autre chose que la prise Smart Life, vous pouvez ignorer l'étape suivante.

Étape 5: (Configuration) Périphérique IOT *facultatif*

Téléchargez l'application "Smart Life" sur le PlayStore (android) ou l'AppStore (iOS). Les instructions sont assez simples, même si le processus est un peu délicat. J'ai découvert au stade de la numérisation (lorsque le bouton bleu clignotait) qu'il s'était arrêté à un moment donné, puis j'ai appuyé manuellement dessus pour l'allumer et l'éteindre plusieurs fois. Cela m'a aidé. De toute façon; la configuration de cette prise n'est pas différente avec notre application, donc si vous en possédez déjà une et que vous l'avez connectée à votre application, vous devriez être prêt à partir.

PRENDRE NOTE: Vous devez pouvoir activer et désactiver l'interrupteur à partir de l'application avant de passer à cette étape. Cela signifie que vous avez correctement configuré la prise intelligente.

L'application IFTTT doit se synchroniser de manière transparente avec l'application "Smart Life", incitant probablement une authentification lors de la création d'un événement à l'étape suivante.

Étape 6: (Configuration) IFTTT Webhook Api *Utilisateurs expérimentés*

(Configuration) IFTTT Webhook Api *Utilisateurs expérimentés*
(Configuration) IFTTT Webhook Api *Utilisateurs expérimentés*

Si vous n'avez jamais utilisé l'application IFTTT et que vous n'êtes pas à l'aise avec certains termes techniques, ignorez cette étape pour le guide détaillé (avec photos) à l'étape suivante.

1. Créez un nouvel événement.

2. Définissez « this » pour qu'il s'agisse d'une API de webhook. Notez le nom que vous avez défini pour l'événement.

3. Réglez « ça » sur le comportement souhaité. Pour la prise intelligente, recherchez smart life et sélectionnez « allumer ».

4. Sélectionnez votre prise intelligente et appuyez sur Terminer.

5. Sur l'écran d'accueil, recherchez la carte « webhooks ». Après avoir appuyé dessus, appuyez sur "obtenir plus" en bas.

6. Dossier de presse. Cela vous montrera votre clé API ainsi qu'un constructeur et un testeur d'URL.

7. Utilisez le constructeur d'URL avec le nom que vous avez écrit en #2. Copiez-le et écrivez.

8. Répétez l'opération si vous souhaitez qu'un comportement se déclenche lorsque le capteur de présence n'est plus actif. Dans notre cas, répétez #3 mais sélectionnez « désactiver ». De plus, au n ° 2, le nom devrait également être différent cette fois-ci.

Si vous avez terminé, passez à l'étape suivante.

Étape 7: (Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*

(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*
(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*
(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*
(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*
(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*
(Configuration) IFTTT Webhook Api *Pour les débutants avec des photos*

Guide détaillé *le guide photo doit être similaire avec Android et sur le Web*

IFTTT est un flux de travail simple, si "cela arrive" alors "cela arrive". Vous devez en créer un nouveau, 1. sur l'application, appuyez sur "obtenir plus" et une liste s'affichera.

2. Juste en dessous de la barre de recherche, il est dit "créez vos propres applets à partir de zéro", appuyez sur le signe plus.

3. Appuyez sur "ceci" signe plus

Dans notre cas, "ceci" va être un appel API via Internet. Un appel API est une consultation d'une URL, un peu comme lorsque vous tapez une recherche google et que l'url est google.com/ (une longue chaîne de caractères). Pour créer l'API: (après avoir appuyé sur « this »)

4. Recherchez « webhooks »

5. Sélectionnez la seule option

6. Nommez votre événement (dans cet exemple, nous utiliserons « Sit »). Notez ce nom, très important.

7. Appuyez sur Créer un déclencheur

D'accord! nous sommes plus proches, maintenant de la partie "cela". Pour ce tutoriel, nous allons définir "ça" pour allumer la prise intelligente. Mais vous pouvez choisir n'importe quoi chez IFTTT. Un bon moyen de tester la configuration est de sélectionner "notifications" qui enverra une notification à votre téléphone à chaque fois que le capteur se déclenchera (ou que l'API est appelée, même depuis un navigateur web: utile pour tester !)

8. Appuyez sur "cela" signe plus

9. Recherchez « Smart Life » (ou « notifications »)

10. Appuyez sur « allumer » (vous devrez répéter ces étapes pour créer un autre événement à désactiver lorsque vous partez)

11. Si vous avez correctement configuré les deux applications et la prise, vous devriez voir votre prise dans la liste déroulante « quel appareil/groupe ».

12. Sélectionnez Créer une action, puis terminez.

Vous devriez maintenant voir que l'événement est connecté. Maintenant, nous devons obtenir l'URL de l'API. Pour ça:

13. Accédez à l'écran d'accueil IFTTT

14. Trouver la carte Webhooks

15. Sélectionnez "En savoir plus"

16. Appuyez sur le bouton Documentation. Vous devriez voir une page Web avec votre clé.

17. Aux espaces réservés "{event}" remplissez le nom de votre événement (rappelez-vous le point 6)

18. Allez au bas de la page et appuyez sur "Testez-le"

Ce que vous devriez probablement voir est une bannière verte "un événement a été déclenché" et vous devriez voir si cela a fonctionné ou non. Dans notre cas, la prise doit s'allumer. Ou vous devriez voir une notification si vous décidez d'emprunter cette voie. Cela peut prendre un peu de temps, mais pas plus d'une minute pour voir si vous avez réussi. N'oubliez pas qu'il est probablement sensible à la casse.

19. Enfin. Copiez l'url où vous avez remplacé le nom de votre événement (à 17) et enregistrez-le dans un endroit sûr. Vous en aurez besoin bientôt.

20. Répétez 1-12. A 6h, nous utiliserons "Stand" cette fois-ci. À 10 h, sélectionnez « éteindre » à la place.

21. Répétez 13-18 si vous le souhaitez, mais vous pouvez vous en tirer avec l'URL que vous avez copiée à 19, mais changez maintenant l'endroit où vous avez écrit « Sit » et remplacez-le par « Stand ». Vous pouvez tester cela sur un navigateur Web. Il devrait dire « ! Vous avez déclenché l'événement Stand'. Ensuite, la prise devrait s'être éteinte.

Étape 8: (Code) Programmation de l'ESP32

(Code) Programmation de l'ESP32
(Code) Programmation de l'ESP32

Vous pouvez ignorer cette étape si vous vous sentez à l'aise de télécharger des croquis de l'IDE Arduino sur votre carte ESP32. N'oubliez pas de définir au moins une partition de 2 Mo pour l'application, car l'esquisse pèse un peu plus de 1,2 Mo de la limite habituelle.

Il existe de nombreux excellents tutoriels, en voici quelques-uns que je recommande:

circuitdigest.com/microcontroller-projects…

Mais encore, pour que vous ne soyez pas si perdu, je vais détailler quelques points clés importants.

- ESP32 n'est pas une carte Arduino mais elle peut toujours être programmée par l'IDE Arduino. Avec un simple code Arduino. Mais, vous devrez toujours configurer l'IDE pour qu'il fonctionne avec l'ESP32.

- Vous devrez installer certaines bibliothèques via le "Gestionnaire de cartes supplémentaires" dans les préférences. C'est l'URL que vous devez coller:

- (facultatif, peut aider) Dans Outils-> Gérer les bibliothèques… -> (trouver la bibliothèque esp BLE)

- chez Tools, vous devriez maintenant avoir une longue liste d'appareils ESP, je recommande le module dev ESP32

- (IMPORTANT) Sélectionnez (pas d'application Ota 2 Mo/2 Mo de spifs) dans le gestionnaire de partition. Cette étape est importante car l'application devient assez lourde en raison de l'utilisation à la fois des connexions wifi/http et d'un scanner BLE.

Si vous avez tout fait correctement, vous devriez pouvoir programmer l'ESP32. Maintenant, le processus est similaire à celui de l'arduino dans certaines cartes. Branchez-le, sélectionnez la carte correspondante, le port USB et le tour est joué. Mais, dans de nombreux autres cas, vous devrez procéder

Étape 9: (Code) Téléchargez le code sur l'ESP32

(Code) Téléchargez le code sur l'ESP32
(Code) Téléchargez le code sur l'ESP32

D'accord, si vous êtes ici, cela signifie que vous avez téléchargé avec succès un croquis sur la carte ESP32, de préférence le croquis blink.ino.

Maintenant, voici le code principal joint, vous pouvez également le trouver sur le dépôt GitHub. Vous devez remplacer les éléments suivants:

SSID - Votre nom wifi

PSK - Votre mot de passe wifi

sit - L'URL avec "Sit" de l'API IFTTT que vous avez écrite plus tôt

stand - L'URL avec "Stand" De l'API IFTTT que vous avez écrite plus tôt

Maintenant, rapprochez votre déclencheur du tableau, puis téléchargez le code. Ensuite, ouvrez le moniteur série (baud 115200) après avoir chargé avec succès le code.

Si vous prévoyez de l'utiliser avec n'importe quel type d'appareil compatible BLE, ignorez l'étape suivante.

REMARQUE: si vous obtenez des messages d'erreur de mémoire, c'est parce que les paramètres par défaut ne laissent que 1 Mo de mémoire (sur les 4 Mo présents) pour le code brut ESP. Il laisse une partie pour deux ou trois choses en option pour programmer en direct. Je fais généralement ce qui suit:

- dans Outils, vous devriez maintenant avoir une longue liste de périphériques ESP, je recommande le module de développement ESP32-Sélectionnez 'no Ota 2mb app/2mb spifs' dans le gestionnaire de partition.

Cela me donne le double de l'espace mémoire, nécessaire pour cette application.

Étape 10: (Code) Téléchargez le code sur l'ESP32 *facultatif*

(Code) Téléchargez le code sur l'ESP32 *facultatif*
(Code) Téléchargez le code sur l'ESP32 *facultatif*

Voici la partie délicate mentionnée à l'étape "Définir le déclencheur". Le moniteur affichera l'adresse MAC (devrait ressembler à ##:##:##:##:## où # est soit un nombre soit une lettre de a à f), le code du fabricant et le RSSI (un nombre négatif). Ici, vous devez jouer un peu pour trouver quel est votre appareil. Je le mets généralement à côté du tableau pour que je puisse clairement voir quel est le plus petit nombre. Je décoche la case 'autoscroll' pour pouvoir copier les valeurs.

  • S'il s'agit de l'adresse Mac, remplissez « myDevice » avec. Décommentez ensuite la ligne #96 et commentez la ligne #95
  • Si c'est le nom, remplissez 'myDevice' avec. Décommentez ensuite la ligne #97 et commentez la ligne #95
  • Si c'est le MaufactureData que vous n'avez pas de chance pour l'instant, je suis toujours en train de développer cette partie.

Pour ajouter la prise en charge de plusieurs périphériques, vous devriez pouvoir copier la déclaration conditionnelle à #96 ou #97 et les placer les unes à côté des autres dans cette syntaxe:

si((condition1) || (condition2) || (condition3)){

Ajoutez plus de variables (myDevice1, myDevice2, myDevice3) en conséquence.

Étape 11: Placer l'ESP et calibrer

Placer l'ESP et calibrer
Placer l'ESP et calibrer

C'est la partie la plus importante de la configuration. Suivre attentivement ce processus sera la différence si cela fonctionne comme par magie ou vous donne simplement de forts maux de tête.

À ce stade, le code que vous avez téléchargé fonctionne avec les paramètres que j'ai personnellement testés et que j'utilise quotidiennement avec mon téléphone sur mon bureau; cela ne signifie pas que cela fonctionnera pour vous aussi. Vous devez donc effectuer le calibrage vous-même.

1. Placez la carte ESP32 à son emplacement FIXE final. Si vous déplacez pour une raison quelconque la position de votre ESP32, vous devriez probablement le refaire. Cela vous assurera une bonne expérience dans l'ensemble.

1. (supplément) n'oubliez pas que vous devrez pouvoir vous connecter à votre ordinateur pendant cette opération. Si vous ne pouvez pas parce que vous êtes sur un ordinateur de bureau, vous devrez faire des essais et des erreurs en gardant à l'esprit que chaque essai doit être presque identique en termes de positionnement, de dispositif de déclenchement et d'autres facteurs qui peuvent entrer en ligne de compte.

2. Ouvrez Serial Monitor avec le code en cours d'exécution.

Le code par défaut affichera via le moniteur série le RSSI (indication de la force du signal reçu) de chaque périphérique Bluetooth trouvé (ou simplement le ou les périphériques correspondant à vos paramètres). Jouez un peu avec votre dispositif d'action principal (dispositif de déclenchement). Vous devez déterminer quels sont les seuils que vous souhaitez utiliser. Ajuster soigneusement cette configuration

3. Lorsque vous déterminez les seuils, remplacez-les ici:

  • near_thrsh
  • far_thrsh

4. Rechargez le code, testez et répétez jusqu'à ce que vous trouviez des performances optimales.

Peu de choses à considérer:

1. Vous voulez environ 20db de différence entre les seuils. Si near_thrsh est défini sur 50, il est alors souhaitable que far_thrsh soit égal ou supérieur à 70. Si la différence est trop courte, alors vous pourriez trouver des distances ou des endroits où la planche se déclenche et s'éteint sans arrêt. L'augmentation de cette différence vous permettra d'éviter ce comportement indésirable. J'ai trouvé personnellement que 20db de marge est assez bon.

2. Dans la mesure du possible, lors du test d'étalonnage, les scénarios de la vie réelle aideront à déterminer les meilleures performances.

3. Étudiez la classe à la ligne 82 du code; c'est ici que toute la logique est faite. Le code est bien commenté par contre. N'hésitez pas à demander sur GitHub !

Étape 12:. Vous avez terminé

Faites-moi savoir dans les commentaires de toute suggestion ou si vous rencontrez des problèmes. N'oubliez pas de vérifier le GitHub si votre problème a déjà été résolu !

Conseillé: