Spisu treści:

Zdalne wyłączanie lub ponowne uruchamianie komputera z urządzeniem ESP8266: 10 kroków (ze zdjęciami)
Zdalne wyłączanie lub ponowne uruchamianie komputera z urządzeniem ESP8266: 10 kroków (ze zdjęciami)

Wideo: Zdalne wyłączanie lub ponowne uruchamianie komputera z urządzeniem ESP8266: 10 kroków (ze zdjęciami)

Wideo: Zdalne wyłączanie lub ponowne uruchamianie komputera z urządzeniem ESP8266: 10 kroków (ze zdjęciami)
Wideo: Tutorial - Jak zdalnie sterować i zarządzać sprzętem IT/AV - NaViSet Administrator 2, odc. 2 2024, Lipiec
Anonim
Image
Image

Aby było jasne, wyłączamy TWÓJ komputer, a nie komputer innej osoby.

Historia wygląda tak:

Mój przyjaciel na Facebooku wysłał mi wiadomość i powiedział, że ma tuzin komputerów, na których działa matematyka, ale każdego ranka o 3 nad ranem zamykają się. Ponieważ komputery są oddalone o 30 minut, przejechanie dwóch miast (mieszkamy w Południowej Dakocie) w celu włączenia zasilania komputerów jest bardzo uciążliwe. Zapytał, czy mógłbym zbudować dla niego urządzenie IoT, które pozwoliłoby mu zrestartować komputer w zaciszu wygodnego łóżka?

Aby nigdy nie przegapić żadnego wyzwania, zgodziłem się coś dla niego złożyć. To jest ten projekt.

Korzystając z dwóch zarejestrowanych bitów, ESP8266 ESP01, kilku diod LED i kilku domowych optoizolatorów, cały projekt kosztuje około 5 USD, jeśli kupisz części z Chin na eBayu. Może 20 dolarów od Amazona.

Jest to dość złożona konstrukcja z dużą ilością drobnego lutowania. Nie licząc moich wkręceń i ponownego lutowania, zajęło mi to prawie 20 godzin, ale wyszło niesamowicie i działało idealnie.

Zaczynajmy.

Krok 1: Płytka prototypowa

Płytka prototypowa
Płytka prototypowa
Płytka prototypowa
Płytka prototypowa

Zawsze rozpoczynaj wszystkie projekty od prototypowej płytki prototypowej. Jest to najlepszy sposób na ustalenie, czy masz wszystkie komponenty i czy działasz zgodnie z oczekiwaniami. Ten projekt jest nieco skomplikowany, więc bardzo polecam zbudowanie go na tablicy prototypowej przed przejściem do przodu.

Potrzebne części to:

  • Jeden ESP8266 ESP01 (chociaż każde urządzenie ESP8266 zadziała)
  • Dwa 8-bitowe rejestry przesuwne, użyłem 74HC595N
  • 16 diod LED, ja użyłem białych diod typu słomkowy kapelusz, które działają na 3,3V. Jeśli używasz innych, możesz potrzebować rezystorów.
  • Trzy rezystory 3k3-ohmpulldown
  • Przewody połączeniowe i płytka stykowa

Będziesz także musiał zbudować co najmniej jeden optoizolator. Użyłem czarnej rurki termokurczliwej, jasnej białej diody LED, rezystora 220 omów i fotorezystora. Przylutuj rezystor 220 omów do katody diody LED, a następnie uszczelnij diodę LED i fotorezystor wewnątrz rurki termokurczliwej naprzeciwko siebie. Ale przejdziemy do nich na późniejszym etapie.

Postępuj zgodnie ze schematem okablowania podanym w następnym kroku. Okablowanie jest dość proste.

Ponieważ ESP8266 działa przy napięciu 3,3 V, upewnij się, że zasilasz go odpowiednio

Krok 2: Schemat za pomocą Will-CAD

Schemat za pomocą Will-CAD
Schemat za pomocą Will-CAD

Schemat jest dość prosty. Postępujemy zgodnie ze standardowym okablowaniem 8-bitowego rejestru przesuwnego. Ponieważ używam dwóch 8-bitowych rejestrów przesuwnych, muszą one być połączone ze sobą na swoich pinach „zegar” i „zatrzask”.

Ponieważ ESP01 ma tylko dwa piny GPIO, musimy ponownie wykorzystać TX i RX jako wyjścia, co działa dobrze dla naszych celów. Możesz użyć ESP-12 lub innej wersji z więcej niż dwoma pinami GPIO, jeśli chcesz mieć większą kontrolę. Ale to doda kolejne 2 dolary do kosztów projektu - co jest tylko szaloną gadką.

Musimy trzymać nasze 8-bitowe rejestry przesuwne i piny ESP01 na wysokim poziomie podczas rozruchu, aby nie robiły dziwnych rzeczy ani nie przechodziły w tryb programowania. Użyłem trzech rezystorów 3k3, większe lub mniejsze wartości też by działały. Ta wartość została wyprowadzona z przewodników mówiących o wykorzystaniu alternatywnych pinów w ESP01.

ESP01 (ESP8266)

  • Pin zegara TX 3k3 pullup
  • Zatrzask RX 3k3 pullup
  • 00 dane szeregowe 3k3 pullup
  • 02 pływający

8-bitowy rejestr przesuwny (74HC595H)

  • VCC 3,3 V
  • OE 3.3V (to jest pin włączający)
  • GND GND
  • CLR GND (to zapobiega wyczyszczeniu jasnego pinu)
  • A diody LED idą do masy.

Krok 3: Kod ESP8266

Kod ESP8266
Kod ESP8266

Kod ESP8266 jest dość prosty. Niestety, edytor w Instructables jest dość bezużyteczny, więc będziesz chciał pobrać kod bezpośrednio z Github.

Projekt "restartowanie stojaków":

github.com/bluemonkeydev/arduino-projects/…

Klasa „SensorBase” jest dostępna tutaj. Jest to wymagane, jeśli chcesz "użyć" mojego kodu:

github.com/bluemonkeydev/arduino-projects/…

Należy zwrócić uwagę na kilka rzeczy. Kod jest dość dobrze udokumentowany.

  1. Jestem bardzo leniwym programistą, więc umieściłem cały kod wielokrotnego użytku ESP8266 w klasie o nazwie „SensorBase”. Możesz to również znaleźć na Github, link powyżej.
  2. Musisz wpisać serwer, nazwę użytkownika, hasło i port brokera MQTT. Można je znaleźć nieco dalej, gdy tworzymy usługę CloudMQTT.
  3. NIE musisz przestrzegać mojego formatu składni tematu. Jednak polecam go śledzić.
  4. W tym kodzie nie ma nic mądrego. To bardzo pragmatyczne.

Krok 4: Układ płyty perforowanej

Układ płyty perforowanej
Układ płyty perforowanej

Ten projekt zostanie zainstalowany w mini-centrum danych, więc zdecydowałem się użyć płytki perf do ostatecznego projektu. Perfboard świetnie sprawdza się w takich projektach i można go łatwo układać za pomocą kawałka niestandardowego papieru milimetrowego. Tutaj zobaczysz mój układ. Oczywiście możesz zrobić to inaczej.

Mój projekt potrzebował dwóch 8-bitowych rejestrów przesuwnych, więc zacząłem od ich pozycjonowania pośrodku. Wiedziałem, że moje złącza do optoizolatorów będą na razie prostymi gniazdami żeńskimi, choć nie jest to idealne rozwiązanie.

Uwielbiam diody LED, a to musiało mieć diodę LED dla każdego obwodu optoizolatora. Wiedziałem, że faza testów byłaby nieskończenie łatwiejsza, gdybym mógł uzyskać natychmiastową informację zwrotną bezpośrednio na płytce, ale wiedziałem również, że te diody LED sprawią ogromny ból podczas lutowania. I byli. Nie miałem niczego mniejszego niż diody 5mm, więc musiałem je rozłożyć. Mój ostateczny projekt wykonał zygzakowaty wzór katod, ponieważ nie chciałem prowadzić anod po przewodach uziemiających. Okazało się to dobrym projektem. Przewody LED łączą się nad 8-bitowymi rejestrami przesuwnymi i biegną na górze płyty z ekranowanymi przewodami dla uproszczenia.

Do zasilania chciałem uruchomić go ze starego kabla USB, aby był zasilany bezpośrednio z jednego z komputerów. Będzie to działać dobrze, ponieważ porty USB są zwykle zasilane, nawet jeśli komputer jest wyłączony. Użyłem liniowego regulatora napięcia LM317, aby zmniejszyć moc do 3,3V. Równie dobrze działałby regulator 3,3 V, ale go nie miałem.

Aby uniknąć zbyt wielu krzyżujących się przewodów, poprowadziłem kilka przewodów na górnej stronie płytki perf, czego staram się unikać. Należy pamiętać, że otwory przelotowe są przewodzące, więc używaj ekranowanych przewodów, aby uniknąć zwarć. Te połączenia zachodzące na górze płytki są pokazane liniami przerywanymi na moim schemacie.

Krok 5: Płytka lutowana

Płytka lutowana
Płytka lutowana

Moja ostatnia lutowana płytka wypadła naprawdę dobrze. Zgodnie z oczekiwaniami, diody na górze wymagały dużo pracy, aby poprawnie zlutować bez żadnych zwarć. Po przylutowaniu diod LED i nagłówków, używając multimetru, aby określić, czy masz jakiekolwiek zwarcia. Najlepiej już teraz.

Poza diodami wszystko inne poszło całkiem nieźle. Musiałem przerobić kilka połączeń, ale z niektórymi pacjentami, trochę debugowania i trochę ponownego lutowania, wszystko będzie działać dobrze.

Na tym zdjęciu zobaczysz, że podłączyłem też optoizolatory, którymi użyłem 8-żyłowego kabla CAT-5. Powodem jest to, że jest super tani, łatwy do łączenia i jest dobrze oznaczony - więcej o tych optoizolatorach w następnym kroku.

Krok 6: Tworzenie Optoizolatorów

Dokonywanie Optoizolatorów
Dokonywanie Optoizolatorów

Oczywiście nie musisz tworzyć własnych optoizolatorów. Wiele komercyjnych wersji jest dostępnych za grosze za sztukę i działałoby lepiej, ponieważ bezpośrednio zasilałyby linie energetyczne komputera bez żadnego oporu. Ale nie miałem żadnego optoizolatora, więc musiałem zrobić swój za pomocą diody LED, rezystora i fotorezystora.

Po potwierdzeniu, że w rękawie z czarnej rurki termokurczliwej rezystancja „wyłączenia” była mniejsza niż odczytany przez mój miernik, a rezystancja „włączenia” wynosiła kilka tysięcy omów, wykonałem ostateczny test na starej płycie głównej. U mnie zadziałało idealnie. Podejrzewam, że niektóre komputery mogą być mniej lub bardziej wrażliwe, ale na płytach głównych, które testowałem, ta konfiguracja działała dobrze.

Będziesz chciał użyć naprawdę jasnej białej diody LED, aby uzyskać maksymalne światło do fotorezystora. Nie próbowałem wielu opcji, ale jasna biała dioda LED i rezystor 220-omowy zdecydowanie działają dobrze.

Krok 7: Konfiguracja CloudMQTT

Konfiguracja CloudMQTT
Konfiguracja CloudMQTT
Konfiguracja CloudMQTT
Konfiguracja CloudMQTT
Konfiguracja CloudMQTT
Konfiguracja CloudMQTT

Dowolna usługa MQTT lub podobna usługa IoT, taka jak Blynk, będzie działać, ale w tym projekcie wybieram CloudMQTT. W przeszłości korzystałem z CloudeMQTT do wielu projektów, a ponieważ ten projekt zostanie przekazany znajomemu, sensowne jest utworzenie nowego konta, które można również przenieść.

Utwórz konto CloudMQTT, a następnie utwórz nową „instancję”, wybierz rozmiar „Cute Cat”, ponieważ używamy go tylko do kontroli, bez logowania. CloudMQTT dostarczy ci nazwę serwera, nazwę użytkownika, hasło i numer portu. (Zauważ, że numer portu nie jest standardowym portem MQTT). Przenieś wszystkie te wartości do kodu ESP8266 w odpowiednich lokalizacjach, upewniając się, że wielkość liter jest poprawna. (poważnie, skopiuj/wklej wartości)

Możesz użyć panelu „Websocket UI” w CloudMQTT, aby zobaczyć połączenia urządzenia, naciśnięcia przycisków i, w dziwnym scenariuszu, gdy pojawi się błąd, komunikat o błędzie.

Będziesz potrzebować tych ustawień również podczas konfigurowania klienta Android MQTT, więc zanotuj wartości, jeśli zajdzie taka potrzeba. Mamy nadzieję, że Twoje hasło nie jest zbyt skomplikowane do wpisania na telefonie. Nie możesz tego ustawić w CloudMQTT.

Krok 8: Klient MQTT Android

Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida
Klient MQTT na Androida

Dowolny klient MQTT na Androida (lub iPhone) działałby, ale lubię MQTT Dash. MQTT Dash jest łatwy w użyciu, bardzo responsywny i ma wszystkie potrzebne opcje.

Po zainstalowaniu skonfiguruj serwer MQTT, wypełnij serwer, port, nazwę użytkownika i hasło wartościami instancji, a NIE danymi logowania do CloudMQTT. Możesz użyć dowolnej nazwy klienta.

Jeśli wpisałeś wszystko poprawnie, automatycznie połączy się z serwerem MQTT i wyświetli pusty ekran, ponieważ nie skonfigurowałeś jeszcze żadnych przycisków, tekstu ani wiadomości. Na pustym ekranie zobaczysz „+” w prawym górnym rogu, kliknij go, a następnie wybierz „Wybierz/Przycisk”. Dodamy jeden "Wybierz/Przycisk" na komputer, więc 8 lub 16 lub mniej.

Jeśli otrzymałeś błąd połączenia, masz nieprawidłową jedną z wartości. Wróć i sprawdź jeszcze raz

Każdy komputer użyje tematu odpowiadającego wartościom określonym w kodzie. Jeśli postępowałeś zgodnie z moimi konwencjami, byłyby to „klaster/stelaż-01/komputer/01”. Najlepiej byłoby zmienić wartości „on” i „off”, aby pasowały do naszego kodu. Zamiast " 0 " i " 1 " użyj odpowiednio wartości " on " i " off ". Polecam również korzystanie z QoS(1), ponieważ będziemy oczekiwać potwierdzenia z serwera.

Po dodaniu jednego możesz długo nacisnąć i użyć opcji „klonuj”, aby utworzyć grupę, a następnie zmienić ich nazwę i temat.

Wystarczająco łatwe.

Krok 9: Uzyskanie ESP8266 na Wifi

Pobieranie ESP8266 na Wifi
Pobieranie ESP8266 na Wifi

Korzystając z modułu ESP8266 Wifi Manager, łatwo jest uzyskać nasze urządzenie na Wifi. Jeśli korzystałeś z mojej klasy SensorBase, jest ona już wbudowana. Jeśli nie, postępuj zgodnie z instrukcjami na stronie Menedżera Wifi.

Menedżer Wifi spróbuje połączyć się z twoim identyfikatorem SSID podczas rozruchu, czego nie może, ponieważ nigdy nie podałeś mu swojego identyfikatora SSID, więc automatycznie przejdzie w tryb punktu dostępu (lub tryb AP) i wyświetli prostą stronę internetową z prośbą o podanie identyfikatora SSID & Hasło. Za pomocą telefonu lub laptopa połącz nowo dostępną sieć bezprzewodową o nazwie SSID „ESP_xxxxxx”, gdzie „xxxxxx” to losowa (nie do końca losowa) sekwencja. (Pełne instrukcje można znaleźć na stronie Wifi Manager.)

Po połączeniu otwórz przeglądarkę internetową i wskaż adres 192.168.4.1, wpisz swój identyfikator SSID i hasło, a następnie kliknij Zapisz.

Jesteś teraz w Internecie, a Twoje urządzenie IoT ma działającą część „I”!

Krok 10: Ostateczne połączenie i testowanie

Połączenie końcowe i testowanie
Połączenie końcowe i testowanie

Wszystko gotowe.

Aby wszystko podłączyć, zlokalizuj kabel przycisku zasilania komputera w miejscu, w którym styka się z płytą główną. Powinieneś zobaczyć dwa rzędy nagłówków z wiązką przewodów i złączy. Zazwyczaj są one dość dobrze oznakowane. Odłącz przełącznik i podłącz wtyczkę optoizolatora. Włożyłem kilka wtyczek "Dupont", więc podłączyły się tak samo jak kabel zasilający. Polaryzacja na tym końcu nie ma znaczenia, ale upewnij się, że masz poprawną polaryzację drugiego końca - tego, który trafia na twoją własną płytkę.

I działa idealnie. Korzystając z klienta MQTT Dash (lub podobnego narzędzia), możesz zdalnie zasilać swoje komputery.

Naciśnij odpowiedni przycisk wyboru w swojej aplikacji, a gdy aplikacja otrzyma odpowiedź z serwera MQTT z komunikatem „wyłączony”, przycisk zmieni się z powrotem na niezaznaczony.

Działa to od kilku tygodni bez żadnych problemów. Zauważyliśmy, że czas potrzebny na wyciągnięcie przycisku na komputerach powinien zostać wydłużony. Skończyło się na 1 pełnej sekundzie. Ta wartość może być ujawniona jako wartość ustawialna za pośrednictwem serwera MQTT lub można ją połączyć na stałe, w zależności od potrzeb.

Powodzenia i daj mi znać, jak wyszedł twój.

Zalecana: