Inhaltsverzeichnis:

Computer mit ESP8266-Gerät aus der Ferne herunterfahren oder neu starten - Gunook
Computer mit ESP8266-Gerät aus der Ferne herunterfahren oder neu starten - Gunook

Video: Computer mit ESP8266-Gerät aus der Ferne herunterfahren oder neu starten - Gunook

Video: Computer mit ESP8266-Gerät aus der Ferne herunterfahren oder neu starten - Gunook
Video: PC und Notebook mit Handy und AVM Fritzbox einschalten ⭐ über Internet starten und hochfahren 2024, Juli
Anonim
Image
Image

Um es klar zu sagen, wir fahren IHREN Computer herunter, nicht den Computer von jemand anderem.

Die Geschichte geht so:

Ein Freund von mir auf Facebook schrieb mir eine Nachricht und sagte, er habe ein Dutzend Computer, auf denen eine Menge Mathematik läuft, aber jeden Morgen um 3 Uhr morgens sperren sie ab. Da die Computer 30 Minuten entfernt sind, ist es ein großes Ärgernis, durch zwei Städte (wir leben in South Dakota) zu fahren, um die Computer aus- und wieder einzuschalten. Er fragte, ob ich ihm ein IoT-Gerät bauen könnte, mit dem er den Computer von seinem gemütlichen Bett aus neu starten kann.

Um keine Herausforderung zu verpassen, habe ich zugestimmt, etwas für ihn zusammenzustellen. Das ist dieses Projekt.

Mit zwei registrierten Bitverschiebungen, einem ESP8266 ESP01, einer Handvoll LEDs und einigen hausgemachten Optoisolatoren kostet das gesamte Projekt etwa 5 US-Dollar, wenn Sie die Teile aus China bei eBay kaufen. Vielleicht 20€ von Amazon.

Dies ist ein ziemlich komplexer Aufbau mit vielen feinen Lötarbeiten. Abgesehen von meinen Fehlern und dem erneuten Löten, habe ich den größten Teil von 20 Stunden gebraucht, aber es ist fantastisch geworden und hat perfekt funktioniert.

Lass uns anfangen.

Schritt 1: Prototypenplatine

Prototypenplatine
Prototypenplatine
Prototypenplatine
Prototypenplatine

Beginnen Sie alle Projekte immer mit einem Prototypen-Steckbrett. Dies ist der beste Weg, um festzustellen, ob Sie alle Komponenten haben und wie erwartet funktionieren. Dieses Projekt ist etwas kompliziert, daher empfehle ich dringend, es auf einem Steckbrett zu bauen, bevor Sie fortfahren.

Die Teile, die Sie benötigen, sind:

  • Ein ESP8266 ESP01 (obwohl jedes ESP8266-Gerät funktionieren würde)
  • Zwei 8-Bit-Schieberegister, ich habe den 74HC595N verwendet
  • 16 LEDs, ich habe weiße Strohhut-LEDs verwendet, die mit 3,3 V betrieben werden. Wenn Sie andere verwenden, benötigen Sie möglicherweise Widerstände.
  • Drei 3k3-Ohm-Pulldown-Widerstände
  • Überbrückungsdrähte und ein Steckbrett

Sie müssen auch mindestens einen Optoisolator bauen. Ich habe einen schwarzen Schrumpfschlauch, eine helle weiße LED, einen 220-Ohm-Widerstand und einen Fotowiderstand verwendet. Löten Sie den 220-Ohm-Widerstand an die Kathode der LED und versiegeln Sie dann die LED und den Fotowiderstand im Inneren des Schrumpfschlauchs, die sich gegenüberstehen. Aber dazu kommen wir in einem späteren Schritt.

Folgen Sie dem im nächsten Schritt bereitgestellten Schaltplan. Die Verkabelung ist ziemlich einfach.

Da der ESP8266 mit 3,3 V arbeitet, stellen Sie sicher, dass Sie ihn richtig mit Strom versorgen

Schritt 2: Schema mit Will-CAD

Schema mit Will-CAD
Schema mit Will-CAD

Der Schaltplan ist ziemlich einfach. Wir folgen der Standardverdrahtung eines 8-Bit-Schieberegisters. Da ich zwei 8-Bit-Schieberegister verwende, müssen sie an ihren 'Clock'- und 'Latch'-Pins verkettet werden.

Da der ESP01 nur zwei GPIO-Pins hat, müssen wir TX & RX als Ausgänge wiederverwenden, was für unsere Zwecke gut funktioniert. Sie können einen ESP-12 oder eine andere Version mit mehr als zwei GPIO-Pins verwenden, wenn Sie mehr Kontrolle wünschen. Aber das wird die Kosten des Projekts um weitere 2 Dollar erhöhen - was nur verrücktes Gerede ist.

Wir müssen unsere 8-Bit-Schieberegister und ESP01-Pins beim Booten hochgezogen halten, damit sie keine seltsamen Dinge tun oder in den Programmmodus wechseln. Ich habe drei 3k3-Widerstände verwendet, größere oder kleinere Werte würden auch funktionieren. Dieser Wert wurde aus den Anleitungen abgeleitet, die über die Nutzung alternativer Pins auf ESP01 sprechen.

ESP01 (ESP8266)

  • TX-Takt-Pin 3k3-Pullup
  • RX-Verriegelungsstift 3k3 Pullup
  • 00 serielle Daten 3k3 Pullup
  • 02 schwebend

8-Bit-Schieberegister (74HC595H)

  • VCC 3.3V
  • OE 3.3V (dies ist der Freigabestift)
  • GND GND
  • CLR GND (dies verhindert, dass der Clear-Pin gelöscht wird)
  • Und die LEDs, die gehen auf Masse.

Schritt 3: ESP8266-Code

ESP8266-Code
ESP8266-Code

Der ESP8266-Code ist ziemlich einfach. Leider ist der Editor in Instructables ziemlich nutzlos, daher möchten Sie den Code direkt von Github erhalten.

Projekt "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

Die Klasse "SensorBase" ist hier verfügbar. Es ist erforderlich, wenn Sie meinen Code "verwenden" möchten:

github.com/bluemonkeydev/arduino-projects/…

Es gibt ein paar Dinge zu beachten. Der Code ist ziemlich gut dokumentiert.

  1. Ich bin ein sehr fauler Entwickler, also habe ich den gesamten wiederverwendbaren ESP8266-Code in eine Klasse namens "SensorBase" gepackt. Das finden Sie auch auf Github, Link oben.
  2. Sie müssen den Server, den Benutzernamen, das Kennwort und den Port Ihres MQTT-Brokers eingeben. Diese finden Sie etwas weiter unten, wenn wir den CloudMQTT-Dienst erstellen.
  3. Sie müssen NICHT meinem Themensyntaxformat folgen. Ich würde jedoch empfehlen, es zu befolgen.
  4. An diesem Code ist nichts Schlaues. Es ist sehr pragmatisch.

Schritt 4: Perfboard-Layout

Perfboard-Layout
Perfboard-Layout

Dieses Projekt wird in einem Mini-Rechenzentrum installiert, daher habe ich mich entschieden, nur Perfboard für das endgültige Design zu verwenden. Perfboard eignet sich hervorragend für Projekte wie dieses und lässt sich einfach mit einem Stück benutzerdefiniertem Millimeterpapier gestalten. Hier sehen Sie mein Layout. Natürlich können Sie es auch anders machen.

Mein Projekt benötigte zwei 8-Bit-Schieberegister, also begann ich mit deren Positionierung in der Mitte. Ich wusste, dass meine Anschlüsse an Optoisolatoren vorerst einfache Buchsenleisten sein würden, auch wenn dies keine ideale Lösung ist.

Ich liebe LEDs, und das musste eine LED für jeden Optoisolator-Schaltkreis haben. Ich wusste, dass die Testphase unendlich einfacher wäre, wenn ich sofortiges Feedback direkt auf der Platine bekommen könnte, aber ich wusste auch, dass diese LEDs beim Löten große Schmerzen verursachen würden. Und das waren sie. Ich hatte nichts kleineres als 5mm LEDs, also musste ich sie staffeln. Mein endgültiges Design machte ein Zick-Zack-Muster der Kathoden, weil ich die Anoden nicht über die Erdungsdrähte führen wollte. Dies erwies sich als gutes Design. Die LED-Drähte verbinden sich über den 8-Bit-Schieberegistern und laufen der Einfachheit halber mit abgeschirmten Drähten auf der Oberseite der Platine.

Zur Stromversorgung wollte ich es über ein altes USB-Kabel betreiben, um es direkt von einem der Computer mit Strom zu versorgen. Dies funktioniert gut, da die USB-Anschlüsse normalerweise auch dann mit Strom versorgt werden, wenn der Computer ausgeschaltet ist. Ich habe einen linearen Spannungsregler LM317 verwendet, um die Leistung auf 3,3 V zu reduzieren. Ein 3,3-V-Regler hätte auch funktioniert, aber ich hatte keinen.

Um zu vermeiden, dass sich zu viele Drähte kreuzen, habe ich ein paar Drähte auf der Oberseite des Perfboards verlegt, die ich versuche zu vermeiden. Beachten Sie, dass die Durchgangslöcher leitfähig sind, verwenden Sie daher abgeschirmte Drähte, um Kurzschlüsse zu vermeiden. Diese Verbindungen, die oben auf der Platine stattfinden, sind in meinem Diagramm in gestrichelten Linien dargestellt.

Schritt 5: Gelötete Platine

Lötplatine
Lötplatine

Meine letzte gelötete Platine ist wirklich gut geworden. Wie erwartet haben die LEDs auf der Oberseite viel Arbeit gebraucht, um ohne Kurzschlüsse richtig gelötet zu werden. Nachdem Sie die LEDs und Header gelötet haben, stellen Sie mit Ihrem Multimeter fest, ob Sie Kurzschlüsse haben. Informieren Sie sich am besten jetzt.

Abgesehen von den LEDs lief alles ganz gut. Ich musste ein paar Verbindungen neu herstellen, aber mit einigen Patienten, etwas Debugging und ein wenig Neulöten wird alles gut funktionieren.

Auf diesem Foto sehen Sie, dass ich auch die Optoisolatoren angeschlossen habe, für die ich ein 8-adriges CAT-5-Kabel verwendet habe. Der Grund dafür ist, dass es super günstig ist, leicht zu spleißen und gut markiert ist – mehr zu diesen Optoisolatoren im nächsten Schritt.

Schritt 6: Optoisolatoren herstellen

Herstellung von Optoisolatoren
Herstellung von Optoisolatoren

Natürlich müssen Sie keine eigenen Optoisolatoren herstellen. Viele kommerzielle Versionen sind für ein paar Cent pro Stück erhältlich und würden besser funktionieren, da sie die Stromleitungen des Computers direkt ohne jeden Widerstand treiben würden. Aber ich hatte keinen Optoisolator, also musste ich meine mit einer LED, einem Widerstand und einem Fotowiderstand herstellen.

Nachdem ich bestätigt hatte, dass in einer Hülle aus schwarzem Schrumpfschlauch der "Aus"-Widerstand mit weniger als meinem Messgerät gemessen werden konnte und der "Ein"-Widerstand einige tausend Ohm betrug, führte ich einen letzten Test auf einem alten Motherboard durch. Bei mir hat es perfekt funktioniert. Ich vermute, dass einige Computer mehr oder weniger empfindlich sind, aber auf den von mir getesteten Motherboards funktionierte diese Konfiguration einwandfrei.

Sie sollten eine wirklich helle weiße LED verwenden, um das maximale Licht in den Fotowiderstand zu bekommen. Ich habe nicht viele Optionen ausprobiert, aber die helle weiße LED und ein 220-Ohm-Widerstand funktionieren definitiv gut.

Schritt 7: CloudMQTT-Setup

CloudMQTT-Einrichtung
CloudMQTT-Einrichtung
CloudMQTT-Einrichtung
CloudMQTT-Einrichtung
CloudMQTT-Einrichtung
CloudMQTT-Einrichtung

Jeder MQTT-Dienst oder ein ähnlicher IoT-Dienst wie Blynk würde funktionieren, aber ich entscheide mich für CloudMQTT für dieses Projekt. Ich habe CloudeMQTT in der Vergangenheit für viele Projekte genutzt und da dieses Projekt an einen Freund übergeben wird, ist es sinnvoll einen neuen Account zu erstellen, der auch übertragen werden kann.

Erstellen Sie ein CloudMQTT-Konto und erstellen Sie dann eine neue "Instanz", wählen Sie die Größe "Cute Cat", da wir sie nur zur Kontrolle verwenden, keine Protokollierung. CloudMQTT stellt Ihnen einen Servernamen, einen Benutzernamen, ein Passwort und eine Portnummer zur Verfügung. (Beachten Sie, dass die Portnummer nicht der Standard-MQTT-Port ist). Übertragen Sie alle diese Werte in Ihren ESP8266-Code an den entsprechenden Stellen, um sicherzustellen, dass der Fall korrekt ist. (im Ernst, kopiere / füge die Werte ein)

Sie können das "Websocket UI"-Panel in CloudMQTT verwenden, um die Verbindungen Ihres Geräts, Tastendrücke und in den seltenen Fällen, in denen ein Fehler angezeigt wird, eine Fehlermeldung anzuzeigen.

Sie werden diese Einstellungen auch bei der Konfiguration des Android MQTT-Clients benötigen, notieren Sie sich die Werte also bei Bedarf. Hoffentlich ist Ihr Passwort nicht zu kompliziert, um es auf Ihrem Telefon einzugeben. Das können Sie in CloudMQTT nicht einstellen.

Schritt 8: MQTT-Android-Client

MQTT Android-Client
MQTT Android-Client
MQTT Android-Client
MQTT Android-Client
MQTT Android-Client
MQTT Android-Client
MQTT Android-Client
MQTT Android-Client

Jeder Android (oder iPhone) MQTT-Client würde funktionieren, aber ich mag MQTT Dash. MQTT Dash ist einfach zu bedienen, sehr reaktionsschnell und bietet alle Optionen, die Sie benötigen.

Richten Sie nach der Installation einen MQTT-Server ein, geben Sie den Server, den Port, den Benutzernamen und das Kennwort mit den Werten Ihrer Instanz ein, NICHT mit Ihren Anmeldeinformationen für CloudMQTT. Sie können einen beliebigen Clientnamen verwenden.

Wenn Sie alles richtig eingegeben haben, verbindet es sich automatisch mit Ihrem MQTT-Server und zeigt Ihnen einen leeren Bildschirm, da Sie noch keine Schaltflächen, Texte oder Nachrichten eingerichtet haben. Auf dem leeren Bildschirm sehen Sie ein "+" in der oberen rechten Ecke, klicken Sie darauf und wählen Sie dann "Auswählen/Schaltfläche". Wir werden pro Computer eine "Auswahl/Schaltfläche" hinzufügen, also 8 oder 16 oder weniger.

Wenn Sie einen Verbindungsfehler erhalten haben, ist einer der Werte falsch. Gehen Sie zurück und überprüfen Sie es noch einmal

Jeder Computer verwendet das Thema, das den in Ihrem Code angegebenen Werten entspricht. Wenn Sie meine Konventionen befolgten, wären sie "cluster/rack-01/computer/01". Es wäre am besten, die Werte "on" und "off" so zu ändern, dass sie unserem Code entsprechen. Anstelle von „0“und „1“verwenden Sie die Werte „on“bzw. „off“. Ich würde auch die Verwendung von QoS(1) empfehlen, da wir eine Bestätigung vom Server erwarten.

Nachdem Sie einen hinzugefügt haben, können Sie lange drücken und die Option "Klonen" verwenden, um einen Haufen zu erstellen, und dann den Namen und das Thema ändern.

Leicht genug.

Schritt 9: Erhalten Sie Ihren ESP8266 auf Wifi

Holen Sie sich Ihren ESP8266 auf Wifi
Holen Sie sich Ihren ESP8266 auf Wifi

Mit dem ESP8266 Wifi Manager-Modul ist es ein Kinderspiel, unser Gerät auf Wifi zu bringen. Wenn Sie meine SensorBase-Klasse verwendet haben, ist sie bereits integriert. Wenn nicht, befolgen Sie die Anweisungen auf der Seite des Wifi-Managers.

Wifi Manager versucht beim Booten, eine Verbindung zu Ihrer SSID herzustellen, was nicht möglich ist, da Sie ihm Ihre SSID nie mitgeteilt haben & Passwort. Verbinden Sie mit Ihrem Telefon oder Laptop das neu verfügbare drahtlose Netzwerk mit dem SSID-Namen "ESP_xxxxxx", wobei "xxxxxx" eine zufällige (nicht wirklich zufällige) Sequenz ist. (Vollständige Anweisungen finden Sie auf der Wifi-Manager-Seite.)

Sobald die Verbindung hergestellt ist, rufen Sie Ihren Webbrowser auf und zeigen Sie auf 192.168.4.1, geben Sie Ihre SSID und Ihr Passwort ein und klicken Sie auf Speichern.

Sie sind jetzt im Internet und auf Ihrem IoT-Gerät funktioniert der "I"-Teil!

Schritt 10: Endgültige Verbindung und Prüfung

Endgültige Verbindung & Prüfung
Endgültige Verbindung & Prüfung

Alles erledigt.

Um alles anzuschließen, suchen Sie das Netzschalterkabel Ihres Computers dort, wo es auf das Motherboard trifft. Sie sollten zwei Reihen von Headern mit einer Reihe von Drähten und Anschlüssen sehen. Normalerweise sind sie ziemlich gut beschriftet. Trennen Sie Ihren Schalter und schließen Sie den Optoisolator-Stecker an. Ich habe einige "Dupont" -Stecker auf meine gelegt, damit sie genau wie das Stromkabel eingesteckt wurden. Die Polarität an diesem Ende spielt keine Rolle, aber stellen Sie sicher, dass die Polarität des anderen Endes korrekt ist – dasjenige, das zu Ihrem benutzerdefinierten Board führt.

Und es funktioniert perfekt. Mit dem MQTT Dash-Client (oder einem ähnlichen Tool) können Sie Ihre Computer remote mit Strom versorgen.

Drücken Sie den entsprechenden Häkchen-Button in Ihrer App, und sobald die App vom MQTT-Server mit der Meldung "off" hört, wird der Button wieder deaktiviert.

Dieser läuft seit einigen Wochen ohne Probleme. Uns ist aufgefallen, dass die Zeit zum Herunterziehen des Knopfes an den Computern verlängert werden musste. Am Ende hatten wir 1 volle Sekunde. Dieser Wert kann als einstellbarer Wert über den MQTT-Server bereitgestellt werden oder Sie können den Wert je nach Wunsch fest verdrahten.

Viel Glück und lass mich wissen, wie es bei dir ausgegangen ist.

Empfohlen: