Innehållsförteckning:

Fjärrstängning eller omstart av en dator med ESP8266 -enhet: 10 steg (med bilder)
Fjärrstängning eller omstart av en dator med ESP8266 -enhet: 10 steg (med bilder)

Video: Fjärrstängning eller omstart av en dator med ESP8266 -enhet: 10 steg (med bilder)

Video: Fjärrstängning eller omstart av en dator med ESP8266 -enhet: 10 steg (med bilder)
Video: Stänga elbaklucka via fjärr i Audi A4 (B9) 2024, November
Anonim
Image
Image

För att vara tydlig här stänger vi av DIN dator, inte någon annans dator.

Berättelsen går så här:

En vän till mig på Facebook meddelade mig att han har ett dussin datorer som kör matematik, men varje morgon klockan 3 på morgonen låser de sig. Eftersom datorerna är 30 minuter bort är det en enorm olägenhet att köra två städer över (vi bor i South Dakota) för att strömcykla datorerna. Han frågade, kan jag bygga honom en IoT -enhet som gör att han kan starta om den kränkande datorn från sin bekväma säng?

För att aldrig missa en utmaning gick jag med på att sätta ihop något åt honom. Det här är det projektet.

Genom att använda två bitskiftregistrerade, en ESP8266 ESP01, en handfull lysdioder och några hemgjorda optoisolatorer kostar hela projektet cirka $ 5 om du köper delarna från Kina på eBay. Kanske $ 20 från Amazon.

Detta är en ganska komplex konstruktion med massor av fint lödning. Utan att räkna med mina skruvningar och återlödning tog det mig bättre på 20 timmar att göra, men det blev fantastiskt och fungerade perfekt.

Låt oss börja.

Steg 1: Prototypbräda

Prototypbräda
Prototypbräda
Prototypbräda
Prototypbräda

Starta alltid alla projekt med en prototypbrödbräda. Det är det bästa sättet att avgöra om du har alla komponenter och fungerar som förväntat. Det här projektet är lite komplicerat, så jag rekommenderar starkt att bygga det på en brödbräda innan du går vidare.

Delarna du behöver är:

  • En ESP8266 ESP01 (även om alla ESP8266 -enheter skulle fungera)
  • Två 8-bitars skiftregister, jag använde 74HC595N
  • 16 lysdioder, jag använde stråhatt vita lysdioder som fungerar på 3,3V. Om du använder andra kan du behöva motstånd.
  • Tre 3k3-ohmpulldown-motstånd
  • Bygeltrådar och brödbräda

Du måste också bygga minst en optoisolator. Jag använde svart krympslang, en klar vit LED, ett 220-ohm motstånd och en fotoresistor. Löd 220-ohm motståndet till lysdiodens katod och försegla sedan lysdioden och fotoresistorn inuti krympslangen mot varandra. Men vi kommer till dem i ett senare steg.

Följ kopplingsschemat i nästa steg. Ledningarna är ganska enkla.

Eftersom ESP8266 fungerar med 3,3V, se till att du driver den på rätt sätt

Steg 2: Schema med Will-CAD

Schema med Will-CAD
Schema med Will-CAD

Schemat är ganska enkelt. Vi följer standarduppkopplingen av ett 8-bitars skiftregister. Eftersom jag använder två 8-bitars skiftregister måste de kopplas ihop på sina "klocka" och "lås" -pinnar.

Eftersom ESP01 bara har två GPIO-stift måste vi återanvända TX & RX som utgångar, vilket fungerar bra för våra ändamål. Du kan använda en ESP-12 eller en annan version med mer än två GPIO-stift om du vill ha mer kontroll. Men det kommer att lägga till ytterligare $ 2 till kostnaden för projektet - vilket bara är galet snack.

Vi måste behålla våra 8-bitars skiftregister och ESP01-stift högt uppe på skon, så att de inte gör konstiga saker eller går in i programläge. Jag använde tre 3k3 -motstånd, större eller mindre värden skulle också fungera. Detta värde härleddes från guiderna som pratade om att utnyttja alternativa stift på ESP01.

ESP01 (ESP8266)

  • TX klockstift 3k3 pullup
  • RX spärrstift 3k3 pullup
  • 00 seriell data 3k3 pullup
  • 02 flytande

8-bitars skiftregister (74HC595H)

  • VCC 3.3V
  • OE 3.3V (detta är aktiveringsstiftet)
  • GND GND
  • CLR GND (detta hindrar den tydliga tappen från att rensas)
  • Och lysdioderna, de går till marken.

Steg 3: ESP8266 -kod

ESP8266 -kod
ESP8266 -kod

ESP8266 -koden är ganska enkel. Tyvärr är redaktören i Instructables ganska värdelös, så du vill få koden direkt från Github.

"racks-reboot" -projekt:

github.com/bluemonkeydev/arduino-projects/…

Klassen "SensorBase" finns här. Det krävs om du vill "använda" min kod:

github.com/bluemonkeydev/arduino-projects/…

Det finns några saker att notera. Koden är ganska väl dokumenterad.

  1. Jag är en väldigt lat utvecklare, så jag lägger in all återanvändbar ESP8266 -kod i en klass som kallas "SensorBase". Du hittar det också på Github, länken ovan.
  2. Du måste skriva in din MQTT -mäklares server, användarnamn, lösenord och port. De kan hittas lite längre ner när vi skapar CloudMQTT -tjänsten.
  3. Du behöver INTE följa mitt ämnesyntaxformat. Jag skulle dock rekommendera att följa den.
  4. Det finns inget smart med den här koden. Det är väldigt pragmatiskt.

Steg 4: Perfboard -layout

Perfboard -layout
Perfboard -layout

Detta projekt kommer att installeras på ett mini-datacenter, så jag bestämde mig för att bara använda perf board för den slutliga designen. Perfboard fungerar utmärkt för sådana här projekt och är lätt att layouta med hjälp av en bit anpassat grafpapper. Här ser du min layout. Naturligtvis kan du välja att göra det annorlunda.

Mitt projekt behövde två 8-bitars skiftregister, så jag började med deras positionering i mitten. Jag visste att mina kontakter till optoisolatorer skulle vara enkla kvinnliga rubriker för tillfället, även om det inte är en idealisk lösning.

Jag älskar lysdioder, och detta behövde ha en lysdiod för varje optoisolatorkrets. Jag visste att testfasen skulle vara oändligt lättare om jag kunde få omedelbar feedback direkt på tavlan, men jag visste också att dessa lysdioder skulle orsaka enorm smärta vid lödning. Och det var de. Jag hade inget mindre än 5 mm lysdioder, så jag var tvungen att skjuta dem. Min slutliga design gjorde ett zig-zag-mönster av katoderna eftersom jag inte ville köra anoderna över jordledningarna. Detta visade sig vara en bra design. LED-trådarna ansluter ovanför 8-bitars skiftregistren och körs på brädans ovansida med skärmade trådar för enkelhetens skull.

För ström ville jag köra den från en gammal USB -kabel för att få ström direkt från en av datorerna. Detta kommer att fungera bra eftersom USB -portarna vanligtvis drivs även om datorn är avstängd. Jag använde en LM317 linjär spänningsregulator för att minska effekten till 3,3V. En 3.3V regulator skulle också ha fungerat, men jag hade inte en.

För att undvika att alltför många trådar korsade körde jag några ledningar på ovansidan av perfbrädet, vilket jag försöker undvika. Tänk på att de genomgående hålen är ledande, så använd skärmade trådar för att undvika shorts. Dessa anslutningar som äger rum på toppen av tavlan visas med streckade linjer på mitt diagram.

Steg 5: Lödskiva

Lödt bräda
Lödt bräda

Min slutlödda bräda blev riktigt bra. Som förväntat tog lysdioderna på toppen mycket arbete för att bli lödda korrekt utan några shorts. När du har lödt lysdioderna och rubrikerna, använd din multimeter för att avgöra om du har några shorts. Det är bäst att ta reda på det nu.

Annat än lysdioderna gick allt annat ganska bra. Jag var tvungen att göra om några anslutningar, men med vissa patienter, lite felsökning och lite omlödning kommer allt att fungera bra.

Du kommer att se på det här fotot att jag också har anslutit optoisolatorerna, som jag använde 8-trådars CAT-5-kabel. Anledningen är att den är superbillig, lätt att skarva och är väl märkt mer om dessa optoisolatorer i nästa steg.

Steg 6: Tillverka optoisolatorer

Att göra optoisolatorer
Att göra optoisolatorer

Naturligtvis behöver du inte göra egna optoisolatorer. Många kommersiella versioner är tillgängliga för slantar styck och skulle fungera bättre eftersom de skulle driva datorns kraftledningar direkt utan motstånd. Men jag hade ingen optoisolator, så jag var tvungen att göra min med en LED, motstånd och fotoresistor.

Efter att ha bekräftat att i en hylsa med svarta krympslangar kunde "av" -motståndet med mindre än min mätare avläsa och "på" -motståndet var några tusen ohm, jag gjorde ett sista test på ett gammalt moderkort. Det fungerade perfekt för mig. Jag misstänker att vissa datorer kan vara mer eller mindre känsliga, men på de moderkort som jag har testat fungerade denna konfiguration bra.

Du kommer att vilja använda en riktigt ljus vit LED för att få maximalt ljus in i fotoresistorn. Jag försökte inte många alternativ, men den ljusa vita lysdioden och ett 220-ohm motstånd fungerar definitivt bra.

Steg 7: CloudMQTT -installation

CloudMQTT -installation
CloudMQTT -installation
CloudMQTT -installation
CloudMQTT -installation
CloudMQTT -installation
CloudMQTT -installation

Varje MQTT -tjänst eller liknande IoT -tjänst som Blynk skulle fungera, men jag väljer att använda CloudMQTT för detta projekt. Jag har använt CloudeMQTT för många projekt tidigare, och eftersom det här projektet kommer att överlämnas till en vän är det vettigt att skapa ett nytt konto som också kan överföras.

Skapa ett CloudMQTT -konto och skapa sedan en ny "instans", välj "Cute Cat" -storlek eftersom vi bara använder det för kontroll, ingen loggning. CloudMQTT ger dig ett servernamn, användarnamn, lösenord och portnummer. (Observera att portnumret inte är standard MQTT -port). Överför alla dessa värden till din ESP8266 -kod på motsvarande platser, se till att fallet är korrekt. (seriöst, kopiera/klistra in värdena)

Du kan använda "Websocket UI" -panelen på CloudMQTT för att se enhetens anslutningar, knapptryckningar och, i det udda scenariot, att du får ett fel, ett felmeddelande.

Du kommer att behöva dessa inställningar när du konfigurerar Android MQTT -klienten också, så notera värdena om du behöver det. Förhoppningsvis är ditt lösenord inte för komplicerat att skriva in på din telefon. Du kan inte ställa in det i CloudMQTT.

Steg 8: MQTT Android -klient

MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client

Vilken som helst Android (eller iPhone) MQTT -klient skulle fungera, men jag gillar MQTT Dash. MQTT Dash är lätt att använda, mycket lyhörd och har alla de alternativ du behöver.

När du har installerat konfigurerar du en MQTT -server, fyller på servern, porten, användarnamnet och lösenordet med instansens värden, INTE din inloggningsinformation till CloudMQTT. Du kan använda vilket klientnamn du vill.

Om du har skrivit allt korrekt kommer det automatiskt att ansluta till din MQTT -server och visa dig en tom skärm eftersom du inte har ställt in några knappar, text eller meddelanden ännu. På den tomma skärmen ser du ett "+" i det övre högra hörnet, klickar på det och väljer sedan "Välj/knapp". Vi kommer att lägga till en "Välj/knapp" per dator, så 8 eller 16 eller mindre.

Om du fick ett anslutningsfel har du ett av värdena fel. Gå tillbaka och dubbelkolla

Varje dator använder ämnet som motsvarar de värden som anges i din kod. Om du följde mina konventioner skulle de vara "cluster/rack-01/computer/01". Det är bäst att ändra värdena "på" och "av" för att matcha vår kod. Istället för "0" och "1", använd värdena "på" respektive "av". Jag skulle också rekommendera att använda QoS (1) eftersom vi väntar en bekräftelse från servern.

När du har lagt till en kan du trycka länge och använda alternativet "klon" för att skapa ett gäng och sedan ändra deras namn och ämne.

Lätt nog.

Steg 9: Få din ESP8266 på Wifi

Skaffa din ESP8266 på Wifi
Skaffa din ESP8266 på Wifi

Med hjälp av ESP8266 Wifi Manager -modulen är det enkelt att få vår enhet på Wifi. Om du använde min SensorBase-klass är den redan inbyggd. Om inte, följ instruktionerna på Wifi Manager -sidan.

Wifi Manager kommer att försöka ansluta till ditt SSID vid start, vilket det inte kan eftersom du aldrig berättat det för ditt SSID, så det kommer automatiskt att gå till åtkomstpunktsläge (eller AP -läge) och visa en enkel webbsida som ber om ditt SSID & Lösenord. Använd din telefon eller bärbara dator för att ansluta det nyligen tillgängliga trådlösa nätverket med SSID-namnet "ESP_xxxxxx", där "xxxxxx" är en slumpmässig (egentligen inte slumpmässig) sekvens. (Fullständiga instruktioner finns på Wifi Manager -sidan.)

När du är ansluten, öppna din webbläsare och peka den till 192.168.4.1, skriv in ditt SSID och lösenord och klicka på spara.

Du är nu på internet och din IoT -enhet har "jag" -delen fungerande!

Steg 10: Slutlig anslutning och testning

Slutlig anslutning och testning
Slutlig anslutning och testning

Klart.

För att ansluta allt, lokalisera datorns strömknappskabel där den möter moderkortet. Du bör se två rader med rubriker med ett gäng ledningar och kontakter. Vanligtvis är de märkta ganska bra. Koppla ur strömbrytaren och sätt i optoisolatorpluggen. Jag satte några "Dupont" -kontakter på mina, så de anslöt precis som strömkabeln. Polaritet i detta ändamål spelar ingen roll, men se till att du har polariteten i den andra änden korrekt - den som går till ditt anpassade kort.

Och det fungerar perfekt. Med MQTT Dash -klienten (eller liknande verktyg) kan du fjärrstyra dina datorer.

Tryck på motsvarande kontrollknapp på din app, och när appen hörs tillbaka från MQTT -servern med "av" -meddelandet ändras knappen till att vara avmarkerad.

Detta har körts i några veckor utan problem. Vi märkte att tiden för att dra knappen lågt på datorerna måste förlängas. Vi slutade med 1 hel sekund. Detta värde kan exponeras som ett inställbart värde via MQTT -servern, eller så kan du koppla ihop värdet beroende på din önskan.

Lycka till, och låt mig veta hur din blev.

Rekommenderad: