Table des matières:

IDC2018IOT Dites-moi quand éteindre le courant alternatif : 7 étapes
IDC2018IOT Dites-moi quand éteindre le courant alternatif : 7 étapes

Vidéo: IDC2018IOT Dites-moi quand éteindre le courant alternatif : 7 étapes

Vidéo: IDC2018IOT Dites-moi quand éteindre le courant alternatif : 7 étapes
Vidéo: TEMPLE RUN 2 SPRINTS PASSING WIND 2024, Décembre
Anonim
Image
Image

Beaucoup d'entre nous, surtout en été, utilisent la climatisation presque sans arrêt, alors qu'en réalité, à certains moments de la journée, nous pouvons simplement ouvrir une fenêtre et profiter d'une belle brise. De plus, nous avons personnellement remarqué que nous oublions parfois même d'éteindre la climatisation en quittant la pièce, gaspillant de l'énergie et de l'argent.

La solution que nous allons construire comparera la température intérieure avec celle de l'extérieur et, lorsqu'elles seront suffisamment proches, nous informera via Facebook Messenger qu'il est temps d'ouvrir une fenêtre et de laisser le climatiseur se reposer.

De plus, nous créerons un autre mécanisme pour nous avertir lorsque nous avons oublié la climatisation et quitté la pièce.

Étape 1: un peu plus de détails

Nous collectons les données de 4 capteurs différents:

  • Deux capteurs DHT collectent la température à l'intérieur et à l'extérieur de la maison.
  • Un capteur PIR détecte les mouvements dans la pièce.
  • Un microphone Electret est utilisé pour détecter le vent sortant de l'évent AC, un moyen simple et fiable de déterminer si l'AC est allumé.

Les données provenant des capteurs seront traitées et envoyées au Blynk où elles seront affichées dans une interface que nous créerons. De plus, nous déclencherons des événements IFTTT afin d'informer l'utilisateur lorsqu'il peut ouvrir une fenêtre à la place de la climatisation, et lorsqu'il a oublié la climatisation et a quitté la pièce pendant une période prédéfinie.

L'interface Blynk nous donnera également un moyen de modifier les paramètres pertinents en fonction des préférences de l'utilisateur, comme nous le verrons plus en détail plus tard.

Pièces requises:

  1. Module Wi-Fi - ESP8266
  2. Capteur PIR.
  3. Capteurs de température DHT11/DHT22 x2.
  4. Résistances 10k/4,7k (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Micro à électret.
  6. Cavaliers.
  7. Câbles longs (le fil téléphonique fera un excellent travail).

Le code complet du projet est joint à la fin avec des commentaires tout au long du code.

Logiquement, il a plusieurs couches de fonctionnalités différentes:

  • Les données des capteurs sont lues à des intervalles de 3 secondes car elles se révèlent plus précises et il n'y a pas besoin de plus que cela.
  • Une partie du code suit l'état du courant alternatif par les valeurs provenant du microphone à électret placé sur l'ouverture du courant alternatif.
  • Une autre partie consiste à suivre la lecture provenant des capteurs de température et la différence entre l'utilisation définie comme acceptable pour éteindre la climatisation et ouvrir une fenêtre à la place. Nous recherchons le moment où les températures se rapprochent suffisamment.
  • Une troisième partie consiste à suivre les mouvements dans la pièce. S'il ne détecte aucun mouvement majeur (la manière de vérifier le majeur sera expliquée prochainement) pendant une période définie par l'utilisateur, et que l'état AC est ON, une notification sera envoyée à l'utilisateur.
  • Les notifications sont gérées en déclenchant des Webhooks IFTTT qui envoient des messages prédéfinis à l'utilisateur via Facebook Messenger
  • La dernière partie à noter est la partie qui gère l'interface Blynk, à la fois en obtenant les modifications que l'utilisateur apporte aux variables et dans l'autre sens - en transmettant les données à l'interface Blynk pour que l'utilisateur puisse les voir.

Étape 2: Dans beaucoup plus de détails - Capteurs

Dans beaucoup plus de détails - Capteurs
Dans beaucoup plus de détails - Capteurs
Dans beaucoup plus de détails - Capteurs
Dans beaucoup plus de détails - Capteurs

Commençons.

Tout d'abord, nous devons nous assurer que nos deux capteurs DHT lisent la même température lorsqu'ils sont placés au même endroit. Pour cela, nous avons fait un croquis simple joint à la fin de cette section (CompareSensors.ino). Connectez les deux capteurs et assurez-vous de changer le type de capteurs DHT dans le croquis en fonction de ceux que vous avez (la valeur par défaut est un DHT11 et un DHT22, afin que vous puissiez voir comment les deux sont traités dans le code). Ouvrez le moniteur série et laissez-les fonctionner pendant un certain temps, surtout si vous utilisez des capteurs DHT11, car ils ont tendance à mettre plus de temps à s'adapter aux changements de température.

Notez la différence entre les capteurs, et insérez-la plus tard dans le code principal dans la variable "offset".

Emplacement des capteurs:

Un capteur DHT doit être placé sur le mur extérieur de la maison, alors connectez-le à de longs câbles, assez longs pour atteindre votre ESP8266 à l'intérieur de la pièce, et placez-le à l'extérieur (cela peut être fait facilement à travers la fenêtre). L'autre capteur DHT doit être placé sur la maquette, à l'intérieur de la pièce dans laquelle nous utilisons le climatiseur.

Le microphone à électret doit également être connecté à des câbles suffisamment longs et placé dans un endroit où le vent sortant du courant alternatif le frappera.

Enfin, le capteur PIR doit être placé dans un endroit faisant face au centre de la pièce afin qu'il capture chaque mouvement dans la pièce. Notez que le capteur a deux petits boutons, l'un contrôlant le délai (combien de temps le signal HAUT de détection d'un mouvement est maintenu HAUT), et l'autre contrôle la sensibilité (voir photo).

Vous devrez peut-être jouer avec jusqu'à ce que vous obteniez une lecture dont vous êtes satisfait. Pour nous, le meilleur résultat était un retard complètement à gauche (valeur la plus basse) et une sensibilité au milieu. Le code fournit des impressions en série qui incluent les lectures de tous les capteurs qui faciliteront le débogage de tels problèmes.

Connexion des capteurs:

Les numéros de broche que nous avons utilisés sont les suivants (et peuvent être modifiés dans le code principal):

Capteur DHT extérieur - D2.

Capteur DHT intérieur - D3.

Electret - A0 (broche analogique).

PIR - D5.

Les schémas de connexion de chacun d'eux peuvent être facilement trouvés à l'aide de la recherche d'images Google avec quelque chose du genre "Schéma Arduino de la résistance PIR" (nous ne voudrions pas les copier ici et traverser les lignes de droit d'auteur:)).

Nous avons également joint une photo de notre maquette, il est probablement difficile de vraiment suivre les connexions, mais cela peut donner une bonne impression.

Comme vous le savez probablement, les choses fonctionnent rarement, voire jamais, la première fois que nous les connectons. C'est pourquoi nous avons créé une fonction qui imprime les lectures des capteurs de manière facile à lire, afin que vous puissiez déboguer à votre façon pour qu'ils fonctionnent. Si vous ne voulez pas que le code essaie de se connecter à Blynk pendant le débogage, commentez simplement "Blynk.begin(auth, ssid, pass);" à partir de la partie configuration du code, exécutez-le et ouvrez le moniteur série pour voir les impressions. Nous avons également joint une photo des tirages.

Étape 3: Dans beaucoup plus de détails - Séquence IFTTT

Dans beaucoup plus de détails - Séquence IFTTT
Dans beaucoup plus de détails - Séquence IFTTT

Nous voulons donc être notifiés dans deux scénarios:

1. La température extérieure est suffisamment proche de celle que nous avons à l'intérieur avec le courant alternatif qui fonctionne.

2. Nous avons quitté la pièce pendant une période prolongée et la climatisation fonctionne toujours.

IFTTT nous permet de connecter de nombreux services différents qui n'interagissent généralement pas, de manière très simple. Dans notre cas, cela nous permet d'envoyer des notifications très facilement via de nombreux services. Nous avons choisi Facebook Messanger, mais après l'avoir fait fonctionner avec Facebook Messanger, vous pourrez facilement le changer pour tout autre service de votre choix.

Le processus:

Sur le site Web IFTTT, cliquez sur votre nom d'utilisateur (coin supérieur droit), puis sur "Nouvelle applet", choisissez "Webhooks" comme déclencheur (le "ceci"), et choisissez "Recevoir une demande Web". Définissez un nom d'événement (par exemple, empty_room).

Pour le service déclenché, l'action (le « ça »), choisissez Facebook Messenger > Envoyer un message et saisissez le message que vous souhaitez recevoir lorsque cet événement se produit (par exemple, « Salut, il semble que vous ayez oublié l'AC sur:).

Pendant que nous sommes ici, vous devriez également trouver votre clé secrète que vous devrez insérer à l'endroit approprié dans le code.

Pour trouver votre clé secrète, allez sur https://ifttt.com/services/maker_webhooks/settings Vous y trouverez une URL avec votre clé au format suivant:

Étape 4: Dans beaucoup plus de détails - Blynk

Image
Image
Dans beaucoup plus de détails - Blynk
Dans beaucoup plus de détails - Blynk
Dans beaucoup plus de détails - Blynk
Dans beaucoup plus de détails - Blynk

Nous voulons également une interface qui aura les fonctionnalités suivantes:

1. Possibilité de définir combien de temps la pièce doit-elle être vide avec la climatisation en fonctionnement avant d'être averti

2. Possibilité de choisir à quel point la température extérieure doit être proche de l'intérieur.

3. Un affichage pour les lectures des capteurs de température

4. Une led nous indiquant l'état du courant alternatif (on/off).

5. Et surtout, un affichage pour montrer combien de $$$ et d'énergie nous avons économisé.

Comment créer l'interface Blynk:

Si vous n'avez pas encore l'application Blynk, téléchargez-la sur votre téléphone. Lorsque vous ouvrez l'application et créez un nouveau projet, assurez-vous de choisir l'appareil approprié (par exemple, ESP8266).

Vous recevrez un email avec un jeton d'authentification, que vous insérerez dans le code à l'endroit approprié (vous pourrez également vous le renvoyer depuis les paramètres plus tard si vous le perdez).

La place de nouveaux widgets sur votre écran, cliquez sur le signe + en haut. Choisissez les widgets, puis cliquez sur un widget pour entrer ses paramètres. Nous avons ajouté des photos des paramètres de tous les widgets que nous avons utilisés, pour votre référence.

Une fois que vous avez terminé avec l'application et lorsque vous souhaitez éventuellement l'utiliser, cliquez simplement sur l'icône "play" dans le coin supérieur droit pour exécuter l'application Blynk. Vous pourrez également voir quand votre ESP8266 se connecte.

Remarque - le bouton "mettre à jour" est utilisé pour récupérer la température et l'état de la climatisation pour que nous puissions les voir dans l'application. Il n'est pas nécessaire lors de la modification des paramètres (tels que la différence de température), car ils sont automatiquement poussés.

Étape 5: Le code

Nous avons fait beaucoup d'efforts pour documenter chaque partie du code d'une manière qui rende sa compréhension aussi facile que possible.

Les parties du code que vous devez modifier avant de l'utiliser (comme la clé d'authentification pour Blynk, votre SSID et mot de passe wifi, etc…) sont suivies du commentaire //*change* afin que vous puissiez facilement les rechercher.

Vous aurez besoin des bibliothèques utilisées dans le code, vous pouvez les installer via l'IDE Arduino en cliquant sur Sketch> Inclure les bibliothèques> Gérer les bibliothèques. Là, vous pouvez rechercher le nom de la bibliothèque et l'installer. Assurez-vous également de placer le fichier generic8266_ifttt.h au même emplacement que ACsaver.ino.

Une partie du code que nous allons expliquer ici car nous ne voulions pas encombrer le code, c'est comment nous décidons quand changer l'état de l'AC de marche à arrêt, et l'état de la pièce de vide à non vide.

Nous lisons les capteurs toutes les 3 secondes, mais comme les capteurs ne sont pas précis à 100%, nous ne voulons pas qu'une seule lecture change l'état que nous pensons être dans la pièce maintenant. Pour résoudre ce problème, ce que fait le code, c'est que nous avons un compteur que nous ++ lorsque nous obtenons une lecture en faveur de "AC is on", et -- sinon. Ensuite, lorsque nous arrivons à la valeur définie dans SWITCHAFTER (par défaut à 4), nous changeons l'état en "AC is on", lorsque nous arrivons à -SWITCHAFTER (négatif la même valeur), nous changeons l'état en "AC is off ".

L'impact sur le temps qu'il faut pour changer est négligeable, et nous trouvons qu'il est très fiable pour détecter uniquement les changements corrects.

Étape 6: Tout assembler

Ok, donc tous les capteurs sont en place et fonctionnent correctement. L'interface Blynk est configurée (avec les bonnes broches virtuelles !). Et les événements IFTTT attendent notre déclencheur.

Vous avez inséré la clé secrète IFTTT dans le code, la clé d'authentification de Blynk, le SSID de votre WiFi et le mot de passe, et vous avez même vérifié que les capteurs DHT sont calibrés et sinon, modifié l'offset en conséquence (par exemple, notre en dehors de la DHT lire des températures supérieures de 1 degré Celsius à ce qu'il devrait avoir, nous avons donc utilisé offset = -1).

Assurez-vous que votre WiFi est activé, démarrez votre application Blynk et chargez le code sur votre ESP8266.

C'est ça. Si tout a été fait correctement, vous pouvez jouer maintenant et le voir en action.

Et si vous voulez juste le voir en action sans vous soucier de tout assembler… Eh bien… Faites défiler vers le haut et regardez la vidéo. (À regarder avec sous-titres ! Pas de voix off)

Étape 7: Pensées

Nous avons eu deux défis principaux ici.

Tout d'abord, comment savons-nous que la climatisation est allumée ? Nous avons essayé d'utiliser un récepteur IR qui "écoutera" la communication entre l'AC et la télécommande. Cela semblait trop compliqué, car les données étaient très désordonnées et n'étaient pas assez cohérentes pour comprendre "d'accord, il s'agit d'un signal ON". Nous avons donc cherché d'autres voies. Une idée était d'utiliser une petite hélice qui générerait un petit courant lorsque le vent de l'AC se déplace, une autre idée que nous avons essayée était d'avoir un accéléromètre pour mesurer l'angle des ailes en rotation sur les évents et détecter leur mouvement à partir de la position OFF.

Finalement, nous avons réalisé que le moyen le plus simple de le faire était d'utiliser le microphone à électret, qui détecte de manière très fiable le vent sortant du courant alternatif.

Faire fonctionner les capteurs DHT était un jeu d'enfant;), mais ce n'est que plus tard que nous avons réalisé que l'un d'entre eux était un peu éloigné de la température réelle. Le capteur PIR a également nécessité quelques ajustements, comme décrit précédemment.

Le deuxième défi consistait à rendre l'ensemble de la solution simple et fiable. Dans un sens, il devrait être ennuyeux à utiliser, il devrait simplement être là et donner un coup de coude quand vous en avez besoin. Sinon, nous arrêterions probablement nous-mêmes de l'utiliser.

Nous avons donc réfléchi à ce qui devrait être dans l'interface Blynk et avons essayé de rendre le code aussi fiable que possible, en prenant soin de chaque cas limite que nous pourrions proposer.

Un autre défi, que nous n'avons pas réussi à résoudre au moment d'écrire cette instructable, était d'ajouter un blaster IR qui nous permettra d'éteindre le courant alternatif à partir de l'interface Blynk. Quel est l'intérêt de savoir que vous avez oublié la climatisation sans possibilité de l'éteindre ? (enfin… vous pourriez demander à quelqu'un s'il est à la maison).

Malheureusement, nous avons eu quelques difficultés à rejouer les signaux que nous avons enregistrés à partir de la télécommande, vers l'AC avec l'ESP8266. Nous avons réussi à contrôler l'AC par un Arduino Uno, en suivant cette instructable:

www.instructables.com/id/How-to-control-th…

Nous allons réessayer bientôt et mettre à jour l'instructable avec nos conclusions et, espérons-le, des instructions sur la façon d'ajouter cette capacité.

Une autre limitation que nous voyons est le fait que nous devons connecter un capteur à l'extérieur de la fenêtre, ce qui peut ne pas être possible dans certaines situations, et cela signifie également qu'un long câble doit sortir. Une solution peut être de récupérer les données météorologiques de votre emplacement sur Internet. De plus, le capteur à électret qui fonctionne à partir du courant alternatif peut être remplacé par le récepteur IR que nous avons décrit ci-dessus, pour les modèles de courant alternatif avec des codes IR plus connus ou plus faciles à décoder.

Le projet peut être étendu de plusieurs manières. Comme indiqué ci-dessus, nous essaierons de trouver un moyen d'inclure le contrôle IR sur l'AC, ce qui ouvre alors un tout nouveau monde d'opportunités pour allumer et éteindre l'AC de n'importe où dans le monde, ou définir des heures d'activation et de désactivation via le Blynk app, comme autre exemple. Après avoir compris les difficultés techniques de l'IR, l'ajout du code est assez simple et direct et ne devrait pas prendre longtemps.

Si nous voulons vraiment rêver grand… Le projet peut être transformé en un module complet qui fait de n'importe quel AC un AC intelligent. Et il n'en faut pas plus que nous. Juste plus de code, plus d'utilisation de l'IR, et si nous voulons qu'il soit produit en masse, assurez-vous peut-être de récupérer les données météorologiques par emplacement, alors nous pouvons mettre le tout dans une toute petite boîte.

Vraiment, tout ce dont nous avons besoin, c'est d'un capteur de température pour la température intérieure, d'un capteur PIR pour détecter les mouvements et d'une LED IR comme blaster, et d'un récepteur IR pour "écouter" la communication entre le CA et la télécommande que nous utilisons.

Blynk fournit toutes les capacités dont nous avons besoin pour contrôler la boîte magique, de manière très simple et fiable.

Réaliser un projet aussi complet prendra un certain temps, surtout du point de vue du fait de le rendre suffisamment polyvalent pour se configurer lui-même et détecter et comprendre automatiquement la plupart des AC.

Mais le faire pour vous-même, eh bien, si vous le faites pendant votre temps libre, nous ne devrions pas prendre plus d'une semaine ou deux. Cela dépend du temps libre dont vous disposez… Le principal défi ici serait de sauvegarder tous les différents signaux que la télécommande AC peut envoyer et de les comprendre. (Bien que le simple fait de les rejouer devrait être encore plus facile).

Conseillé: