Cuprins:

Opriți sau reporniți de la distanță un computer cu dispozitivul ESP8266: 10 pași (cu imagini)
Opriți sau reporniți de la distanță un computer cu dispozitivul ESP8266: 10 pași (cu imagini)

Video: Opriți sau reporniți de la distanță un computer cu dispozitivul ESP8266: 10 pași (cu imagini)

Video: Opriți sau reporniți de la distanță un computer cu dispozitivul ESP8266: 10 pași (cu imagini)
Video: How To Chia GPU Plotting and Farming Guide for WINDOWS UPDATED - Gigahorse Start to Finish - 2023 2024, Noiembrie
Anonim
Image
Image

Pentru a fi clar aici, vă închidem computerul, nu computerul altcuiva.

Povestea spune așa:

Un prieten de-al meu de pe Facebook m-a trimis un mesaj și mi-a spus că are o duzină de computere care rulează o grămadă de matematică, dar în fiecare dimineață, la 3 dimineața, se închid. Deoarece computerele sunt la 30 de minute distanță, este o mare neplăcere să conduci două orașe (locuim în Dakota de Sud) pentru a alimenta computerele. El a întrebat, aș putea să-i construiesc un dispozitiv IoT care să-i permită să repornească computerul ofensator din confortul patului său confortabil?

Niciodată să nu pierd o provocare, am fost de acord să pun ceva împreună pentru el. Acesta este acel proiect.

Folosind două înregistrări cu schimbare de biți, un ESP8266 ESP01, o mână de LED-uri și niște optoizolatori de casă, întregul proiect costă aproximativ 5 USD dacă cumpărați piesele din China de pe eBay. Poate 20 de dolari de la Amazon.

Aceasta este o construcție destul de complexă, cu o mulțime de lipire fină. Fără a ține cont de șuruburi și re-lipire, mi-a luat cea mai bună parte de 20 de ore, dar mi s-a dovedit uimitor și a funcționat perfect.

Sa incepem.

Pasul 1: Placă prototip

Placă prototip
Placă prototip
Placă prototip
Placă prototip

Începeți întotdeauna toate proiectele cu un panou de testare prototip. Este cel mai bun mod de a determina dacă aveți toate componentele și funcționați conform așteptărilor. Acest proiect este un pic complicat, așa că vă recomand să îl construiți pe un panou înainte de a merge mai departe.

Piesele de care veți avea nevoie sunt:

  • Un ESP8266 ESP01 (deși orice dispozitiv ESP8266 ar funcționa)
  • Două registre de schimbare pe 8 biți, am folosit 74HC595N
  • 16 LED-uri, am folosit LED-uri albe de pălărie de paie care funcționează la 3,3V. Dacă folosiți alții, este posibil să aveți nevoie de rezistențe.
  • Trei rezistențe 3k3-ohmpulldown
  • Sârmă jumper și o placă de măsurare

De asemenea, va trebui să construiți cel puțin un optoizolator. Am folosit tuburi negre, un LED alb strălucitor, un rezistor de 220 ohmi și un fotorezistor. Lipiți rezistorul de 220 ohmi pe catodul LED-ului și apoi sigilați LED-ul și fotorezistorul în interiorul tubului de contracție orientat unul față de celălalt. Dar vom ajunge la aceia într-un pas ulterior.

Urmați schema de conectare furnizată în pasul următor. Cablarea este destul de simplă.

Deoarece ESP8266 funcționează la 3,3 V, asigurați-vă că îl alimentați corespunzător

Pasul 2: Schema utilizând Will-CAD

Schema folosind Will-CAD
Schema folosind Will-CAD

Schema este destul de simplă. Urmărim conectarea standard a unui registru de schimbare pe 8 biți. Deoarece folosesc două registre de schimbare pe 8 biți, acestea trebuie să fie înlănțuite împreună pe pinii lor „de ceas” și „de blocare”.

Deoarece ESP01 are doar doi pini GPIO, trebuie să reutilizăm TX & RX ca ieșiri, care funcționează bine în scopurile noastre. Puteți utiliza un ESP-12 sau o altă versiune cu mai mult de doi pini GPIO dacă doriți mai mult control. Dar asta va adăuga încă 2 USD la costul proiectului - ceea ce este doar o vorbă nebună.

Trebuie să ne păstrăm registrele de schimbare pe 8 biți și pinii ESP01 trasi la boot, astfel încât să nu facă lucruri ciudate sau să intre în modul program. Am folosit trei rezistențe 3k3, ar funcționa și valori mai mari sau mai mici. Această valoare a fost derivată din ghidurile care vorbesc despre pârghia pinilor alternativi pe ESP01.

ESP01 (ESP8266)

  • Trageți pinul de ceas TX 3k3
  • RX blocare pin 3k3 pullup
  • 00 date de serie 3k3 pullup
  • 02 plutitoare

8-bit Shift Register (74HC595H)

  • VCC 3.3V
  • OE 3.3V (acesta este pinul de activare)
  • GND GND
  • CLR GND (acest lucru împiedică știftul clar de la degajare)
  • Și LED-urile, acestea merg la sol.

Pasul 3: Codul ESP8266

Codul ESP8266
Codul ESP8266

Codul ESP8266 este destul de simplu. Din păcate, editorul din Instructables este destul de inutil, așa că veți dori să obțineți codul direct de la Github.

proiectul „racks-reboot”:

github.com/bluemonkeydev/arduino-projects/…

Clasa „SensorBase” este disponibilă aici. Este necesar dacă doriți să „utilizați” codul meu:

github.com/bluemonkeydev/arduino-projects/…

Există câteva lucruri de remarcat. Codul este destul de bine documentat.

  1. Sunt un dezvoltator foarte leneș, așa că am pus tot codul ESP8266 reutilizabil într-o clasă numită „SensorBase”. Puteți găsi acest lucru și pe Github, link-ul de mai sus.
  2. Trebuie să introduceți serverul brokerului MQTT, numele de utilizator, parola și portul. Acestea pot fi găsite puțin mai jos atunci când creăm serviciul CloudMQTT.
  3. NU trebuie să urmați formatul meu de sintaxă a subiectului. Cu toate acestea, aș recomanda să îl urmați.
  4. Nu există nimic inteligent în acest cod. Este foarte pragmatic.

Pasul 4: Aspect Perfboard

Aspect Perfboard
Aspect Perfboard

Acest proiect va fi instalat într-un mini-centru de date, așa că am decis să folosesc doar placa perf pentru designul final. Perfboard funcționează excelent pentru proiecte de acest gen și este ușor de aranjat folosind o bucată de hârtie grafică personalizată. Aici veți vedea aspectul meu. Desigur, puteți alege să o faceți diferit.

Proiectul meu avea nevoie de două registre de schimbare pe 8 biți, așa că am început cu poziționarea lor în mijloc. Știam că conectorii mei la optoizolatori vor fi deocamdată anteturi feminine simple, chiar dacă aceasta nu este o soluție ideală.

Îmi plac LED-urile, iar acest lucru trebuia să aibă un LED pentru fiecare circuit de optoizolator. Știam că faza de testare va fi infinit mai ușoară dacă aș putea obține feedback instantaneu direct pe tablă, dar știam, de asemenea, că aceste LED-uri vor cauza dureri uriașe de lipit. Și au fost. Nu aveam nimic mai mic decât LED-urile de 5 mm, așa că a trebuit să le șterg. Proiectul meu final a realizat un model în zig-zag al catodelor pentru că nu voiam să trec anodii peste firele de la sol. Acest lucru sa dovedit a fi un design bun. Firele LED se unesc deasupra registrelor de schimbare pe 8 biți și rulează pe partea superioară a plăcii cu fire ecranate pentru simplitate.

Pentru alimentare, am vrut să-l rulez de pe un vechi cablu USB pentru a fi alimentat direct de pe unul dintre computere. Acest lucru va funcționa bine, deoarece porturile USB sunt de obicei alimentate chiar dacă computerul este oprit. Am folosit un regulator de tensiune liniar LM317 pentru a reduce puterea la 3,3V. Un regulator de 3,3V ar fi funcționat și el, dar eu nu aveam unul.

Pentru a evita trecerea prea multor fire, am rulat câteva fire pe partea superioară a plăcii de perf, pe care încerc să le evit. Rețineți că găurile de trecere sunt conductive, deci folosiți fire ecranate pentru a evita scurtcircuitele. Acele conexiuni care au loc în partea de sus a tabloului sunt prezentate în linii întrerupte pe diagrama mea.

Pasul 5: Tablă lipită

Tablă lipită
Tablă lipită

Tabloul meu final de lipit a ieșit foarte bine. Așa cum era de așteptat, LED-urile din partea de sus au făcut multă muncă pentru a se lipi corect, fără pantaloni scurți. După ce ați lipit LED-urile și anteturile, utilizați multimetrul pentru a determina dacă aveți pantaloni scurți. Cel mai bine este să afli acum.

În afară de LED-uri, toate celelalte au mers destul de bine. A trebuit să refac câteva conexiuni, dar cu unii pacienți, unii depanare și puțină re-lipire, totul va funcționa bine.

Veți vedea din această fotografie că am conectat și optoizolatoarele, pe care le-am folosit cablu CAT-5 cu 8 fire. Motivul este că este foarte ieftin, ușor de îmbinat și este bine marcat - mai multe despre acei optoizolatori din pasul următor.

Pasul 6: Realizarea de optoizolatori

Realizarea de optoizolatori
Realizarea de optoizolatori

Desigur, nu este nevoie să vă creați proprii optoizolatori. Multe versiuni comerciale sunt disponibile pentru penny și ar funcționa mai bine, deoarece ar conduce direct liniile de alimentare ale computerului fără nicio rezistență. Dar nu aveam niciun optoizolator, așa că a trebuit să-l fac pe al meu folosind un LED, rezistor și fotorezistor.

După ce am confirmat că într-un manșon de tuburi negre, cu rezistență „off” cu mai puțin de contorul meu, se putea citi și rezistența „on” a fost de câteva mii de ohmi, am făcut un test final pe o placă de bază veche. A funcționat perfect pentru mine. Bănuiesc că unele computere pot fi mai mult sau mai puțin sensibile, dar pe plăcile de bază pe care le-am testat, această configurație a funcționat bine.

Veți dori să utilizați un LED alb foarte luminos pentru a obține lumina maximă în fotorezistor. Nu am încercat multe opțiuni, dar LED-ul alb strălucitor și un rezistor de 220 ohmi funcționează cu siguranță bine.

Pasul 7: Configurare CloudMQTT

Configurare CloudMQTT
Configurare CloudMQTT
Configurare CloudMQTT
Configurare CloudMQTT
Configurare CloudMQTT
Configurare CloudMQTT

Orice serviciu MQTT sau un serviciu similar IoT ca Blynk ar funcționa, dar aleg să folosesc CloudMQTT pentru acest proiect. Am folosit CloudeMQTT pentru multe proiecte în trecut și, deoarece acest proiect va fi predat unui prieten, este logic să creezi un cont nou care să poată fi transferat și.

Creați un cont CloudMQTT și apoi creați o nouă „instanță”, alegeți dimensiunea „Cute Cat”, deoarece îl folosim doar pentru control, fără înregistrare. CloudMQTT vă va oferi un nume de server, un nume de utilizator, o parolă și un număr de port. (Rețineți că numărul portului nu este portul standard MQTT). Transferați toate aceste valori în codul dvs. ESP8266 în locațiile corespunzătoare, asigurându-vă că cazul este corect. (serios, copiați / lipiți valorile)

Puteți utiliza panoul „Websocket UI” de pe CloudMQTT pentru a vedea conexiunile dispozitivului, apăsările butoanelor și, în scenariul ciudat, că primiți o eroare, un mesaj de eroare.

Veți avea nevoie de aceste setări și atunci când configurați clientul Android MQTT, așa că rețineți valorile, dacă este necesar. Sperăm că parola dvs. nu este prea complicată pentru a o introduce pe telefon. Nu puteți seta acest lucru în CloudMQTT.

Pasul 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

Orice client Android (sau iPhone) MQTT ar funcționa, dar îmi place MQTT Dash. MQTT Dash este ușor de utilizat, foarte receptiv și are toate opțiunile de care aveți nevoie.

Odată instalat, configurați un server MQTT, completați serverul, portul, numele de utilizator și parola cu valorile instanței dvs., NU informațiile de conectare la CloudMQTT. Puteți utiliza orice nume de client doriți.

Dacă ați tastat totul corect, acesta se va conecta automat la serverul MQTT și vă va afișa un ecran gol, deoarece nu ați configurat încă niciun buton, text sau mesaj. Pe ecranul gol, vedeți un „+” în colțul din dreapta sus, faceți clic pe acesta, apoi selectați „Selectare / Buton”. Vom adăuga un „Select / Buton” pe computer, deci 8 sau 16 sau mai puțin.

Dacă ați primit o eroare de conexiune, aveți una dintre valori greșite. Reveniți și verificați din nou

Fiecare computer va folosi subiectul care corespunde valorilor specificate în codul dvs. Dacă ați urma convențiile mele, acestea ar fi „cluster / rack-01 / computer / 01”. Cel mai bine ar fi să schimbăm valorile „on” și „off” pentru a se potrivi codului nostru. În loc de „0” și „1”, utilizați valorile „on” și respectiv „off”. Aș recomanda, de asemenea, utilizarea QoS (1), deoarece vom aștepta o confirmare de la server.

După adăugarea unuia, puteți apăsa lung și utiliza opțiunea „clonează” pentru a crea o grămadă, apoi le puteți schimba numele și subiectul.

Destul de usor.

Pasul 9: Obținerea ESP8266 pe Wifi

Obținerea ESP8266 pe Wifi
Obținerea ESP8266 pe Wifi

Folosind modulul ESP8266 Wifi Manager, este ușor să ne punem dispozitivul pe Wifi. Dacă ați folosit clasa mea SensorBase, aceasta este deja încorporată. Dacă nu, urmați instrucțiunile de pe pagina Managerului Wifi.

Managerul Wifi va încerca să se conecteze la SSID-ul dvs. la pornire, lucru pe care nu îl poate, deoarece nu i-ați spus niciodată SSID-ul dvs., deci va intra automat în modul punct de acces (sau modul AP) și va afișa o pagină web simplă care solicită SSID-ul dvs. & Parola. Folosind telefonul sau laptopul, conectați rețeaua wireless recent disponibilă cu numele SSID "ESP_xxxxxx", unde "xxxxxx" este o secvență aleatorie (nu chiar aleatorie). (Instrucțiunile complete pot fi găsite pe pagina Wifi Manager.)

După conectare, deschideți browserul web și indicați-l către 192.168.4.1, tastați SSID și parola și faceți clic pe salvare.

Acum sunteți pe internet, iar dispozitivul dvs. IoT are partea „Eu” funcțională!

Pasul 10: Conexiune finală și testare

Conexiune finală și testare
Conexiune finală și testare

Totul este gata.

Pentru a conecta totul, localizați cablul butonului de alimentare al computerului în locul în care se întâlnește cu placa de bază. Ar trebui să vedeți două rânduri de anteturi cu o grămadă de fire și conectori. De obicei, acestea sunt etichetate destul de bine. Deconectați comutatorul și conectați mufa optoizolatorului. Am pus niște prize "Dupont" pe ale mele, așa că s-au conectat la fel ca cablul de alimentare. Polaritatea la acest scop nu contează, dar asigurați-vă că polaritatea celuilalt capăt este corectă - cea care merge la placa dvs. personalizată.

Și funcționează perfect. Folosind clientul MQTT Dash (sau un instrument similar), vă puteți alimenta computerele de la distanță.

Apăsați butonul de verificare corespunzător din aplicația dvs. și, odată ce aplicația aude de la serverul MQTT cu mesajul „dezactivat”, butonul va reveni la nebifat.

Aceasta funcționează de câteva săptămâni fără probleme. Am observat că durata de timp pentru apăsarea butonului de pe computer trebuie extinsă. Am ajuns cu o secundă completă. Această valoare poate fi expusă ca valoare setabilă prin intermediul serverului MQTT sau puteți conecta valoarea, în funcție de dorința dvs.

Mult noroc și anunță-mă cum a ieșit al tău.

Recomandat: