Sommario:

Spegnimento o riavvio remoto di un computer con il dispositivo ESP8266: 10 passaggi (con immagini)
Spegnimento o riavvio remoto di un computer con il dispositivo ESP8266: 10 passaggi (con immagini)

Video: Spegnimento o riavvio remoto di un computer con il dispositivo ESP8266: 10 passaggi (con immagini)

Video: Spegnimento o riavvio remoto di un computer con il dispositivo ESP8266: 10 passaggi (con immagini)
Video: Come ACCENDERE il PC a DISTANZA tramite Wake on LAN 2024, Luglio
Anonim
Image
Image

Per essere chiari qui, stiamo spegnendo il TUO computer, non il computer di qualcun altro.

La storia va così:

Un mio amico su Facebook mi ha mandato un messaggio e ha detto che ha una dozzina di computer che eseguono un po' di matematica, ma ogni mattina alle 3 si chiudono. Dato che i computer sono a 30 minuti di distanza, è un enorme fastidio guidare due città (viviamo nel South Dakota) per spegnere e riaccendere i computer. Ha chiesto, potrei costruirgli un dispositivo IoT che gli permetta di riavviare il computer incriminato dalla comodità del suo comodo letto?

Per non perdere una sfida, ho accettato di mettere insieme qualcosa per lui. Questo è quel progetto.

Usando due bit-shift registrati, un ESP8266 ESP01, una manciata di LED e alcuni optoisolatori fatti in casa, l'intero progetto costa circa $ 5 se acquisti le parti dalla Cina su eBay. Forse $ 20 da Amazon.

Questa è una costruzione piuttosto complessa con molte saldature fini. Senza contare i miei errori e la ri-saldatura, mi ci sono volute quasi 20 ore per realizzarlo, ma si è rivelato fantastico e ha funzionato perfettamente.

Cominciamo.

Passaggio 1: scheda prototipo

Scheda prototipo
Scheda prototipo
Scheda prototipo
Scheda prototipo

Inizia sempre tutti i progetti con una breadboard prototipo. È il modo migliore per determinare se si dispone di tutti i componenti e se si opera come previsto. Questo progetto è un po' complicato, quindi consiglio vivamente di costruirlo su una breadboard prima di andare avanti.

Le parti di cui avrai bisogno sono:

  • Un ESP8266 ESP01 (anche se qualsiasi dispositivo ESP8266 funzionerebbe)
  • Due registri a scorrimento a 8 bit, ho usato il 74HC595N
  • 16 LED, ho usato LED bianchi a cappello di paglia che funzionano a 3,3V. Se ne usi altri, potresti aver bisogno di resistori.
  • Tre resistori pulldown da 3k3-ohm
  • Ponticelli e una breadboard

Dovrai anche costruire almeno un optoisolatore. Ho usato un tubo termoretraibile nero, un LED bianco brillante, una resistenza da 220 ohm e una fotoresistenza. Saldare la resistenza da 220 ohm al catodo del LED e quindi sigillare il LED e la fotoresistenza all'interno del tubo termoretraibile uno di fronte all'altro. Ma ci arriveremo in un passaggio successivo.

Seguire lo schema elettrico fornito nel passaggio successivo. Il cablaggio è piuttosto semplice.

Poiché ESP8266 funziona a 3,3 V, assicurati di alimentarlo in modo appropriato

Passaggio 2: schema con Will-CAD

Schema che utilizza Will-CAD
Schema che utilizza Will-CAD

Lo schema è abbastanza semplice. Stiamo seguendo il cablaggio standard di un registro a scorrimento a 8 bit. Dato che sto usando due registri a scorrimento a 8 bit, devono essere concatenati sui loro pin "clock" e "latch".

Poiché ESP01 ha solo due pin GPIO, dobbiamo riutilizzare TX e RX come uscite, il che funziona bene per i nostri scopi. Potresti usare un ESP-12 o un'altra versione con più di due pin GPIO se vuoi un maggiore controllo. Ma questo aggiungerà altri $ 2 al costo del progetto, che è solo una follia.

Dobbiamo mantenere i nostri registri a scorrimento a 8 bit e i pin ESP01 tirati in alto all'avvio, in modo che non facciano cose strane o entrino in modalità programma. Ho usato tre resistori da 3k3, anche valori più grandi o più piccoli funzionerebbero. Questo valore è stato derivato dalle guide che parlano di sfruttare i pin alternativi su ESP01.

ESP01 (ESP8266)

  • TX clock pin 3k3 pullup
  • RX latch pin 3k3 pullup
  • 00 dati seriali 3k3 pullup
  • 02 galleggiante

Registro a scorrimento a 8 bit (74HC595H)

  • VCC 3.3V
  • OE 3.3V (questo è il pin di abilitazione)
  • GND GND
  • CLR GND (questo impedisce al pin chiaro di cancellarsi)
  • E i LED, quelli vanno a terra.

Passaggio 3: codice ESP8266

Codice ESP8266
Codice ESP8266

Il codice ESP8266 è piuttosto semplice. Sfortunatamente, l'editor in Instructables è piuttosto inutile, quindi ti consigliamo di ottenere il codice direttamente da Github.

progetto "rack-reboot":

github.com/bluemonkeydev/arduino-projects/…

La classe "SensorBase" è disponibile qui. È obbligatorio se vuoi "usare" il mio codice:

github.com/bluemonkeydev/arduino-projects/…

Ci sono alcune cose da notare. Il codice è abbastanza ben documentato.

  1. Sono uno sviluppatore molto pigro, quindi ho inserito tutto il codice ESP8266 riutilizzabile in una classe chiamata "SensorBase". Puoi trovarlo anche su Github, link sopra.
  2. Devi digitare il server, il nome utente, la password e la porta del tuo broker MQTT. Questi possono essere trovati un po' più in basso quando creiamo il servizio CloudMQTT.
  3. NON è necessario seguire il formato della sintassi del mio argomento. Tuttavia, consiglierei di seguirlo.
  4. Non c'è niente di intelligente in questo codice. È molto pragmatico.

Passaggio 4: layout della scheda perf

Layout della scheda perf
Layout della scheda perf

Questo progetto verrà installato in un mini-datacenter, quindi ho deciso di utilizzare solo la scheda perf per il progetto finale. Perfboard funziona alla grande per progetti come questo ed è facile da impaginare utilizzando un pezzo di carta millimetrata personalizzata. Qui vedrai il mio layout. Certo, puoi scegliere di farlo in modo diverso.

Il mio progetto aveva bisogno di due registri a scorrimento a 8 bit, quindi ho iniziato con il loro posizionamento nel mezzo. Sapevo che i miei connettori per optoisolatori sarebbero stati semplici connettori femmina per ora, anche se non è una soluzione ideale.

Adoro i LED e questo doveva avere un LED per ogni circuito optoisolatore. Sapevo che la fase di test sarebbe stata infinitamente più semplice se avessi potuto ottenere un feedback istantaneo direttamente sulla scheda, ma sapevo anche che quei LED avrebbero causato un enorme dolore alla saldatura. E lo erano. Non avevo LED più piccoli di 5 mm, quindi ho dovuto scaglionarli. Il mio progetto finale ha creato uno schema a zig-zag dei catodi perché non volevo far passare gli anodi sui fili di terra. Questo si è rivelato un buon design. I fili del LED si uniscono sopra i registri a scorrimento a 8 bit e corrono sulla parte superiore della scheda con fili schermati per semplicità.

Per l'alimentazione, volevo eseguirlo da un vecchio cavo USB per essere alimentato direttamente da uno dei computer. Funzionerà bene perché le porte USB sono generalmente alimentate anche se il computer è spento. Ho usato un regolatore di tensione lineare LM317 per ridurre la potenza a 3,3 V. Anche un regolatore da 3,3 V avrebbe funzionato, ma non ne avevo uno.

Per evitare che si incrociassero troppi fili, ho fatto passare alcuni fili sul lato superiore della scheda perf, che cerco di evitare. Tieni presente che i fori passanti sono conduttivi, quindi usa fili schermati per evitare cortocircuiti. Quelle connessioni che si verificano nella parte superiore della scheda sono mostrate in linee tratteggiate nel mio diagramma.

Passaggio 5: scheda saldata

Scheda saldata
Scheda saldata

La mia scheda saldata finale si è rivelata davvero buona. Come previsto, i LED nella parte superiore hanno richiesto molto lavoro per essere saldati correttamente senza cortocircuiti. Dopo aver saldato i LED e le intestazioni, usa il multimetro per determinare se hai dei cortocircuiti. È meglio scoprirlo ora.

A parte i LED, tutto il resto è andato abbastanza bene. Ho dovuto rifare alcune connessioni, ma con alcuni pazienti, un po' di debug e un po' di risaldatura, tutto funzionerà bene.

Vedrai da questa foto che ho collegato anche gli optoisolatori, che ho usato un cavo CAT-5 a 8 fili. Il motivo è che è super economico, facile da unire ed è ben contrassegnato, più su quegli optoisolatori nel passaggio successivo.

Passaggio 6: realizzare optoisolatori

Fare optoisolatori
Fare optoisolatori

Naturalmente, non è necessario creare i propri optoisolatori. Molte versioni commerciali sono disponibili per pochi centesimi l'una e funzionerebbero meglio poiché guiderebbero direttamente le linee elettriche del computer senza alcuna resistenza. Ma non avevo alcun optoisolatore, quindi ho dovuto creare il mio usando un LED, una resistenza e una fotoresistenza.

Dopo aver confermato che all'interno di un manicotto di tubo termoretraibile nero, la resistenza "off" con meno del mio misuratore poteva leggere e la resistenza "on" era di qualche migliaio di ohm, ho fatto un test finale su una vecchia scheda madre. Ha funzionato perfettamente per me. Sospetto che alcuni computer possano essere più o meno sensibili, ma sulle schede madri che ho testato, questa configurazione ha funzionato bene.

Ti consigliamo di utilizzare un LED bianco molto luminoso per ottenere la massima luce nella fotoresistenza. Non ho provato molte opzioni, ma il LED bianco brillante e un resistore da 220 ohm funzionano decisamente bene.

Passaggio 7: configurazione di CloudMQTT

Configurazione CloudMQTT
Configurazione CloudMQTT
Configurazione CloudMQTT
Configurazione CloudMQTT
Configurazione CloudMQTT
Configurazione CloudMQTT

Qualsiasi servizio MQTT, o servizio IoT simile come Blynk, funzionerebbe, ma scelgo di utilizzare CloudMQTT per questo progetto. Ho usato CloudeMQTT per molti progetti in passato e, poiché questo progetto verrà consegnato a un amico, ha senso creare un nuovo account che può anche essere trasferito.

Crea un account CloudMQTT e quindi crea una nuova "istanza", scegli la dimensione "Cute Cat" poiché la usiamo solo per il controllo, nessuna registrazione. CloudMQTT ti fornirà un nome server, nome utente, password e numero di porta. (Si noti che il numero di porta non è la porta MQTT standard). Trasferisci tutti questi valori nel tuo codice ESP8266 nelle posizioni corrispondenti, assicurandoti che il caso sia corretto. (seriamente, copia/incolla i valori)

Puoi utilizzare il pannello "Websocket UI" su CloudMQTT per vedere le connessioni del tuo dispositivo, i pulsanti premuti e, nello strano scenario, che ottieni un errore, un messaggio di errore.

Avrai bisogno di queste impostazioni anche durante la configurazione del client MQTT di Android, quindi annota i valori se necessario. Si spera che la tua password non sia troppo complicata da digitare sul telefono. Non puoi impostarlo in CloudMQTT.

Passaggio 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

Qualsiasi client MQTT per Android (o iPhone) funzionerebbe, ma mi piace MQTT Dash. MQTT Dash è facile da usare, molto reattivo e ha tutte le opzioni di cui avrai bisogno.

Una volta installato, configura un server MQTT, popola il server, la porta, il nome utente e la password con i valori della tua istanza, NON con le tue informazioni di accesso a CloudMQTT. Puoi utilizzare qualsiasi nome cliente che desideri.

Se hai digitato tutto correttamente, si collegherà automaticamente al tuo server MQTT e ti mostrerà una schermata vuota poiché non hai ancora impostato alcun pulsante, testo o messaggio. Nella schermata vuota, vedrai un "+" nell'angolo in alto a destra, fai clic e seleziona " Seleziona/Pulsante ". Aggiungeremo un " Select/Button " per computer, quindi 8 o 16 o meno.

Se hai ricevuto un errore di connessione, uno dei valori è sbagliato. Torna indietro e ricontrolla

Ogni computer utilizzerà l'argomento che corrisponde ai valori specificati nel codice. Se seguissi le mie convenzioni, sarebbero " cluster/rack-01/computer/01 ". Sarebbe meglio cambiare i valori "on" e "off" in modo che corrispondano al nostro codice. Invece di "0" e "1", utilizzare rispettivamente i valori "on" e "off". Consiglierei anche di usare QoS (1) poiché ci aspetteremo una conferma dal server.

Dopo averne aggiunto uno, puoi premere a lungo e utilizzare l'opzione "clona" per creare un gruppo, quindi modificarne il nome e l'argomento.

Abbastanza facile.

Passaggio 9: ottenere il tuo ESP8266 su Wifi

Ottenere il tuo ESP8266 su Wifi
Ottenere il tuo ESP8266 su Wifi

Utilizzando il modulo ESP8266 Wifi Manager, è un gioco da ragazzi ottenere il nostro dispositivo su Wifi. Se hai usato la mia classe SensorBase, è già integrata. In caso contrario, segui le istruzioni nella pagina di Wifi Manager.

Wifi Manager tenterà di connettersi al tuo SSID all'avvio, cosa che non può perché non gli hai mai detto il tuo SSID, quindi passerà automaticamente alla modalità punto di accesso (o modalità AP) e mostrerà una semplice pagina web che richiede il tuo SSID & Parola d'ordine. Usando il tuo telefono o laptop, collega la rete wireless appena disponibile con il nome SSID "ESP_xxxxxx", dove "xxxxxx" è una sequenza casuale (non proprio casuale). (Le istruzioni complete sono disponibili nella pagina di Wifi Manager.)

Una volta connesso, apri il tuo browser web e puntalo a 192.168.4.1, digita il tuo SSID e password e fai clic su Salva.

Ora sei su Internet e il tuo dispositivo IoT ha la parte "I" funzionante!

Passaggio 10: connessione e test finali

Connessione e test finali
Connessione e test finali

Tutto fatto.

Per collegare tutto, individua il cavo del pulsante di accensione del computer nel punto in cui incontra la scheda madre. Dovresti vedere due file di intestazioni con un mucchio di fili e connettori. In genere, sono etichettati abbastanza bene. Scollegare l'interruttore e collegare la spina dell'optoisolatore. Ho messo alcune spine "Dupont" sul mio, quindi si sono collegate proprio come il cavo di alimentazione. La polarità a questa estremità non ha importanza, ma assicurati di avere la polarità dell'altra estremità corretta, quella che va alla tua scheda personalizzata.

E funziona perfettamente. Utilizzando il client MQTT Dash (o uno strumento simile), puoi alimentare in remoto i tuoi computer.

Premi il pulsante di spunta corrispondente sulla tua app e, una volta che l'app risponde dal server MQTT con il messaggio "off", il pulsante tornerà a non essere selezionato.

Funziona da alcune settimane senza problemi. Abbiamo notato che il tempo necessario per tirare il pulsante in basso sui computer doveva essere esteso. Abbiamo finito con 1 secondo intero. Questo valore può essere esposto come un valore impostabile tramite il server MQTT oppure è possibile cablare il valore, a seconda del proprio desiderio.

Buona fortuna e fammi sapere come è venuta la tua.

Consigliato: