Table des matières:

Arrêter ou redémarrer à distance un ordinateur avec le périphérique ESP8266 : 10 étapes (avec photos)
Arrêter ou redémarrer à distance un ordinateur avec le périphérique ESP8266 : 10 étapes (avec photos)

Vidéo: Arrêter ou redémarrer à distance un ordinateur avec le périphérique ESP8266 : 10 étapes (avec photos)

Vidéo: Arrêter ou redémarrer à distance un ordinateur avec le périphérique ESP8266 : 10 étapes (avec photos)
Vidéo: Comment accéder à un ordinateur à distance et travailler dessus 2024, Juillet
Anonim
Image
Image

Pour être clair ici, nous éteignons VOTRE ordinateur, pas celui de quelqu'un d'autre.

L'histoire se déroule ainsi:

Un de mes amis sur Facebook m'a envoyé un message et m'a dit qu'il avait une douzaine d'ordinateurs exécutant un tas de mathématiques, mais tous les matins à 3 heures du matin, ils se bloquaient. Étant donné que les ordinateurs sont à 30 minutes, c'est une énorme nuisance de parcourir deux villes (nous vivons dans le Dakota du Sud) pour éteindre et éteindre les ordinateurs. Il a demandé, pourrais-je lui construire un appareil IoT qui lui permettrait de redémarrer l'ordinateur incriminé dans le confort de son lit douillet ?

Pour ne jamais rater un défi, j'ai accepté de monter quelque chose pour lui. C'est ce projet.

En utilisant deux bits enregistrés, un ESP8266 ESP01, une poignée de LED et des opto-isolateurs faits maison, l'ensemble du projet coûte environ 5 $ si vous achetez les pièces en Chine sur eBay. Peut-être 20 $ d'Amazon.

Il s'agit d'une construction assez complexe avec beaucoup de soudures fines. Sans compter mes ratés et mes soudures, cela m'a pris près de 20 heures à faire, mais cela s'est avéré incroyable et a parfaitement fonctionné.

Commençons.

Étape 1: Carte prototype

Carte prototype
Carte prototype
Carte prototype
Carte prototype

Commencez toujours tous les projets avec un prototype de maquette. C'est le meilleur moyen de déterminer si vous disposez de tous les composants et si vous fonctionnez comme prévu. Ce projet est un peu compliqué, je recommande donc fortement de le construire sur une maquette avant d'aller de l'avant.

Les pièces dont vous aurez besoin sont:

  • Un ESP8266 ESP01 (bien que n'importe quel appareil ESP8266 fonctionnerait)
  • Deux registres à décalage 8 bits, j'ai utilisé le 74HC595N
  • 16 LED, j'ai utilisé des LED blanches en chapeau de paille qui fonctionnent à 3,3V. Si vous en utilisez d'autres, vous aurez peut-être besoin de résistances.
  • Trois résistances pulldown de 3k3 ohms
  • Cavaliers et planche à pain

Vous devrez également construire au moins un opto-isolateur. J'ai utilisé une gaine thermorétractable noire, une LED blanche brillante, une résistance de 220 ohms et une photorésistance. Soudez la résistance de 220 ohms à la cathode de la LED, puis scellez la LED et la photorésistance à l'intérieur de la gaine thermorétractable face à face. Mais nous y reviendrons plus tard.

Suivez le schéma de câblage fourni à l'étape suivante. Le câblage est assez simple.

Étant donné que l'ESP8266 fonctionne à 3,3 V, assurez-vous de l'alimenter correctement

Étape 2: schéma à l'aide de Will-CAD

Schéma utilisant Will-CAD
Schéma utilisant Will-CAD

Le schéma est assez simple. Nous suivons le câblage standard d'un registre à décalage 8 bits. Comme j'utilise deux registres à décalage 8 bits, ils doivent être enchaînés sur leurs broches « horloge » et « verrou ».

Parce que l'ESP01 n'a que deux broches GPIO, nous devons réutiliser les TX et RX comme sorties, ce qui fonctionne bien pour nos besoins. Vous pouvez utiliser un ESP-12 ou une autre version avec plus de deux broches GPIO si vous souhaitez plus de contrôle. Mais cela ajoutera 2 $ supplémentaires au coût du projet - ce qui est juste un discours fou.

Nous devons garder nos registres à décalage 8 bits et les broches ESP01 tirés haut au démarrage, afin qu'ils ne fassent pas de choses étranges ou ne passent pas en mode programme. J'ai utilisé trois résistances 3k3, des valeurs plus grandes ou plus petites fonctionneraient également. Cette valeur a été dérivée des guides parlant de l'utilisation de broches alternatives sur ESP01.

ESP01 (ESP8266)

  • Pullup de la broche d'horloge TX 3k3
  • Goupille de verrouillage RX 3k3 pullup
  • 00 données série 3k3 pullup
  • 02 flottant

Registre à décalage 8 bits (74HC595H)

  • VCC 3.3V
  • OE 3.3V (c'est la broche d'activation)
  • TERRE TERRE
  • CLR GND (cela empêche la goupille claire de s'effacer)
  • Et les LED, celles-ci vont à la masse.

Étape 3: Code ESP8266

Code ESP8266
Code ESP8266

Le code ESP8266 est assez simple. Malheureusement, l'éditeur dans Instructables est assez inutile, vous voudrez donc obtenir le code directement à partir de Github.

Projet "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

La classe "SensorBase" est disponible ici. Il est obligatoire si vous souhaitez "utiliser" mon code:

github.com/bluemonkeydev/arduino-projects/…

Il y a quelques choses à noter. Le code est assez bien documenté.

  1. Je suis un développeur très paresseux, j'ai donc mis tout le code ESP8266 réutilisable dans une classe appelée "SensorBase". Vous pouvez également le trouver sur Github, lien ci-dessus.
  2. Vous devez saisir le serveur, le nom d'utilisateur, le mot de passe et le port de votre courtier MQTT. Ceux-ci peuvent être trouvés un peu plus bas lorsque nous créons le service CloudMQTT.
  3. Vous n'avez PAS besoin de suivre mon format de syntaxe de sujet. Cependant, je recommanderais de le suivre.
  4. Il n'y a rien d'intelligent dans ce code. C'est très pragmatique.

Étape 4: mise en page du panneau perforé

Disposition du panneau de perforation
Disposition du panneau de perforation

Ce projet sera installé dans un mini-centre de données, j'ai donc décidé d'utiliser simplement une carte de perf pour la conception finale. Perfboard fonctionne très bien pour des projets comme celui-ci et est facile à mettre en page à l'aide d'un morceau de papier millimétré personnalisé. Ici vous verrez ma mise en page. Bien sûr, vous pouvez choisir de le faire différemment.

Mon projet avait besoin de deux registres à décalage 8 bits, j'ai donc commencé par leur positionnement au milieu. Je savais que mes connecteurs aux optoisolateurs seraient pour l'instant de simples embases femelles, même si ce n'est pas une solution idéale.

J'adore les LED, et cela devait avoir une LED pour chaque circuit opto-isolateur. Je savais que la phase de test serait infiniment plus facile si je pouvais obtenir un retour instantané directement sur la carte, mais je savais aussi que ces LED causeraient d'énormes difficultés à la soudure. Et ils l'étaient. Je n'avais rien de plus petit que des LED de 5 mm, j'ai donc dû les décaler. Ma conception finale a fait un motif en zigzag des cathodes parce que je ne voulais pas faire passer les anodes sur les fils de terre. Cela s'est avéré être une bonne conception. Les fils LED se rejoignent au-dessus des registres à décalage 8 bits et passent sur le dessus de la carte avec des fils blindés pour plus de simplicité.

Pour l'alimentation, je voulais le faire fonctionner à partir d'un ancien câble USB pour être alimenté directement depuis l'un des ordinateurs. Cela fonctionnera bien car les ports USB sont généralement alimentés même si l'ordinateur est éteint. J'ai utilisé un régulateur de tension linéaire LM317 pour réduire la puissance à 3,3V. Un régulateur 3,3V aurait aussi bien fonctionné, mais je n'en avais pas.

Pour éviter trop de croisements de fils, j'ai fait passer quelques fils sur le dessus de la carte de perforation, ce que j'essaie d'éviter. Gardez à l'esprit que les trous traversants sont conducteurs, utilisez donc des fils blindés pour éviter les courts-circuits. Ces connexions ayant lieu sur le dessus de la carte sont indiquées en pointillés sur mon schéma.

Étape 5: Carte soudée

Conseil soudé
Conseil soudé

Ma dernière carte soudée s'est très bien passée. Comme prévu, les LED sur le dessus ont demandé beaucoup de travail pour être soudées correctement sans aucun court-circuit. Après avoir soudé les LED et les en-têtes, utilisez votre multimètre pour déterminer si vous avez des courts-circuits. Le mieux est de le découvrir maintenant.

A part les LED, tout le reste s'est plutôt bien passé. J'ai dû refaire quelques connexions, mais avec quelques patients, un peu de débogage et un peu de ressoudage, tout ira bien.

Vous verrez sur cette photo que j'ai également branché les opto-isolateurs, que j'ai utilisés avec un câble CAT-5 à 8 fils. La raison en est qu'il est très bon marché, facile à épisser et qu'il est bien marqué - plus sur ces optoisolateurs à l'étape suivante.

Étape 6: fabrication d'optoisolateurs

Fabrication d'optoisolateurs
Fabrication d'optoisolateurs

Bien entendu, vous n'avez pas besoin de fabriquer vos propres opto-isolateurs. De nombreuses versions commerciales sont disponibles pour quelques centimes chacune et fonctionneraient mieux car elles entraîneraient directement les lignes électriques de l'ordinateur sans aucune résistance. Mais, je n'avais pas d'optoisolateur, j'ai donc dû fabriquer le mien à l'aide d'une LED, d'une résistance et d'une photorésistance.

Après avoir confirmé que dans un manchon de gaine thermorétractable noire, la résistance "off" avec moins que ce que mon compteur pouvait lire et la résistance "on" était de quelques milliers d'ohms, j'ai fait un test final sur une vieille carte mère. Cela a parfaitement fonctionné pour moi. Je soupçonne que certains ordinateurs peuvent être plus ou moins sensibles, mais sur les cartes mères que j'ai testées, cette configuration a bien fonctionné.

Vous voudrez utiliser une LED blanche très lumineuse pour obtenir le maximum de lumière dans la photorésistance. Je n'ai pas essayé beaucoup d'options, mais la LED blanche brillante et une résistance de 220 ohms fonctionnent parfaitement.

Étape 7: Configuration de CloudMQTT

Configuration CloudMQTT
Configuration CloudMQTT
Configuration CloudMQTT
Configuration CloudMQTT
Configuration CloudMQTT
Configuration CloudMQTT

Tout service MQTT, ou service IoT similaire comme Blynk, fonctionnerait, mais j'ai choisi d'utiliser CloudMQTT pour ce projet. J'ai utilisé CloudeMQTT pour de nombreux projets dans le passé, et puisque ce projet sera remis à un ami, il est logique de créer un nouveau compte qui peut également être transféré.

Créez un compte CloudMQTT, puis créez une nouvelle "instance", choisissez la taille "Cute Cat" car nous ne l'utilisons que pour le contrôle, pas de journalisation. CloudMQTT vous fournira un nom de serveur, un nom d'utilisateur, un mot de passe et un numéro de port. (Notez que le numéro de port n'est pas le port MQTT standard). Transférez toutes ces valeurs dans votre code ESP8266 aux emplacements correspondants, en vous assurant que la casse est correcte. (sérieusement, copiez/collez les valeurs)

Vous pouvez utiliser le panneau "Websocket UI" sur CloudMQTT pour voir les connexions de votre appareil, les pressions sur les boutons et, dans le cas étrange, que vous obteniez une erreur, un message d'erreur.

Vous aurez également besoin de ces paramètres lors de la configuration du client Android MQTT, alors notez les valeurs si vous en avez besoin. Espérons que votre mot de passe ne soit pas trop compliqué à saisir sur votre téléphone. Vous ne pouvez pas le définir dans CloudMQTT.

Étape 8: Client Android MQTT

Client Android MQTT
Client Android MQTT
Client Android MQTT
Client Android MQTT
Client Android MQTT
Client Android MQTT
Client Android MQTT
Client Android MQTT

N'importe quel client MQTT Android (ou iPhone) fonctionnerait, mais j'aime MQTT Dash. MQTT Dash est facile à utiliser, très réactif et possède toutes les options dont vous aurez besoin.

Une fois installé, configurez un serveur MQTT, remplissez le serveur, le port, le nom d'utilisateur et le mot de passe avec les valeurs de votre instance, PAS vos informations de connexion à CloudMQTT. Vous pouvez utiliser n'importe quel nom de client que vous voulez.

Si vous avez tout tapé correctement, il se connectera automatiquement à votre serveur MQTT et vous affichera un écran vide car vous n'avez encore configuré aucun bouton, texte ou message. Sur l'écran vide, vous voyez un "+" dans le coin supérieur droit, cliquez dessus, puis sélectionnez "Sélectionner/bouton". Nous allons ajouter un " Select/Button " par ordinateur, donc 8 ou 16 ou moins.

Si vous avez obtenu une erreur de connexion, vous avez l'une des valeurs erronées. Revenez en arrière et vérifiez

Chaque ordinateur utilisera le sujet qui correspond aux valeurs spécifiées dans votre code. Si vous suiviez mes conventions, elles seraient " cluster/rack-01/computer/01 ". Il serait préférable de modifier les valeurs " on " et " off " pour correspondre à notre code. Au lieu de " 0 " et " 1 ", utilisez respectivement les valeurs " on " et " off, ". Je recommanderais également d'utiliser QoS (1) car nous attendrons une confirmation du serveur.

Après en avoir ajouté un, vous pouvez appuyer longuement et utiliser l'option " cloner " pour créer un groupe, puis changer leur nom et leur sujet.

Assez facile.

Étape 9: Mettre votre ESP8266 en Wifi

Mettre votre ESP8266 en Wifi
Mettre votre ESP8266 en Wifi

En utilisant le module ESP8266 Wifi Manager, mettre notre appareil en Wifi est un jeu d'enfant. Si vous avez utilisé ma classe SensorBase, elle est déjà intégrée. Sinon, suivez les instructions sur la page du gestionnaire Wifi.

Wifi Manager tentera de se connecter à votre SSID au démarrage, ce qu'il ne peut pas puisque vous ne lui avez jamais dit votre SSID, il passera donc automatiquement en mode point d'accès (ou mode AP) et affichera une simple page Web demandant votre SSID & Mot de passe. À l'aide de votre téléphone ou de votre ordinateur portable, connectez le réseau sans fil nouvellement disponible avec le nom SSID "ESP_xxxxxx", où le "xxxxxx" est une séquence aléatoire (pas vraiment aléatoire). (Des instructions complètes sont disponibles sur la page Wifi Manager.)

Une fois connecté, ouvrez votre navigateur Web et pointez-le sur 192.168.4.1, saisissez votre SSID et votre mot de passe, puis cliquez sur Enregistrer.

Vous êtes maintenant sur Internet et la partie "I" de votre appareil IoT fonctionne !

Étape 10: Connexion finale et test

Connexion finale et test
Connexion finale et test

Terminé.

Pour tout brancher, localisez le câble du bouton d'alimentation de votre ordinateur à l'endroit où il rencontre la carte mère. Vous devriez voir deux rangées d'en-têtes avec un tas de fils et de connecteurs. En règle générale, ils sont assez bien étiquetés. Débranchez votre interrupteur et branchez la prise opto-isolateur. J'ai mis des prises "Dupont" sur la mienne, elles se sont donc branchées comme le câble d'alimentation. La polarité à cette extrémité n'a pas d'importance, mais assurez-vous que la polarité de l'autre extrémité est correcte - celle qui va à votre carte personnalisée.

Et cela fonctionne parfaitement. À l'aide du client MQTT Dash (ou d'un outil similaire), vous pouvez alimenter à distance vos ordinateurs.

Appuyez sur le bouton de coche correspondant sur votre application, et une fois que l'application aura reçu le message "off" du serveur MQTT, le bouton redeviendra non coché.

Cela fonctionne depuis quelques semaines sans aucun problème. Nous avons remarqué que la durée pour tirer le bouton bas sur les ordinateurs devait être prolongée. Nous avons fini avec 1 seconde complète. Cette valeur peut être exposée en tant que valeur réglable via le serveur MQTT, ou vous pouvez câblé la valeur, selon votre désir.

Bonne chance et dis-moi comment s'est passé le tien.

Conseillé: