Innholdsfortegnelse:

Slå av eller start datamaskinen på nytt med ESP8266 -enhet: 10 trinn (med bilder)
Slå av eller start datamaskinen på nytt med ESP8266 -enhet: 10 trinn (med bilder)

Video: Slå av eller start datamaskinen på nytt med ESP8266 -enhet: 10 trinn (med bilder)

Video: Slå av eller start datamaskinen på nytt med ESP8266 -enhet: 10 trinn (med bilder)
Video: 10 убеждений, от которых НЕОБХОДИМО отказаться 2024, Juli
Anonim
Image
Image

For å være tydelig her, slår vi av datamaskinen din, ikke andres datamaskin.

Historien går slik:

En venn av meg på Facebook sendte meg en melding og sa at han har et titalls datamaskiner som kjører mye matematikk, men hver morgen klokken 03.00 låser de seg. Siden datamaskinene er 30 minutter unna, er det en stor plage å kjøre to byer over (vi bor i South Dakota) for å slå av og på datamaskinene. Han spurte, kunne jeg bygge ham en IoT -enhet som ville tillate ham å starte datamaskinen på nytt fra komforten i den koselige sengen sin?

For aldri å gå glipp av en utfordring, sa jeg ja til å sette sammen noe for ham. Dette er det prosjektet.

Ved å bruke to bit-shift-registrerte, en ESP8266 ESP01, en håndfull lysdioder og noen hjemmelagde optoisolatorer, koster hele prosjektet omtrent $ 5 hvis du kjøper delene fra Kina på eBay. Kanskje $ 20 fra Amazon.

Dette er en ganske kompleks konstruksjon med mye fint lodding. Uten å telle skruddene og loddene mine, tok det meg bedre på 20 timer å lage, men det ble fantastisk og fungerte perfekt.

La oss begynne.

Trinn 1: Prototypebrett

Prototypebrett
Prototypebrett
Prototypebrett
Prototypebrett

Start alltid alle prosjekter med et prototype brødbrett. Det er den beste måten å avgjøre om du har alle komponentene og fungerer som forventet. Dette prosjektet er litt komplisert, så jeg anbefaler på det sterkeste å bygge det på et brødbrett før du går videre.

Delene du trenger er:

  • Én ESP8266 ESP01 (selv om enhver ESP8266 -enhet ville fungere)
  • To 8-biters skiftregistre, jeg brukte 74HC595N
  • 16 lysdioder, jeg brukte stråhatte hvite lysdioder som fungerer på 3,3V. Hvis du bruker andre, kan du trenge motstander.
  • Tre 3k3-ohmpulldown-motstander
  • Stikkledninger og brødbrett

Du må også bygge minst en optoisolator. Jeg brukte svart krympeslange, en lys hvit LED, en 220 ohm motstand og en fotoresistor. Lodd 220-ohm motstanden til LED-katoden og forsegle deretter LED og fotoresistor inne i krympeslangen mot hverandre. Men vi kommer til dem i et senere trinn.

Følg koblingsskjemaet som er gitt i neste trinn. Ledningen er ganske grei.

Fordi ESP8266 fungerer på 3,3V, må du sørge for at du driver den riktig

Trinn 2: Skjema ved bruk av Will-CAD

Skjema ved bruk av Will-CAD
Skjema ved bruk av Will-CAD

Skjematikken er ganske grei. Vi følger standardoppbyggingen av et 8-biters skiftregister. Siden jeg bruker to 8-biters skiftregistre, må de lenkes sammen på klokke- og låsepinnene.

Fordi ESP01 bare har to GPIO-pinner, må vi bruke TX & RX som utganger på nytt, noe som fungerer bra for våre formål. Du kan bruke en ESP-12 eller en annen versjon med mer enn to GPIO-pinner hvis du vil ha mer kontroll. Men det vil legge til ytterligere $ 2 til kostnaden for prosjektet - som bare er gal.

Vi må beholde våre 8-bits skiftregistre og ESP01-pinner trukket høyt på støvelen, slik at de ikke gjør rare ting eller går inn i programmodus. Jeg brukte tre 3k3 -motstander, større eller mindre verdier ville også fungere. Denne verdien ble avledet fra guidene som snakket om å utnytte alternative pinner på ESP01.

ESP01 (ESP8266)

  • TX klokkepinne 3k3 pullup
  • RX låsepinne 3k3 pullup
  • 00 seriell data 3k3 pullup
  • 02 flytende

8-biters skiftregister (74HC595H)

  • VCC 3.3V
  • OE 3.3V (dette er aktiveringsnålen)
  • GND GND
  • CLR GND (dette hindrer den klare tappen fra å rydde)
  • Og lysdiodene, de går til bakken.

Trinn 3: ESP8266 -kode

ESP8266 -kode
ESP8266 -kode

ESP8266 -koden er ganske grei. Dessverre er redaktøren i Instructables ganske ubrukelig, så du vil få koden direkte fra Github.

"racks-reboot" -prosjekt:

github.com/bluemonkeydev/arduino-projects/…

"SensorBase" -klassen er tilgjengelig her. Det er påkrevd hvis du vil "bruke" koden min:

github.com/bluemonkeydev/arduino-projects/…

Det er et par ting å merke seg. Koden er ganske godt dokumentert.

  1. Jeg er en veldig lat utvikler, så jeg legger all gjenbrukbar ESP8266 -kode inn i en klasse som heter "SensorBase." Du finner det også på Github, lenken ovenfor.
  2. Du må skrive inn MQTT -meglers server, brukernavn, passord og port. Disse finner du litt lenger ned når vi oppretter CloudMQTT -tjenesten.
  3. Du trenger IKKE å følge emnets syntaksformat. Imidlertid vil jeg anbefale å følge den.
  4. Det er ikke noe smart med denne koden. Det er veldig pragmatisk.

Trinn 4: Perfboard -oppsett

Perfboard Layout
Perfboard Layout

Dette prosjektet vil bli installert på et mini-datasenter, så jeg bestemte meg for å bare bruke perf-bord for den endelige designen. Perfboard fungerer utmerket for prosjekter som dette og er lett å sette opp med et stykke tilpasset grafpapir. Her vil du se oppsettet mitt. Selvfølgelig kan du velge å gjøre det annerledes.

Prosjektet mitt trengte to 8-biters skiftregistre, så jeg begynte med deres posisjonering i midten. Jeg visste at kontaktene mine til optoisolatorer ville være enkle kvinnelige overskrifter for nå, selv om det ikke er en ideell løsning.

Jeg elsker lysdioder, og dette måtte ha en LED for hver optoisolatorkrets. Jeg visste at testfasen ville være uendelig lettere hvis jeg kunne få umiddelbar tilbakemelding direkte på tavlen, men jeg visste også at disse lysdiodene ville forårsake store smerter å lodde. Og det var de. Jeg hadde ikke noe mindre enn 5 mm lysdioder, så jeg måtte forskyve dem. Min endelige design laget et sikksakk-mønster av katodene fordi jeg ikke ønsket å kjøre anodene over jordledningene. Dette viste seg å være en god design. LED-ledningene henger sammen over 8-biters skiftregistre og kjører på brettets topp med skjermede ledninger for enkelhet.

For strøm ville jeg kjøre den fra en gammel USB -kabel for å få strøm direkte fra en av datamaskinene. Dette vil fungere fint fordi USB -portene vanligvis er drevet selv om datamaskinen er slått av. Jeg brukte en LM317 lineær spenningsregulator for å redusere effekten til 3,3V. En 3.3V regulator ville også fungert, men jeg hadde ikke en.

For å unngå at for mange ledninger krysset, kjørte jeg noen få ledninger på oversiden av perfbrettet, som jeg prøver å unngå. Husk at de gjennomgående hullene er ledende, så bruk skjermede ledninger for å unngå shorts. Disse forbindelsene som finner sted på toppen av brettet er vist med stiplete linjer på diagrammet mitt.

Trinn 5: Loddet brett

Loddet brett
Loddet brett

Det siste loddet brettet mitt ble veldig bra. Som forventet tok lysdiodene på toppen mye arbeid for å bli loddet riktig uten shorts. Etter at du har loddet lysdiodene og overskriftene, bruker du multimeteret til å avgjøre om du har noen shorts. Det er best å finne ut nå.

Annet enn lysdiodene, alt annet gikk ganske bra. Jeg måtte gjøre om noen tilkoblinger, men med noen pasienter, noen feilsøking og litt lodding vil alt fungere bra.

Du vil se fra dette bildet at jeg også har koblet til optoisolatorene, som jeg brukte 8-leder CAT-5-kabel. Årsaken er at den er super billig, lett å spleise, og er godt merket-mer om de optoisolatorene i neste trinn.

Trinn 6: Lag optoisolatorer

Å lage optoisolatorer
Å lage optoisolatorer

Selvfølgelig trenger du ikke lage dine egne optoisolatorer. Mange kommersielle versjoner er tilgjengelige for krone hver og vil fungere bedre siden de ville kjøre datamaskinens kraftledninger direkte uten motstand. Men jeg hadde ingen optoisolator, så jeg måtte lage min ved hjelp av en LED, motstand og fotoresistor.

Etter å ha bekreftet at i en hylse med svart krympeslange, "av" -motstanden med mindre enn min måler kunne lese og "på" -motstanden var noen tusen ohm, gjorde jeg en siste test på et gammelt hovedkort. Det fungerte perfekt for meg. Jeg mistenker at noen datamaskiner kan være mer eller mindre følsomme, men på hovedkortene jeg har testet, fungerte denne konfigurasjonen bra.

Du vil bruke en virkelig lys hvit LED for å få maksimalt lys inn i fotoresistoren. Jeg prøvde ikke mange alternativer, men den lyse hvite LED-en og en 220-ohm motstand fungerer definitivt bra.

Trinn 7: CloudMQTT -oppsett

CloudMQTT -oppsett
CloudMQTT -oppsett
CloudMQTT -oppsett
CloudMQTT -oppsett
CloudMQTT -oppsett
CloudMQTT -oppsett

Enhver MQTT -tjeneste, eller lignende IoT -tjeneste som Blynk, ville fungere, men jeg velger å bruke CloudMQTT for dette prosjektet. Jeg har brukt CloudeMQTT til mange prosjekter tidligere, og siden dette prosjektet vil bli overlevert til en venn, er det fornuftig å opprette en ny konto som også kan overføres.

Opprett en CloudMQTT -konto, og opprett deretter en ny "forekomst", velg størrelsen "Søt katt" siden vi bare bruker den til kontroll, ingen logging. CloudMQTT gir deg et servernavn, brukernavn, passord og portnummer. (Vær oppmerksom på at portnummeret ikke er standard MQTT -port). Overfør alle disse verdiene til ESP8266 -koden din på de tilsvarende stedene, og sørg for at saken er riktig. (seriøst, kopier/lim inn verdiene)

Du kan bruke "Websocket UI" -panelet på CloudMQTT for å se enhetens tilkoblinger, knappetrykk og, i det merkelige scenariet, at du får en feil, en feilmelding.

Du MÅ også bruke disse innstillingene når du konfigurerer Android MQTT -klienten, så merk verdiene hvis du trenger det. Forhåpentligvis er passordet ditt ikke for komplisert til å skrive inn på telefonen. Du kan ikke angi det i CloudMQTT.

Trinn 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 liker MQTT Dash. MQTT Dash er enkel å bruke, veldig lydhør og har alle alternativene du trenger.

Når den er installert, konfigurerer du en MQTT -server, fyller ut serveren, porten, brukernavnet og passordet med forekomstens verdier, IKKE påloggingsinformasjonen din til CloudMQTT. Du kan bruke hvilket som helst klientnavn du vil ha.

Hvis du skrev alt riktig, kobles det automatisk til MQTT -serveren og viser deg en tom skjerm siden du ikke har konfigurert knapper, tekst eller meldinger ennå. På den tomme skjermen ser du en "+" øverst i høyre hjørne, klikker på den og velger deretter "Velg/knapp". Vi vil legge til en "Velg/knapp" per datamaskin, så 8 eller 16 eller færre.

Hvis du fikk en tilkoblingsfeil, har du en av verdiene feil. Gå tilbake og dobbeltsjekk

Hver datamaskin vil bruke emnet som tilsvarer verdiene som er angitt i koden din. Hvis du fulgte mine konvensjoner, ville de være "cluster/rack-01/computer/01". Det er best å endre "på" og "av" verdiene for å matche vår kode. I stedet for "0" og "1" bruker du henholdsvis verdiene "på" og "av". Jeg vil også anbefale å bruke QoS (1) siden vi venter en bekreftelse fra serveren.

Etter å ha lagt til en, kan du trykke lenge på og bruke "klon" -alternativet for å lage en haug, og deretter endre navn og emne.

Enkelt nok.

Trinn 9: Få ESP8266 på Wifi

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

Ved å bruke ESP8266 Wifi Manager -modulen er det lett å få enheten vår til Wifi. Hvis du brukte min SensorBase-klasse, er den allerede innebygd. Hvis ikke, følg instruksjonene på Wifi Manager -siden.

Wifi Manager vil prøve å koble til SSID -en din ved oppstart, noe den ikke kan, siden du aldri har fortalt den SSID -en din, så den går automatisk inn i tilgangspunktmodus (eller AP -modus) og viser en enkel webside som ber om SSID -en din. & Passord. Bruk telefonen eller den bærbare datamaskinen til å koble til det nylig tilgjengelige trådløse nettverket med SSID-navnet "ESP_xxxxxx", der "xxxxxx" er en tilfeldig (egentlig ikke tilfeldig) sekvens. (Fullstendige instruksjoner finner du på Wifi Manager -siden.)

Når du er tilkoblet, åpner du nettleseren og peker den til 192.168.4.1, skriver inn SSID og passord, og klikker lagre.

Du er nå på internett, og IoT -enheten din fungerer med "I" -delen!

Trinn 10: Endelig tilkobling og testing

Endelig tilkobling og testing
Endelig tilkobling og testing

Ferdig.

For å koble til alt, finn datamaskinens strømknappkabel der den møter hovedkortet. Du bør se to rader med overskrifter med en haug med ledninger og kontakter. Vanligvis er de merket ganske bra. Koble fra bryteren og koble til optoisolatorpluggen. Jeg satte noen "Dupont" -plugger på min, så de plugget inn akkurat som strømkabelen. Polaritet i denne enden spiller ingen rolle, men sørg for at du har polariteten i den andre enden riktig - den som går til ditt tilpassede bord.

Og det fungerer perfekt. Ved å bruke MQTT Dash -klienten (eller lignende verktøy) kan du eksternt drive datamaskinene dine.

Trykk på den tilhørende kontrollknappen på appen din, og når appen hører tilbake fra MQTT -serveren med "av" -meldingen, endres knappen til ukontrollert.

Dette har pågått i noen uker uten problemer. Vi la merke til at tiden for å trekke knappen lavt på datamaskinene måtte forlenges. Vi endte med 1 hele sekund. Denne verdien kan avsløres som en innstillbar verdi gjennom MQTT -serveren, eller du kan koble verdien til verdien, avhengig av ønsket ditt.

Lykke til, og fortell meg hvordan din ble.

Anbefalt: