Indholdsfortegnelse:

Ekstern nedlukning eller genstart af en computer med ESP8266 -enhed: 10 trin (med billeder)
Ekstern nedlukning eller genstart af en computer med ESP8266 -enhed: 10 trin (med billeder)

Video: Ekstern nedlukning eller genstart af en computer med ESP8266 -enhed: 10 trin (med billeder)

Video: Ekstern nedlukning eller genstart af en computer med ESP8266 -enhed: 10 trin (med billeder)
Video: Lesson 77: Using VL53L0X 200cm Laser Distance Sensor | Arduino Step By Step Course 2024, Juli
Anonim
Image
Image

For at være klar her lukker vi din computer ned, ikke en andens computer.

Historien går sådan her:

En af mine venner på Facebook sendte en besked til mig og sagde, at han har et dusin computere, der kører en masse matematik, men hver morgen kl. 3 om morgenen låser de. Da computerne er 30 minutter væk, er det en kæmpe gene at køre to byer over (vi bor i South Dakota) for at tænde og slukke computerne. Han spurgte, kunne jeg bygge ham en IoT -enhed, der ville gøre det muligt for ham at genstarte den krænkende computer fra komforten i sin hyggelige seng?

For aldrig at gå glip af en udfordring, gik jeg med til at sammensætte noget for ham. Dette er det projekt.

Ved hjælp af to bit-shift registrerede, en ESP8266 ESP01, en håndfuld lysdioder og nogle hjemmelavede optoisolatorer koster hele projektet omkring $ 5, hvis du køber delene fra Kina på eBay. Måske $ 20 fra Amazon.

Dette er en ret kompleks konstruktion med masser af fint lodning. Uden at tælle mine skruer og genlodninger tog det mig en bedre del af 20 timer at lave, men det blev fantastisk og fungerede perfekt.

Lad os begynde.

Trin 1: Prototype Board

Prototype Board
Prototype Board
Prototype Board
Prototype Board

Start altid alle projekter med en prototype brødbræt. Det er den bedste måde at afgøre, om du har alle komponenterne og fungerer som forventet. Dette projekt er lidt kompliceret, så jeg anbefaler stærkt at bygge det på et brødbræt, før jeg går videre.

De dele, du skal bruge, er:

  • Én ESP8266 ESP01 (selvom enhver ESP8266 -enhed ville fungere)
  • To 8-bit skiftregistre, jeg brugte 74HC595N
  • 16 lysdioder, jeg brugte stråhat hvide lysdioder, der fungerer ved 3,3V. Hvis du bruger andre, har du muligvis brug for modstande.
  • Tre 3k3-ohmpulldown-modstande
  • Jumperwires & et brødbræt

Du skal også bygge mindst en optoisolator. Jeg brugte sort krympeslange, en lys hvid LED, en 220-ohm modstand og en fotoresistor. Lod den 220-ohm modstand til LED's katode og forsegl derefter LED'en og fotoresistoren inde i krympeslangen mod hinanden. Men vi kommer til dem i et senere trin.

Følg ledningsdiagrammet i det næste trin. Ledningerne er ret ligetil.

Fordi ESP8266 fungerer ved 3,3V, skal du sørge for at tænde den korrekt

Trin 2: Skema ved hjælp af Will-CAD

Skema ved hjælp af Will-CAD
Skema ved hjælp af Will-CAD

Skematikken er ret ligetil. Vi følger standardopbygningen af et 8-bit skiftregister. Da jeg bruger to 8-bit skiftregistre, skal de kædes sammen på deres 'ur' og 'lås' stifter.

Fordi ESP01 kun har to GPIO-ben, skal vi genbruge TX & RX som output, hvilket fungerer fint til vores formål. Du kan bruge en ESP-12 eller en anden version med mere end to GPIO-ben, hvis du vil have mere kontrol. Men det vil føje yderligere $ 2 til omkostningerne ved projektet - hvilket bare er tosset.

Vi skal holde vores 8-bit skiftregistre og ESP01-pins trukket højt på støvlen, så de ikke gør underlige ting eller går i programtilstand. Jeg brugte tre 3k3 modstande, større eller mindre værdier ville også fungere. Denne værdi blev afledt af guiderne, der talte om at udnytte alternative stifter på ESP01.

ESP01 (ESP8266)

  • TX ur pin 3k3 pullup
  • RX låsestift 3k3 pullup
  • 00 serielle data 3k3 pullup
  • 02 flydende

8-bit skiftregister (74HC595H)

  • VCC 3.3V
  • OE 3.3V (dette er aktiveringsnålen)
  • GND GND
  • CLR GND (dette forhindrer den klare pin i at rydde)
  • Og lysdioderne, dem går til jorden.

Trin 3: ESP8266 -kode

ESP8266 Kode
ESP8266 Kode

ESP8266 -koden er ret ligetil. Desværre er redaktøren i Instructables ret ubrugelig, så du vil gerne få koden direkte fra Github.

"racks-reboot" projekt:

github.com/bluemonkeydev/arduino-projects/…

Klassen "SensorBase" er tilgængelig her. Det er påkrævet, hvis du vil "bruge" min kode:

github.com/bluemonkeydev/arduino-projects/…

Der er et par ting at bemærke. Koden er ret veldokumenteret.

  1. Jeg er en meget doven udvikler, så jeg satte al ESP8266 -kode, der kan genbruges, i en klasse kaldet "SensorBase". Du kan også finde det på Github, linket ovenfor.
  2. Du skal indtaste din MQTT -mæglers server, brugernavn, adgangskode og port. Dem kan findes lidt længere nede, når vi opretter CloudMQTT -tjenesten.
  3. Du behøver IKKE at følge mit emnesyntaksformat. Jeg vil dog anbefale at følge den.
  4. Der er ikke noget smart ved denne kode. Det er meget pragmatisk.

Trin 4: Perfboard -layout

Perfboard Layout
Perfboard Layout

Dette projekt vil blive installeret på et mini-datacenter, så jeg besluttede mig for bare at bruge perf board til det endelige design. Perfboard fungerer fantastisk til projekter som dette og er let at layoute ved hjælp af et stykke brugerdefineret grafpapir. Her vil du se mit layout. Selvfølgelig kan du vælge at gøre det anderledes.

Mit projekt havde brug for to 8-bit skiftregistre, så jeg startede med deres positionering i midten. Jeg vidste, at mine stik til optoisolatorer ville være simple kvindelige overskrifter for nu, selvom det ikke er en ideel løsning.

Jeg elsker LED'er, og dette skulle have en LED til hvert optoisolator kredsløb. Jeg vidste, at testfasen ville være uendelig lettere, hvis jeg kunne få øjeblikkelig feedback direkte på tavlen, men jeg vidste også, at disse lysdioder ville forårsage enorm smerte at lodde. Og det var de. Jeg havde ikke noget mindre end 5 mm lysdioder, så jeg måtte forskyde dem. Mit endelige design lavede et zig-zag mønster af katoderne, fordi jeg ikke ønskede at køre anoderne over jordledningerne. Dette viste sig at være et godt design. LED-ledningerne slutter sig over de 8-bit skiftregistre og kører på pladens top med afskærmede ledninger for enkelhed.

For strøm ville jeg køre det fra et gammelt USB -kabel for at blive drevet direkte fra en af computerne. Dette fungerer fint, fordi USB -portene typisk er strømforsynede, selvom computeren er slukket. Jeg brugte en LM317 lineær spændingsregulator til at reducere effekten til 3,3V. En 3.3V regulator ville også have fungeret, men jeg havde ikke en.

For at undgå at for mange ledninger krydsede, kørte jeg et par ledninger på oversiden af perfbrættet, som jeg prøver at undgå. Husk, at de gennemgående huller er ledende, så brug afskærmede ledninger for at undgå shorts. Disse forbindelser, der finder sted på toppen af tavlen, er vist med stiplede linjer på mit diagram.

Trin 5: Loddet bord

Loddet bord
Loddet bord

Mit sidste loddede bord blev rigtig godt. Som forventet tog lysdioderne på toppen meget arbejde for at få loddet korrekt uden shorts. Når du har loddet lysdioderne og overskrifterne, skal du bruge dit multimeter til at afgøre, om du har shorts. Det er bedst at finde ud af det nu.

Bortset fra lysdioderne gik alt andet ganske godt. Jeg var nødt til at gentage et par forbindelser, men med nogle patienter, nogle fejlfinding og lidt omlodning vil alt fungere fint.

Du vil se på dette foto, at jeg også har tilsluttet optoisolatorerne, som jeg brugte 8-leder CAT-5-kabel. Årsagen er, at den er super billig, let at splejse og er godt markeret-mere om de optoisolatorer i det næste trin.

Trin 6: Fremstilling af optoisolatorer

Fremstilling af optoisolatorer
Fremstilling af optoisolatorer

Selvfølgelig behøver du ikke lave dine egne optoisolatorer. Mange kommercielle versioner er tilgængelige for øre stykket og ville fungere bedre, da de ville drive computerens elledninger direkte uden modstand. Men jeg havde ingen optoisolator, så jeg måtte lave min ved hjælp af en LED, modstand og fotoresistor.

Efter at have bekræftet, at i en muffe med sort krympeslange kunne "off" -modstanden med mindre end min måler aflæse og "on" -modstanden var et par tusinde ohm, lavede jeg en sidste test på et gammelt bundkort. Det fungerede perfekt for mig. Jeg formoder, at nogle computere kan være mere eller mindre følsomme, men på de bundkort, jeg har testet, fungerede denne konfiguration fint.

Du vil gerne bruge en virkelig lys hvid LED for at få det maksimale lys ind i fotoresistoren. Jeg prøvede ikke mange muligheder, men den lyse hvide LED og en 220-ohm modstand fungerer bestemt godt.

Trin 7: CloudMQTT -opsætning

CloudMQTT -opsætning
CloudMQTT -opsætning
CloudMQTT -opsætning
CloudMQTT -opsætning
CloudMQTT -opsætning
CloudMQTT -opsætning

Enhver MQTT -service eller lignende IoT -service som Blynk ville fungere, men jeg vælger at bruge CloudMQTT til dette projekt. Jeg har tidligere brugt CloudeMQTT til mange projekter, og da dette projekt vil blive overdraget til en ven, giver det mening at oprette en ny konto, der også kan overføres.

Opret en CloudMQTT -konto, og opret derefter en ny "forekomst", vælg størrelsen "Cute Cat", da vi kun bruger den til kontrol, ingen logning. CloudMQTT giver dig et servernavn, brugernavn, adgangskode og portnummer. (Bemærk, at portnummeret ikke er standard MQTT -porten). Overfør alle disse værdier til din ESP8266 -kode på de tilsvarende steder, og sørg for, at sagen er korrekt. (seriøst, kopier/indsæt værdierne)

Du kan bruge "Websocket UI" -panelet på CloudMQTT til at se din enheds forbindelser, knaptryk og, i det ulige scenario, at du får en fejl, en fejlmeddelelse.

Du får også brug for disse indstillinger, når du konfigurerer Android MQTT -klienten, så noter værdierne, hvis du har brug for det. Forhåbentlig er din adgangskode ikke for kompliceret til at skrive på din telefon. Du kan ikke indstille det i CloudMQTT.

Trin 8: MQTT Android -klient

MQTT Android -klient
MQTT Android -klient
MQTT Android -klient
MQTT Android -klient
MQTT Android -klient
MQTT Android -klient
MQTT Android -klient
MQTT Android -klient

Enhver Android (eller iPhone) MQTT -klient ville fungere, men jeg kan godt lide MQTT Dash. MQTT Dash er let at bruge, meget lydhør og har alle de muligheder, du skal bruge.

Når den er installeret, skal du oprette en MQTT -server, udfylde serveren, porten, brugernavnet og adgangskoden med din forekomsts værdier, IKKE dine loginoplysninger til CloudMQTT. Du kan bruge ethvert klientnavn, du ønsker.

Hvis du skrev alt korrekt, vil det automatisk oprette forbindelse til din MQTT -server og vise dig en tom skærm, da du ikke har konfigureret knapper, tekst eller beskeder endnu. På den tomme skærm ser du et "+" i øverste højre hjørne, klikker på det, og vælger derefter "Vælg/knap". Vi tilføjer en "Vælg/knap" pr. Computer, altså 8 eller 16 eller derunder.

Hvis du fik en forbindelsesfejl, har du en af værdierne forkert. Gå tilbage og dobbelttjek

Hver computer bruger det emne, der svarer til de værdier, der er angivet i din kode. Hvis du fulgte mine konventioner, ville de være "cluster/rack-01/computer/01". Det ville være bedst at ændre værdierne "til" og "fra", så de matcher vores kode. I stedet for "0" og "1" skal du bruge værdierne henholdsvis "on" og "off". Jeg vil også anbefale at bruge QoS (1), da vi forventer en bekræftelse fra serveren.

Når du har tilføjet en, kan du trykke længe på og bruge "klon" -indstillingen til at oprette en flok og derefter ændre deres navn og emne.

Let nok.

Trin 9: Få din ESP8266 på Wifi

Få din ESP8266 på Wifi
Få din ESP8266 på Wifi

Ved hjælp af ESP8266 Wifi Manager -modulet er det en leg at få vores enhed til Wifi. Hvis du brugte min SensorBase-klasse, er den allerede indbygget. Hvis ikke, skal du følge vejledningen på Wifi Manager -siden.

Wifi Manager vil forsøge at oprette forbindelse til dit SSID ved opstart, hvilket det ikke kan, da du aldrig har fortalt det dit SSID, så det går automatisk i adgangspunkttilstand (eller AP -tilstand) og viser en simpel webside, der beder om dit SSID & Adgangskode. Brug din telefon eller bærbare computer til at forbinde det nyligt tilgængelige trådløse netværk med SSID-navnet "ESP_xxxxxx", hvor "xxxxxx" er en tilfældig (ikke rigtig tilfældig) sekvens. (Komplette instruktioner findes på Wifi Manager -siden.)

Når du er tilsluttet, skal du åbne din webbrowser og pege den på 192.168.4.1, indtaste dit SSID og adgangskode, og klik på Gem.

Du er nu på internettet, og din IoT -enhed har "I" -delen til at fungere!

Trin 10: Endelig forbindelse og test

Endelig forbindelse og test
Endelig forbindelse og test

Helt færdig.

For at tilslutte alt, skal du finde computerens strømknappekabel, hvor det møder bundkortet. Du bør se to rækker af overskrifter med en flok ledninger og stik. Typisk er de mærket ret godt. Tag kontakten ud, og tilslut optoisolatorstikket. Jeg satte nogle "Dupont" stik på mine, så de sluttede til ligesom strømkablet. Polaritet i denne ende er ligegyldigt, men sørg for at have polariteten i den anden ende korrekt - den der går til dit brugerdefinerede bord.

Og det fungerer perfekt. Ved hjælp af MQTT Dash -klienten (eller lignende værktøj) kan du fjernstyre dine computere.

Tryk på den tilsvarende tjek -knap på din app, og når appen hører tilbage fra MQTT -serveren med "off" -meddelelsen, skifter knappen tilbage til ukontrolleret.

Dette har kørt i et par uger uden problemer. Vi lagde mærke til, at tiden for at trække knappen lavt på computerne skulle forlænges. Vi endte med 1 hele sekund. Denne værdi kan eksponeres som en indstillelig værdi via MQTT -serveren, eller du kan hardwire værdien afhængigt af dit ønske.

Held og lykke, og lad mig vide, hvordan din blev.

Anbefalede: