Daftar Isi:

Shutdown atau Restart Komputer dari Jarak Jauh Dengan Perangkat ESP8266: 10 Langkah (dengan Gambar)
Shutdown atau Restart Komputer dari Jarak Jauh Dengan Perangkat ESP8266: 10 Langkah (dengan Gambar)

Video: Shutdown atau Restart Komputer dari Jarak Jauh Dengan Perangkat ESP8266: 10 Langkah (dengan Gambar)

Video: Shutdown atau Restart Komputer dari Jarak Jauh Dengan Perangkat ESP8266: 10 Langkah (dengan Gambar)
Video: Cara Mengaktifkan Komputer dari Jarak Jauh 2024, Juli
Anonim
Image
Image

Agar jelas di sini, kami mematikan komputer ANDA, bukan komputer orang lain.

Ceritanya seperti ini:

Seorang teman saya di Facebook mengirim pesan kepada saya dan mengatakan dia memiliki selusin komputer yang menjalankan banyak matematika, tetapi setiap pagi jam 3 pagi, mereka terkunci. Karena komputer berjarak 30 menit, itu adalah gangguan besar untuk mengemudikan dua kota (kita tinggal di South Dakota) untuk menyalakan komputer. Dia bertanya, dapatkah saya membuatkan perangkat IoT yang memungkinkannya untuk me-restart komputer yang mengganggu dari kenyamanan tempat tidurnya yang nyaman?

Tidak pernah melewatkan tantangan, saya setuju untuk mengumpulkan sesuatu untuknya. Ini adalah proyek itu.

Menggunakan dua bit-shift terdaftar, ESP8266 ESP01, beberapa LED, dan beberapa optoisolator buatan sendiri, seluruh proyek berharga sekitar $5 jika Anda membeli suku cadang dari China di eBay. Mungkin $20 dari Amazon.

Ini adalah bangunan yang agak rumit dengan banyak penyolderan yang bagus. Tidak termasuk sekrup dan penyolderan ulang saya, saya membutuhkan bagian yang lebih baik dari 20 jam untuk membuatnya, tetapi ternyata luar biasa dan bekerja dengan sempurna.

Mari kita mulai.

Langkah 1: Papan Prototipe

Papan Prototipe
Papan Prototipe
Papan Prototipe
Papan Prototipe

Selalu mulai semua proyek dengan papan tempat memotong roti prototipe. Ini adalah cara terbaik untuk menentukan apakah Anda memiliki semua komponen dan beroperasi seperti yang diharapkan. Proyek ini agak rumit, jadi saya sangat menyarankan untuk membangunnya di papan tempat memotong roti sebelum melanjutkan.

Bagian-bagian yang Anda perlukan adalah:

  • Satu ESP8266 ESP01 (meskipun perangkat ESP8266 apa pun akan berfungsi)
  • Dua register geser 8-bit, saya menggunakan 74HC595N
  • 16 LED, saya menggunakan LED putih topi jerami yang beroperasi pada 3.3V. Jika Anda menggunakan yang lain, Anda mungkin memerlukan resistor.
  • Tiga resistor 3k3-ohmpulldown
  • Kabel jumper & papan tempat memotong roti

Anda juga perlu membuat setidaknya satu optoisolator. Saya menggunakan tabung hitam menyusut, LED putih terang, resistor 220 ohm, dan fotoresistor. Solder resistor 220-ohm ke katoda LED dan kemudian tutup LED dan fotoresistor di dalam tabung susut yang saling berhadapan. Tapi kita akan membahasnya di langkah selanjutnya.

Ikuti diagram pengkabelan yang disediakan di langkah berikutnya. Pengkabelan cukup mudah.

Karena ESP8266 beroperasi pada 3.3V, pastikan Anda menyalakannya dengan benar

Langkah 2: Skema Menggunakan Will-CAD

Skema Menggunakan Will-CAD
Skema Menggunakan Will-CAD

Skemanya cukup sederhana. Kami mengikuti standar wire-up dari register geser 8-bit. Karena saya menggunakan dua register geser 8-bit, mereka harus dirantai bersama pada pin 'jam' dan 'latch' mereka.

Karena ESP01 hanya memiliki dua pin GPIO, kita perlu menggunakan kembali TX & RX sebagai output, yang berfungsi dengan baik untuk tujuan kita. Anda bisa menggunakan ESP-12 atau versi lain dengan lebih dari dua pin GPIO jika Anda ingin kontrol lebih. Tapi itu akan menambah $2 lagi untuk biaya proyek - yang hanya omong kosong.

Kita perlu menjaga register geser 8-bit dan pin ESP01 tetap tinggi saat boot, sehingga mereka tidak melakukan hal-hal aneh atau masuk ke mode program. Saya menggunakan tiga resistor 3k3, nilai yang lebih besar atau lebih kecil akan berfungsi juga. Nilai ini berasal dari panduan yang berbicara tentang memanfaatkan pin alternatif pada ESP01.

ESP01 (ESP8266)

  • TX jam pin 3k3 pullup
  • RX kait pin 3k3 pullup
  • 00 penarikan data seri 3k3
  • 02 mengambang

Register Geser 8-bit (74HC595H)

  • VCC 3.3V
  • OE 3.3V (ini adalah pin aktifkan)
  • GND GND
  • CLR GND (ini membuat pin clear tidak terhapus)
  • Dan LED, itu ke ground.

Langkah 3: Kode ESP8266

Kode ESP8266
Kode ESP8266

Kode ESP8266 cukup mudah. Sayangnya, editor di Instructables sangat tidak berguna, jadi Anda ingin mendapatkan kodenya langsung dari Github.

proyek "rak-reboot":

github.com/bluemonkeydev/arduino-projects/…

Kelas "SensorBase" tersedia di sini. Diperlukan jika Anda ingin "menggunakan" kode saya:

github.com/bluemonkeydev/arduino-projects/…

Ada beberapa hal yang perlu diperhatikan. Kode ini didokumentasikan dengan cukup baik.

  1. Saya adalah pengembang yang sangat malas, jadi saya memasukkan semua kode ESP8266 yang dapat digunakan kembali ke dalam kelas yang disebut "SensorBase." Anda juga dapat menemukannya di Github, tautan di atas.
  2. Anda harus mengetikkan server, nama pengguna, kata sandi, dan port broker MQTT Anda. Itu dapat ditemukan sedikit lebih jauh ketika kami membuat layanan CloudMQTT.
  3. Anda TIDAK perlu mengikuti format sintaks topik saya. Namun, saya akan merekomendasikan mengikutinya.
  4. Tidak ada yang pintar tentang kode ini. Ini sangat pragmatis.

Langkah 4: Tata Letak Perfboard

Tata Letak Papan Perf
Tata Letak Papan Perf

Proyek ini akan dipasang di pusat data mini, jadi saya memutuskan untuk hanya menggunakan papan perf untuk desain akhir. Perfboard sangat cocok untuk proyek seperti ini dan mudah ditata menggunakan selembar kertas grafik khusus. Di sini Anda akan melihat tata letak saya. Tentu saja, Anda dapat memilih untuk melakukannya secara berbeda.

Proyek saya membutuhkan dua register geser 8-bit, jadi saya mulai dengan pemosisiannya di tengah. Saya tahu bahwa konektor saya ke optoisolator akan menjadi header wanita sederhana untuk saat ini, meskipun itu bukan solusi yang ideal.

Saya suka LED, dan ini perlu memiliki LED untuk setiap rangkaian optoisolator. Saya tahu fase pengujian akan jauh lebih mudah jika saya bisa mendapatkan umpan balik instan langsung di papan, tetapi saya juga tahu bahwa LED itu akan menyebabkan rasa sakit yang luar biasa untuk menyolder. Dan mereka. Saya tidak memiliki LED yang lebih kecil dari 5mm, jadi saya harus membuatnya terhuyung-huyung. Desain akhir saya membuat pola zig-zag dari katoda karena saya tidak ingin menjalankan anoda di atas kabel ground. Ini terbukti menjadi desain yang bagus. Kabel LED bergabung di atas register geser 8-bit dan berjalan di bagian atas papan dengan kabel berpelindung untuk kesederhanaan.

Untuk daya, saya ingin menjalankannya dari kabel USB lama untuk ditenagai langsung dari salah satu komputer. Ini akan berfungsi dengan baik karena port USB biasanya diberi daya meskipun komputer mati. Saya menggunakan regulator tegangan linier LM317 untuk mengurangi daya menjadi 3.3V. Regulator 3.3V akan berfungsi juga, tetapi saya tidak memilikinya.

Untuk menghindari terlalu banyak kabel yang bersilangan, saya memasang beberapa kabel di sisi atas papan kinerja, yang saya coba hindari. Ingatlah bahwa lubang tembus bersifat konduktif, jadi gunakan kabel berpelindung untuk menghindari korsleting. Koneksi yang terjadi di bagian atas papan ditampilkan dalam garis putus-putus pada diagram saya.

Langkah 5: Papan Solder

Papan Solder
Papan Solder

Papan solder terakhir saya ternyata sangat bagus. Seperti yang diharapkan, LED di bagian atas membutuhkan banyak pekerjaan untuk disolder dengan benar tanpa celana pendek. Setelah Anda menyolder LED dan header, gunakan multimeter Anda untuk menentukan apakah Anda memiliki celana pendek. Yang terbaik adalah mencari tahu sekarang.

Selain LED, semuanya berjalan cukup baik. Saya memang harus mengulang beberapa koneksi, tetapi dengan beberapa pasien, beberapa debugging, dan sedikit penyolderan ulang, semuanya akan bekerja dengan baik.

Anda akan melihat dari foto ini bahwa saya telah memasang optoisolator juga, yang saya gunakan kabel CAT-5 8-kawat. Alasannya adalah karena sangat murah, mudah disambung, dan ditandai dengan baik-lebih lanjut tentang optoisolator tersebut pada langkah berikutnya.

Langkah 6: Membuat Optoisolator

Membuat Optoisolator
Membuat Optoisolator

Tentu saja, Anda tidak perlu membuat optoisolator sendiri. Banyak versi komersial tersedia untuk masing-masing sen dan akan beroperasi lebih baik karena mereka akan mengarahkan saluran listrik komputer secara langsung tanpa hambatan apa pun. Tapi, saya tidak punya optoisolator, jadi saya harus membuatnya menggunakan LED, resistor, dan fotoresistor.

Setelah memastikan bahwa di dalam selongsong tabung hitam menyusut, resistansi "mati" dengan kurang dari yang dapat dibaca oleh meter saya dan resistansi "on" adalah beberapa ribu ohm, saya melakukan tes terakhir pada motherboard lama. Ini bekerja dengan sempurna untuk saya. Saya menduga beberapa komputer mungkin kurang lebih sensitif, tetapi pada motherboard yang telah saya uji, konfigurasi ini berfungsi dengan baik.

Anda akan ingin menggunakan LED putih yang sangat terang untuk mendapatkan cahaya maksimum ke dalam fotoresistor. Saya tidak mencoba banyak opsi, tetapi LED putih terang dan resistor 220 ohm pasti berfungsi dengan baik.

Langkah 7: Pengaturan CloudMQTT

Pengaturan CloudMQTT
Pengaturan CloudMQTT
Pengaturan CloudMQTT
Pengaturan CloudMQTT
Pengaturan CloudMQTT
Pengaturan CloudMQTT

Layanan MQTT apa pun, atau layanan IoT serupa seperti Blynk, akan berfungsi, tetapi saya memilih untuk menggunakan CloudMQTT untuk proyek ini. Saya telah menggunakan CloudeMQTT untuk banyak proyek di masa lalu, dan karena proyek ini akan diserahkan kepada seorang teman, masuk akal untuk membuat akun baru yang juga dapat ditransfer.

Buat akun CloudMQTT lalu buat "instance" baru, pilih ukuran "Cute Cat" karena kami hanya menggunakannya untuk kontrol, tanpa pencatatan. CloudMQTT akan memberi Anda nama server, nama pengguna, kata sandi, dan nomor port. (Perhatikan bahwa nomor port bukan port MQTT standar). Transfer semua nilai ini ke kode ESP8266 Anda di lokasi yang sesuai, untuk memastikan bahwa kasusnya benar. (serius, salin/tempel nilainya)

Anda dapat menggunakan panel "Websocket UI" di CloudMQTT untuk melihat koneksi perangkat Anda, penekanan tombol, dan, dalam skenario aneh, Anda mendapatkan kesalahan, pesan kesalahan.

Anda AKAN memerlukan pengaturan ini saat mengonfigurasi klien Android MQTT juga, jadi catat nilainya jika perlu. Semoga password Anda tidak terlalu rumit untuk diketik di ponsel Anda. Anda tidak dapat mengaturnya di CloudMQTT.

Langkah 8: Klien Android MQTT

Klien Android MQTT
Klien Android MQTT
Klien Android MQTT
Klien Android MQTT
Klien Android MQTT
Klien Android MQTT
Klien Android MQTT
Klien Android MQTT

Setiap klien MQTT Android (atau iPhone) akan berfungsi, tetapi saya suka MQTT Dash. MQTT Dash mudah digunakan, sangat responsif, dan memiliki semua opsi yang Anda perlukan.

Setelah diinstal, siapkan Server MQTT, isi server, port, nama pengguna, dan kata sandi dengan nilai instans Anda, BUKAN informasi login Anda ke CloudMQTT. Anda dapat menggunakan nama klien apa pun yang Anda inginkan.

Jika Anda mengetik semuanya dengan benar, itu akan secara otomatis terhubung ke server MQTT Anda dan menampilkan layar kosong karena Anda belum mengatur tombol, teks, atau pesan apa pun. Pada layar kosong, Anda melihat tanda "+" di sudut kanan atas, klik, lalu pilih " Pilih/Tombol." Kami akan menambahkan satu " Select/Button " per komputer, jadi 8 atau 16 atau kurang.

Jika Anda DID mendapatkan kesalahan koneksi, Anda memiliki salah satu nilai yang salah. Kembali dan periksa kembali

Setiap komputer akan menggunakan topik yang sesuai dengan nilai yang ditentukan dalam kode Anda. Jika Anda mengikuti konvensi saya, itu akan menjadi " cluster/rack-01/computer/01 ". Sebaiknya ubah nilai " on " dan " off " agar sesuai dengan kode kita. Alih-alih " 0 " dan " 1 ", gunakan nilai " on " dan " off, " masing-masing. Saya juga merekomendasikan menggunakan QoS(1) karena kami akan mengharapkan konfirmasi dari server.

Setelah menambahkan satu, Anda dapat menekan lama dan menggunakan opsi " klon " untuk membuat banyak, lalu ubah nama dan topiknya.

Cukup mudah.

Langkah 9: Mendapatkan ESP8266 Anda di Wifi

Mendapatkan ESP8266 Anda di Wifi
Mendapatkan ESP8266 Anda di Wifi

Menggunakan modul Wifi Manager ESP8266, sangat mudah untuk mendapatkan perangkat kami di Wifi. Jika Anda menggunakan kelas SensorBase saya, itu sudah ada di dalamnya. Jika tidak, ikuti petunjuk di halaman Wifi Manager.

Wifi Manager akan mencoba menyambung ke SSID Anda saat boot, yang tidak dapat dilakukan karena Anda belum pernah memberi tahu SSID Anda, sehingga secara otomatis akan masuk ke mode titik akses (atau Mode AP) dan menyajikan halaman web sederhana yang meminta SSID Anda & Kata Sandi. Menggunakan ponsel atau laptop Anda, sambungkan jaringan nirkabel yang baru tersedia dengan nama SSID "ESP_xxxxxx," di mana "xxxxxx" adalah urutan acak (tidak benar-benar acak). (Petunjuk lengkap dapat ditemukan di halaman Wifi Manager.)

Setelah terhubung, buka browser web Anda dan arahkan ke 192.168.4.1, ketik SSID & Kata Sandi Anda, dan klik simpan.

Anda sekarang berada di internet, dan perangkat IoT Anda memiliki bagian "Saya" yang berfungsi!

Langkah 10: Koneksi & Pengujian Akhir

Koneksi & Pengujian Akhir
Koneksi & Pengujian Akhir

Semua selesai.

Untuk menghubungkan semuanya, temukan kabel tombol daya komputer Anda di tempat yang sesuai dengan motherboard. Anda akan melihat dua baris header dengan sekumpulan kabel dan konektor. Biasanya, mereka diberi label dengan cukup baik. Cabut sakelar Anda dan pasang steker optoisolator. Saya memasang beberapa colokan "Dupont" di colokan saya, jadi colokan itu dicolokkan seperti kabel daya. Polaritas di ujung ini tidak masalah, tetapi pastikan Anda memiliki polaritas ujung yang lain dengan benar -- yang mengarah ke papan kustom Anda.

Dan itu bekerja dengan sempurna. Menggunakan klien MQTT Dash (atau alat serupa), Anda dapat menyalakan komputer Anda dari jarak jauh.

Tekan tombol centang yang sesuai pada aplikasi Anda, dan setelah aplikasi mendengar kembali dari server MQTT dengan pesan "mati", tombol akan berubah kembali menjadi tidak dicentang.

Ini telah berjalan selama beberapa minggu tanpa masalah. Kami memang memperhatikan bahwa durasi waktu untuk menekan tombol rendah pada komputer perlu diperpanjang. Kami berakhir dengan 1 detik penuh. Nilai ini dapat diekspos sebagai nilai yang dapat diatur melalui server MQTT, atau Anda dapat memasang nilai tersebut, tergantung pada keinginan Anda.

Semoga berhasil, dan beri tahu saya bagaimana hasil Anda.

Direkomendasikan: