Table des matières:
- Fournitures
- Étape 1: Configuration de votre Raspberry Pi
- Étape 2: Configuration de votre Enviro PHAT
- Étape 3: Configuration de votre compte/connexion IFTTT
- Étape 4: Modification du script
- Étape 5: Utilisation du script
- Étape 6: Terminé
Vidéo: Gardez votre bébé au frais cet été - Contrôlez les fans stupides avec des choses intelligentes ! : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Il y a deux semaines, au moment d'écrire ces lignes, je suis devenu papa d'un incroyable petit garçon !
Avec le changement des saisons, les jours qui rallongent et les températures qui se réchauffent, j'ai pensé qu'il serait bon d'avoir une sorte de moniteur dans la pépinière pour vérifier à quel point il faisait chaud là-haut !
Je n'ai pas beaucoup bricolé avec python au fil des ans mais je voulais m'y remettre depuis ma première année à l'université il y a près de 5 ans maintenant ! Pour cette raison, j'ai pensé qu'il serait préférable de documenter ce que j'ai fait, de m'aider plus tard, d'aider aussi toute autre personne voulant faire la même chose !
À l'aide d'un Raspberry pi, d'Enviro pHAT et d'une prise kasa intelligente TP-link, vous pouvez contrôler les prises à l'aide du framework IFTTT ! c'est vraiment simple à faire et vous pouvez même modifier cette procédure pas à pas pour contrôler n'importe quoi via différents capteurs et différents appareils ! J'espère que vous trouverez cela utile. Si vous aimez cette instructable, n'oubliez pas de voter pour ma soumission au concours de capteurs !:D (désolé pour la demande), c'est la première fois que je fais cela et j'aimerais avoir une chance de gagner quelque chose pour tout le temps que j'y consacre
** EDIT ** Au cours des prochains jours, je vais examiner la possibilité de transmettre ces données à un tableau Grafana. Si vous pensez que ce serait bien, faites-le savoir !:RÉ
Allons droit au but…
Fournitures
- N'importe quel Raspberry pi fera l'affaire, mais j'ai choisi le Zero W car c'était ce que je devais remettre dans mon tirage, il a également le plus petit facteur de forme avec le WiFi activé par défaut ! - Raspberry PI Zero avec
- Carte SD, tout le monde a des préférences différentes sur celles-ci, mais j'en ai utilisé une ! - Carte Micro SD
- Si vous êtes bloqué, voici la documentation officielle prise en charge pour les cartes SD - cartes SD prises en charge officiellement
- Cavaliers (j'expliquerai plus tard) - Cavaliers
- Enviro pHAT pour tous les glorieux capteurs ! - Envrio-pHAT
- Une prise intelligente, j'ai opté pour TP-Link car vous n'avez pas besoin de concentrateurs sophistiqués pour le faire fonctionner! - Prise intelligente !
- Un ventilateur stupide à contrôler, vous pouvez utiliser n'importe quel ventilateur, je viens de trouver un ventilateur sur amazon, mais n'importe quel ventilateur mural fonctionnera bien - Ventilateur stupide
- Un fer à souder, mais si vous ne souhaitez pas utiliser de fer à souder, vous pouvez obtenir des en-têtes encliquetables pour votre PI et pHAT - GPIO-hammer-header
Pour qu'une connexion entre TP-links kasa et IFTTT fonctionne, vous devrez avoir un compte TP-link kasa et IFTTT configuré avant de commencer cette instructable. Lorsque vous recevez votre prise intelligente TP-link, les instructions fournies avec la prise intelligente vous guideront tout au long du processus de configuration, y compris comment nommer votre prise et ses fonctions de base
Une fois que vous avez toute votre liste de courses, il est temps de tout assembler !
Étape 1: Configuration de votre Raspberry Pi
Imagerie de votre carte micro-SDObtenez la dernière et la meilleure image Raspbian, la version allégée fera l'affaire, sinon mieux pour le zéro w ! -
Ecrivez cette image sur la carte SD, vous aurez besoin d'un lecteur pour cela et d'un imageur, j'utilise etcher -
Configurer le Wifi (facultatif) Si votre PI dispose d'un WIFI intégré, pourquoi ne pas le configurer maintenant pour éviter beaucoup de problèmes avec les consoles plus tard !
Une fois que votre pi a été imagé, le lecteur a été éjecté. Déconnectez et connectez la carte SD afin qu'elle soit à nouveau détectée par votre machine. Une partition de démarrage devrait apparaître.
Créez un fichier vierge appelé wpa_supplicant.conf dans la partition de démarrage de votre pi, placez-y le ci-dessous dans ce nouveau fichier:
réseau={
ssid="VOTRE_SSID" psk="VOTRE_WIFI_PASSWORD" key_mgmt=WPA-PSK }
Activer SSH sur votre PI de choix (facultatif)
Par défaut, une image Raspbian propre aura son ssh désactivé. Vous devrez démarrer le système, connecter un clavier et un écran au Pi, puis activer ssh. Cette étape activera ssh au premier démarrage. Dans la partition de démarrage, créez un nouveau fichier appelé ssh. Un fichier vide avec exactement ce nom.
Après avoir terminé ces deux étapes facultatives, votre PI se connectera automatiquement à votre WIFI et activera SSH par défaut.
Une fois que vous avez imagé et configuré la carte micro-SD, vous pouvez ensuite l'insérer dans votre PI ou votre choix et la mettre sous tension !
Mise à jour de votre PIO Une fois que vous avez démarré votre PI, vous pouvez trouver votre adresse IP de votre PI dans les paramètres de vos routeurs sans fil. La plupart des routeurs sont différents, il serait donc difficile d'écrire un guide pour cela malheureusement !
Une fois que vous avez votre IP de votre PI, connectez-vous via SSH et connectez-vous avec les éléments suivants:
Nom d'utilisateur: pi
Mot de passe: framboise
Une fois que vous avez une session SSH active avec votre PI, vous souhaiterez la mettre à jour, exécutez simplement ci-dessous avec le Y ou le N correspondant tout au long de la mise à jour:
sudo apt-get mise à jour
sudo apt-get mise à niveau
il est toujours bon de redémarrer un PI après l'installation de nouvelles mises à jour pour s'assurer qu'il est exécuté à nouveau avec les dernières mises à jour, cela peut être réalisé avec
sudo reboot -n
Maintenant que le PI est prêt, il est temps de passer à l'étape suivante !
Étape 2: Configuration de votre Enviro PHAT
Câblage de votre Enviro pHAT
Une fois que votre pi est à jour, vous pouvez connecter votre Enviro pHAT au PI de votre choix !
***Pour vous assurer de ne pas endommager votre PI ou votre pHAT, assurez-vous de l'éteindre d'abord***
Ici, j'ai utilisé les cavaliers car vous pouvez obtenir un lavage thermique du processeur qui chauffe sous l'Enviro pHAT. Cette chaleur supplémentaire peut modifier les lectures de température que vous obtiendrez plus tard. Pour cette raison, j'ai utilisé 5 cavaliers sur les broches ci-dessous:
- Broche 3 - GPIO2 (SDA I2C)
- Broche 5 - GPIO3 (SCL I2C)
- Broche 7 - GPIO4
- Broche 6 – Terre
- Broche 4 - 5V
Veuillez vérifier le schéma de câblage en haut de cette étape pour une référence visuelle ou le lien ci-dessous:
pinout.xyz/pinout/enviro_phat
(désolé pour le travail de peinture de mauvaise qualité)
Lors du câblage de votre pHAT, assurez-vous de l'avoir bien réglé, sinon vous pourriez l'endommager !!! Pour ce faire, j'ai configuré le mien afin que les en-têtes ANALOG IN soient vers la fente pour carte SD, cela a ensuite été inversé dans mes photos pour le rendre plus confortable dans mon "support".
Installation des dépendances
Alimentez votre sauvegarde PI et rallumez SSH
Une fois de retour dans votre PI, exécutez ce qui suit pour installer les packages et les logiciels requis pour votre Enviro pHAT:
boucle https://get.pimoroni.com/envirophat | frapper
Assurez-vous d'appuyer sur Y ou N si nécessaire.
Une fois l'installation terminée, assurez-vous de redémarrer votre PI…
sudo reboot -n
Tester le pHAT
Pour vous assurer que votre pHAT est correctement câblé, vous pouvez accéder à un module python et exécuter quelques commandes en revenant à votre PI et en tapant python, une fois dans un module python, tapez ce qui suit:
d'envirophat importation météo
imprimer(météo.température())
Cela devrait vous montrer une lecture comme ci-dessous:
>> d'envirophat import météo
>> imprimer(météo.température()) 24.0806166987
Dépannage
Si vous obtenez quelque chose comme une erreur ci-dessous:
Traceback (appel le plus récent en dernier): File "", ligne 1, dans File "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", ligne 134, in temperature self.update() File " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py", ligne 169, en mise à jour si self._read_byte(REGISTER_CHIPID) == 0x58: # check sensor id 0x58=BMP280 File "/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py", ligne 116, dans _read_byte return self.i2c_bus.read_byte_data(self.addr, register) IOError: [Errno 121] Erreur d'E/S distante
Vous pouvez alors exécuter:
sudo i2cdetect -y 1
Cela exécutera une vérification de diagnostic sur vos connexions/câblage et vous chercheriez quelque chose comme ci-dessous:
pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1j -- -- 20: -- -- -- -- -- -- -- - - -- 29 -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: -- -- -- -- -- -- -- - - -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - 70: -- -- -- -- -- -- -- 77
Sinon, vous devrez revenir en arrière et vérifier à nouveau votre câblage, veuillez vérifier le schéma de câblage et réessayer !
Installation du script pi-baby-cooler.py
Si tout va bien et que vous avez réussi à obtenir une lecture de la température, nous pouvons aller de l'avant et installer le package baby-cooler.py !
En raison de la façon dont instructables gère les liens, j'ai joint le script.py dans l'en-tête de l'étape ci-dessus… Pour copier cela sur votre PI, je vous recommande d'utiliser quelque chose comme WinSCP:
winscp.net/eng/download.php
WinSCP est un client SFTP et un client FTP populaires pour Microsoft Windows ! Copiez le fichier entre un ordinateur local et des serveurs distants à l'aide des protocoles de transfert de fichiers FTP, FTPS, SCP, SFTP, WebDAV ou S3.
WinSCP est simple à utiliser, connectez-vous simplement à votre PI en utilisant l'adresse IP de votre PI, puis faites glisser et déposez le fichier.py à l'endroit où vous souhaitez l'exécuter pour moi, c'est à partir de /home/pi.
Maintenant que le script.py est sur votre PI, il est temps de passer à la configuration de votre compte/connexions IFTTT
Étape 3: Configuration de votre compte/connexion IFTTT
Ensuite, nous verrons comment obtenir un jeton IFTTT, il sera utilisé lors de l'appel de la fonction chaud/froid dans le script pour se connecter à la prise kasa et allumer/éteindre le ventilateur.
Création des Webhooks
Rendez-vous sur https://ifttt.com/ et créez un compte si vous n'en avez pas déjà un.
Une fois connecté, dans la barre de recherche, recherchez: TP-link kasa
Une fois celui-ci chargé, cliquez sur services puis sur TP-link kasa. Vous devrez ensuite connecter votre compte kasa à votre compte IFTTT, vous connecter à votre compte kasa via IFTTT pour établir une connexion.
Après avoir lié votre compte, cliquez sur "Mes applets" puis sur une nouvelle applet, puis cliquez sur "+ceci" et recherchez les webhooks.
Cliquez sur "Recevoir une demande Web", dans le type de nom d'événement à chaud (cela peut être tout ce que vous voulez mais vous devez le mettre à jour plus tard dans le script pi-baby-coller.py ou cela ne fonctionnera pas, j'ai utilisé chaud pour tourner le ventilateur allumé et froid pour éteindre le ventilateur. Cliquez ensuite sur créer un déclencheur.
Ensuite, nous devons lier votre nouveau déclencheur à votre compte Kasa, cliquez sur "+that" et recherchez kasa, cliquez sur le lien TP-kasa puis cliquez sur "activer", après cela, sélectionnez l'appareil que vous souhaitez allumer, puis cliquez sur créer action. Passez en revue l'action et cliquez sur Terminer si elle est correcte.
**********
N'oubliez pas que si vous avez choisi un autre nom d'événement que « chaud » et « froid », vous devrez le noter pour plus tard et mettre à jour le script ! Sinon, le script.py ne fonctionnera pas
**********
Après avoir créé notre premier crochet Web, répétez le processus pour "froid", mais cette fois, vous sélectionnez désactiver au lieu d'activer lorsque vous sélectionnez + cette action.
Une fois que nous avons deux webhooks d'événement dans la section de votre compte mes applets, cliquez sur services et recherchez les webhooks, puis cliquez dessus. Ici, vous verrez un bouton de documentation (en haut à droite), cliquez dessus. C'est là que vous trouverez votre clé de jeton IFTTT. tandis que ici, prenez note de votre clé (vous en aurez besoin plus tard), j'ai modifié la mienne dans l'image, sinon tout le monde pourrait allumer ou éteindre mes prises intelligentes.
Tester les webhooks
Maintenant que nous avons créé deux webhooks qui sont connectés à notre compte kasa, nous pouvons tester s'ils fonctionnent ou non !
Dans votre PI, vous pouvez saisir les éléments suivants:
curl -X POST
Là où il est dit "chaud", vous devez ajouter le nom de votre événement, si vous l'avez laissé comme "chaud", laissez-le tranquille. Là où il est écrit /vous… vous devez le remplacer par votre clé de jeton IFTTT. Appuyez sur Entrée et vous devriez alors entendre le clic de votre relais de prise intelligente allumer la prise. Si vous ne l'entendez pas, vous pouvez consulter l'application Kasa pour vérifier l'état de vos prises.
Nous avons maintenant les dépendances de notre Enviro pHAT installées et la configuration IFTTT, il est temps de terminer en modifiant le code.
Étape 4: Modification du script
Nom de l'événement et IFTTT TOKENSRetour sur votre pi, passez à l'emplacement de votre script pi-baby-cooler.py, pour moi il se trouve dans /home/pi (mon dossier personnel) et modifiez le fichier à l'aide de nano:
nano pi-baby-cooler.py
Dans le Finder où il est écrit def turn_off()
def turn_off():
# Définissez votre mot déclencheur - par ex. "froid" - et le jeton IFTTT Webhook ci-dessous. TRIGGER_WORD = "froid" TOKEN = "VOTRE IFTTT TOKEN VA ICI" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Fan off!"):
C'est la fonction pour éteindre le ventilateur. Il le fait en envoyant un webhook à IFTTT qui déclenche la désactivation du tplink HS100. Si vous avez conservé le même fonctionnement que le déclencheur dans votre compte IFTTT, vous pouvez le laisser et remplacer le jeton que vous avez obtenu précédemment dans la documentation des webhooks. Si vous avez choisi un nom d'événement différent, remplacez ce mot ici.
Après avoir collé votre jeton IFTTT, passez à la section suivante où il est écrit def turn_on()
def turn_on ():# Définissez votre mot de déclenchement - par ex. "hot" - et le jeton IFTTT Webhook ci-dessous. TRIGGER_WORD = "hot" TOKEN = "VOTRE IFTTT TOKEN VA ICI" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Fan on!")
Cette fonction est l'inverse de l'arrêt, elle allume la prise intelligente TP-link !
Si vous avez conservé le même fonctionnement que le déclencheur dans votre compte IFTTT, vous pouvez le laisser et remplacer le jeton que vous avez obtenu précédemment dans la documentation des webhooks. Si vous avez choisi un nom d'événement différent, remplacez ce mot ici.
Tout le reste est déjà codé, vous ne devriez donc pas avoir à modifier le code autre que TRIGGER_WORD, TOKEN et quelques ajustements de températures qui suivent !
Changer les températures
Ensuite, trouvez où il est écrit # Variables locales.
essayez: # Variables locales. state = 0 # Définit l'état du commutateur low = 20 # Valeur basse du niveau de température (celcius). high = 24 # Valeur élevée pour le niveau de température (celcius). period = 120 # Délai, en secondes, entre les appels.
La variable d'état est la façon dont le pi sait si la prise est allumée ou non, elle est mise à jour plus tard s'il fait trop chaud (24+*c puis l'état est changé plus tard en 1), cela se déclencherait également sur le webhook et tournerait la prise intelligente allumée !
La variable basse est à quel point je veux que la pièce soit fraîche avant que la prise ne soit éteinte. Si vous souhaitez que la pièce soit plus chaude, modifiez simplement cette valeur à une valeur plus élevée. Si vous souhaitez qu'il soit plus frais, réduisez la valeur.
La variable élevée est la température maximale que je veux que la pièce atteigne avant que je veuille que le ventilateur se mette en marche et commence à refroidir la pièce. Si vous souhaitez que le ventilateur s'allume avant cela, réduisez simplement la valeur, ou si vous souhaitez qu'il soit plus chaud, augmentez la valeur.
La variable de période est la durée en secondes entre les contrôles de température, si vous souhaitez que le script pi vérifie moins fréquemment, augmentez le nombre si vous souhaitez raccourcir le temps, réduisez le nombre.
Une fois que vous avez effectué vos modifications, enregistrez et quittez nano
CTRL + x
Étape 5: Utilisation du script
Exécuter le script localement
Il existe plusieurs façons d'exécuter ce script, vous pouvez vous connecter via SSH et taper ce qui suit:
sudo python /pi-baby-cooler.py
Cela exécutera le script à la demande, cela ne fonctionnera que tant qu'il y aura une session SSH active sur le PI. L'autre façon est d'utiliser screen, screen n'est pas installé par défaut, je ne pense pas, donc un écran d'installation sudo apt devra être utilisé.
Voici un excellent tutoriel sur la façon d'utiliser correctement screen:
Screen ou GNU Screen est un multiplexeur de terminal. En d'autres termes, cela signifie que vous pouvez démarrer une session d'écran, puis ouvrir n'importe quel nombre de fenêtres (terminaux virtuels) à l'intérieur de cette session. Les processus exécutés dans Screen continueront de s'exécuter lorsque leur fenêtre n'est pas visible, même si vous êtes déconnecté.
Automatisation pour s'exécuter au démarrage
L'autre méthode consiste à éditer le fichier de démarrage dans /etc/rc.local pour ce faire, utilisez nano.
sudo nano /etc/rc.local
La modification de ce fichier entraînera l'exécution du script au démarrage. ce qui signifie qu'il fonctionnera toujours lorsque le PI sera activé, c'est également ainsi que j'exécute 90% de mes scripts sur d'autres PI.
Si vous avez utilisé rc.local, vous pouvez exécuter la commande ci-dessous pour vérifier ce qui est en cours d'exécution sur le PI. C'est pratique pour dépanner plus tard pour voir si le script fonctionne ou non:
ps-aef | python grep
Étape 6: Terminé
Eh bien… Merci si vous êtes toujours là et avez atteint ce point !
Désolé, cela fait assez longtemps, c'était mon tout premier instructable et je ne savais pas trop quoi écrire.
Comme je l'ai mentionné au début, cette instructables a de nombreuses applications différentes avec elle en utilisant la chaleur pour déclencher une prise intelligente ! vous pouvez rafraîchir n'importe quelle pièce de la maison/de l'appartement/de l'appartement/du garage/de la remise. Vous pouvez même modifier l'IFTTT pour déclencher n'importe quel appareil intelligent contrôlable via IFTTT, il ne doit pas seulement s'agir d'appareils kasa TP-link.
J'aimerais savoir si vous avez essayé cette instructables ou même si vous l'avez trouvée intéressante s'il vous plaît laissez-moi un commentaire ci-dessous !
Si vous avez des questions, n'oubliez pas de les laisser ci-dessous et je ferai de mon mieux pour y répondre !
Finaliste du concours Sensors
Conseillé:
Profitez de votre été frais avec un ventilateur M5StickC ESP32 - Vitesse réglable : 8 étapes
Profitez de votre été frais avec un ventilateur M5StickC ESP32 - Vitesse réglable : dans ce projet, nous apprendrons à contrôler la vitesse d'un VENTILATEUR à l'aide d'une carte M5StickC ESP32 et d'un module de ventilateur L9110
Faire reconnaître les choses aux aveugles en touchant les choses autour d'eux à l'aide de MakeyMakey : 3 étapes
Faire reconnaître les choses par les aveugles en touchant les choses autour d'eux à l'aide de MakeyMakey : introductionCe projet vise à faciliter la vie des aveugles en identifiant les choses autour d'eux grâce au sens du toucher. Moi et mon fils Mustafa, nous avons pensé à trouver un outil pour les aider et pendant la période où nous utilisons le matériel MakeyMakey t
Restez au frais cet été : PC Fan Mod : 4 étapes (avec photos)
Restez au frais cet été : PC Fan Mod : Qui n'a pas une douzaine de ces fans de PC qui traînent ? Dans cette version, je vais vous montrer comment utiliser ces ventilateurs pour produire une belle brise réglable pendant les chaudes journées d'été. Et il fonctionne au moins 4 heures avec une pile 9V ordinaire
Faites la fête en toute sécurité cet été avec une tasse LED réactive Arduino Blood-Alcohol : 10 étapes
Faites la fête cet été avec une tasse LED réactive Arduino Blood-Alcohol : Niveau de difficulté du projet : Intermédiaire Compétences requises : - Lire et reproduire un diagramme - Souder si vous choisissez de ne pas acheter de pièces pré-soudées posé de graves menaces pour la santé qui
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop