Isi kandungan:

Matikan atau Mulakan Semula Komputer dari jauh Dengan Peranti ESP8266: 10 Langkah (dengan Gambar)
Matikan atau Mulakan Semula Komputer dari jauh Dengan Peranti ESP8266: 10 Langkah (dengan Gambar)

Video: Matikan atau Mulakan Semula Komputer dari jauh Dengan Peranti ESP8266: 10 Langkah (dengan Gambar)

Video: Matikan atau Mulakan Semula Komputer dari jauh Dengan Peranti ESP8266: 10 Langkah (dengan Gambar)
Video: ESP8266 Diesel Injector Purging Station - PWM NodeMCU pump flow Control (Subtittled) 2024, Julai
Anonim
Image
Image

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

Kisahnya seperti ini:

Seorang rakan saya di Facebook menghantar pesanan kepada saya dan mengatakan bahawa dia mempunyai selusin komputer yang menjalankan banyak matematik, tetapi setiap pagi jam 3 pagi, mereka mengunci. Oleh kerana komputer berada dalam jarak 30 minit, sangat menyusahkan untuk menggerakkan dua bandar (kita tinggal di South Dakota) untuk menghidupkan komputer. Dia bertanya, bolehkah saya membuatnya peranti IoT yang membolehkannya menghidupkan semula komputer yang menyinggung perasaan dari tempat tidurnya yang selesa?

Tidak pernah terlepas dari cabaran, saya bersetuju untuk mengumpulkan sesuatu untuknya. Ini adalah projek itu.

Dengan menggunakan dua pertukaran bit yang didaftarkan, ESP8266 ESP01, segelintir LED, dan beberapa optoisolator buatan sendiri, keseluruhan projek berharga kira-kira $ 5 jika anda membeli alat ganti dari China di eBay. Mungkin $ 20 dari Amazon.

Ini adalah binaan yang agak kompleks dengan banyak pematerian halus. Tidak mengira skru saya dan pematerian semula, saya memerlukan masa 20 jam yang lebih baik untuk dibuat, tetapi ternyata luar biasa dan berfungsi dengan sempurna.

Mari kita mulakan.

Langkah 1: Papan Prototaip

Papan Prototaip
Papan Prototaip
Papan Prototaip
Papan Prototaip

Sentiasa mulakan semua projek dengan papan roti prototaip. Ini adalah kaedah terbaik untuk menentukan sama ada anda mempunyai semua komponen dan beroperasi seperti yang diharapkan. Projek ini agak rumit, jadi saya sangat mengesyorkan membinanya di papan roti sebelum melangkah ke hadapan.

Bahagian yang anda perlukan adalah:

  • Satu ESP8266 ESP01 (walaupun mana-mana peranti ESP8266 akan berfungsi)
  • Dua register shift 8-bit, saya menggunakan 74HC595N
  • 16 LED, saya menggunakan topi jerami putih LED yang beroperasi pada 3.3V. Sekiranya anda menggunakan yang lain, anda mungkin memerlukan perintang.
  • Tiga perintang 3k3-ohmpulldown
  • Wayar pelompat & papan roti

Anda juga perlu membina sekurang-kurangnya satu optoisolator. Saya menggunakan tiub penyusutan hitam, LED putih terang, perintang 220 ohm, dan fotoresistor. Pateri perintang 220 ohm ke katod LED dan kemudian tutup LED dan fotoresistor di dalam tiub penyusutan yang saling berhadapan. Tetapi kita akan sampai pada mereka di kemudian hari.

Ikuti rajah pendawaian yang disediakan pada langkah seterusnya. Pendawaiannya cukup mudah.

Kerana ESP8266 beroperasi pada 3.3V, pastikan anda mengaktifkannya dengan betul

Langkah 2: Skema Menggunakan Will-CAD

Skema Menggunakan Will-CAD
Skema Menggunakan Will-CAD

Skematiknya cukup mudah. Kami mengikuti daftar standard register shift 8-bit. Oleh kerana saya menggunakan dua register shift 8-bit, mereka perlu dirantai bersama pada pin 'jam' dan 'selak' mereka.

Kerana ESP01 hanya mempunyai dua pin GPIO, kita perlu menggunakan kembali TX & RX sebagai output, yang berfungsi dengan baik untuk tujuan kita. Anda boleh menggunakan ESP-12 atau versi lain dengan lebih dari dua pin GPIO jika anda mahukan lebih banyak kawalan. Tetapi itu akan menambah $ 2 lagi untuk kos projek - yang hanya gila-gila.

Kita perlu memastikan register shift 8-bit dan pin ESP01 ditarik tinggi semasa boot, jadi mereka tidak melakukan perkara yang pelik atau masuk ke mod program. Saya menggunakan tiga perintang 3k3, nilai yang lebih besar atau lebih kecil akan berfungsi juga. Nilai ini diperoleh daripada panduan yang bercakap mengenai memanfaatkan pin alternatif pada ESP01.

ESP01 (ESP8266)

  • Pin jam TX pullup 3k3
  • Patch pin RX pullup 3k3
  • 00 data siri 3k3 penarikan
  • 02 terapung

Daftar Shift 8-bit (74HC595H)

  • VCC 3.3V
  • OE 3.3V (ini adalah pin pengaktifan)
  • GND GND
  • CLR GND (ini membuat pin yang jelas tidak dibersihkan)
  • Dan LED, yang menuju ke tanah.

Langkah 3: Kod ESP8266

Kod ESP8266
Kod ESP8266

Kod ESP8266 cukup mudah. Malangnya, editor di Instructables agak tidak berguna, jadi anda mahu mendapatkan kodnya secara langsung dari Github.

projek "racks-reboot":

github.com/bluemonkeydev/arduino-projeks/…

Kelas "SensorBase" boleh didapati di sini. Ia diperlukan jika anda ingin "menggunakan" kod saya:

github.com/bluemonkeydev/arduino-projeks/…

Terdapat beberapa perkara yang perlu diberi perhatian. Kodnya didokumentasikan dengan baik.

  1. Saya adalah pemaju yang sangat malas, jadi saya memasukkan semua kod ESP8266 yang boleh digunakan semula ke dalam kelas yang disebut "SensorBase." Anda boleh mendapatkannya di Github juga di pautan di atas.
  2. Anda mesti memasukkan pelayan, nama pengguna, kata laluan dan port broker MQTT anda. Mereka dapat dijumpai sedikit lebih jauh ketika kami membuat perkhidmatan CloudMQTT.
  3. Anda TIDAK perlu mengikuti format sintaks topik saya. Walau bagaimanapun, saya akan mengesyorkan mengikutinya.
  4. Tidak ada yang pandai mengenai kod ini. Ia sangat pragmatik.

Langkah 4: Tata Letak Perfboard

Tata Letak Perfboard
Tata Letak Perfboard

Projek ini akan dipasang di pusat data mini, jadi saya memutuskan untuk hanya menggunakan papan papan untuk reka bentuk akhir. Perfboard berfungsi dengan baik untuk projek seperti ini dan mudah disusun dengan menggunakan sehelai kertas graf tersuai. Di sini anda akan melihat susun atur saya. Sudah tentu, anda mungkin memilih untuk melakukannya secara berbeza.

Projek saya memerlukan dua register shift 8-bit, jadi saya mulakan dengan kedudukan mereka di tengah. Saya tahu bahawa penyambung saya ke optoisolator akan menjadi tajuk utama wanita buat masa ini, walaupun itu bukan penyelesaian yang ideal.

Saya suka LED, dan ini perlu mempunyai LED untuk setiap litar optoisolator. Saya tahu fasa ujian akan menjadi jauh lebih mudah sekiranya saya dapat mendapatkan maklum balas segera di papan tulis, tetapi saya juga tahu bahawa LED tersebut akan menyebabkan kesakitan yang teruk pada pematerian. Dan mereka. Saya tidak mempunyai apa-apa yang lebih kecil daripada LED 5mm, jadi saya perlu mengejutkannya. Reka bentuk terakhir saya membuat corak zig-zag katod kerana saya tidak mahu menjalankan anod di atas wayar tanah. Ini terbukti reka bentuk yang baik. Kabel LED bergabung di atas register shift 8-bit dan berjalan di bahagian atas papan dengan wayar terlindung untuk kesederhanaan.

Untuk mendapatkan kuasa, saya mahu menjalankannya dari kabel USB lama untuk dihidupkan terus dari salah satu komputer. Ini akan berfungsi dengan baik kerana port USB biasanya dihidupkan walaupun komputer dimatikan. Saya menggunakan pengatur voltan linier LM317 untuk mengurangkan kuasa kepada 3.3V. Pengawal selia 3.3V akan berfungsi juga, tetapi saya tidak memilikinya.

Untuk mengelakkan terlalu banyak wayar melintasi, saya menggunakan beberapa wayar di bahagian atas papan perf, yang cuba saya elakkan. Perlu diingat bahawa lubang melalui konduktif, jadi gunakan wayar terlindung untuk mengelakkan seluar pendek. Sambungan yang berlaku di bahagian atas papan ditunjukkan dalam garis putus-putus pada rajah saya.

Langkah 5: Papan Pematerian

Papan Pematerian
Papan Pematerian

Papan solder terakhir saya ternyata sangat baik. Seperti yang dijangkakan, LED di bahagian atas memerlukan banyak kerja untuk disolder dengan betul tanpa seluar pendek. Setelah menyolder LED dan header, gunakan multimeter anda untuk menentukan sama ada anda mempunyai seluar pendek. Sebaiknya cari tahu sekarang.

Selain LED, semua yang lain berjalan lancar. Saya mesti membuat beberapa sambungan, tetapi dengan beberapa pesakit, beberapa penyahpepijatan, dan sedikit pematerian semula, semuanya akan berjalan lancar.

Anda dapat melihat dari foto ini bahawa saya juga menghubungkan optoisolator, yang mana saya menggunakan kabel CAT-5 8-wayar. Sebabnya adalah bahawa ia sangat murah, senang disambungkan, dan lebih jelas mengenai optoisolator tersebut pada langkah seterusnya.

Langkah 6: Membuat Optoisolator

Membuat Optoisolator
Membuat Optoisolator

Sudah tentu, anda tidak perlu membuat optoisolator anda sendiri. Banyak versi komersial tersedia untuk setiap sen dan akan beroperasi dengan lebih baik kerana mereka akan menggerakkan talian kuasa komputer secara langsung tanpa rintangan. Tetapi, saya tidak mempunyai optoisolator, jadi saya mesti membuat tambang menggunakan LED, perintang, dan fotoresistor.

Setelah mengesahkan bahawa dalam lengan tiub penyusutan hitam, rintangan "mati" dengan jarak kurang dari meter saya dapat membaca dan rintangan "on" adalah beberapa ribu ohm, saya melakukan ujian terakhir pada papan induk lama. Ia berfungsi dengan sempurna untuk saya. Saya mengesyaki beberapa komputer mungkin lebih sensitif, tetapi pada papan induk yang telah saya uji, konfigurasi ini berfungsi dengan baik.

Anda pasti ingin menggunakan LED putih yang sangat terang untuk memasukkan cahaya maksimum ke dalam photoresistor. Saya tidak mencuba banyak pilihan, tetapi LED putih terang dan perintang 220 ohm pasti berfungsi dengan baik.

Langkah 7: Persediaan CloudMQTT

Persediaan CloudMQTT
Persediaan CloudMQTT
Persediaan CloudMQTT
Persediaan CloudMQTT
Persediaan CloudMQTT
Persediaan CloudMQTT

Sebarang perkhidmatan MQTT, atau perkhidmatan IoT serupa seperti Blynk, akan berfungsi, tetapi saya memilih untuk menggunakan CloudMQTT untuk projek ini. Saya telah menggunakan CloudeMQTT untuk banyak projek pada masa lalu, dan kerana projek ini akan diserahkan kepada rakan, masuk akal untuk membuat akaun baru yang juga dapat dipindahkan.

Buat akaun CloudMQTT dan kemudian buat "contoh" baru, pilih ukuran "Cute Cat" kerana kami hanya menggunakannya untuk kawalan, tanpa pembalakan. CloudMQTT akan memberi anda nama pelayan, nama pengguna, kata laluan, dan nombor port. (Perhatikan bahawa nombor port bukan port MQTT standard). Pindahkan semua nilai ini ke dalam kod ESP8266 anda di lokasi yang sesuai, memastikan kes itu betul. (serius, salin / tampal nilai)

Anda boleh menggunakan panel "Websocket UI" di CloudMQTT untuk melihat sambungan peranti anda, menekan butang, dan, dalam senario ganjil, anda mendapat ralat, mesej ralat.

Anda AKAN memerlukan tetapan ini ketika mengkonfigurasi klien MQTT Android juga, jadi perhatikan nilainya jika perlu. Semoga kata laluan anda tidak terlalu rumit untuk ditaip di telefon anda. Anda tidak boleh menetapkannya di CloudMQTT.

Langkah 8: Pelanggan Android MQTT

Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT
Pelanggan Android MQTT

Mana-mana klien MQTT Android (atau iPhone) akan berfungsi, tetapi saya suka MQTT Dash. MQTT Dash mudah digunakan, sangat responsif, dan mempunyai semua pilihan yang anda perlukan.

Setelah dipasang, siapkan Pelayan MQTT, isi pelayan, port, nama pengguna, dan kata laluan dengan nilai instance anda, BUKAN maklumat log masuk anda ke CloudMQTT. Anda boleh menggunakan mana-mana nama pelanggan yang anda mahukan.

Sekiranya anda mengetik semuanya dengan betul, ia akan menyambung secara automatik ke pelayan MQTT dan menunjukkan skrin kosong kerana anda belum menyediakan butang, teks, atau mesej. Pada skrin kosong, anda melihat "+" di sudut kanan atas, klik, dan kemudian pilih "Pilih / Butang." Kami akan menambahkan satu "Pilih / Butang" setiap komputer, jadi 8 atau 16 atau kurang.

Sekiranya anda tidak mendapat ralat sambungan, salah satu nilai anda salah. Kembali dan semak semula

Setiap komputer akan menggunakan topik yang sesuai dengan nilai yang ditentukan dalam kod anda. Sekiranya anda mengikuti konvensyen saya, mereka akan menjadi "cluster / rack-01 / computer / 01". Sebaiknya ubah nilai "on" dan "off" agar sesuai dengan kod kami. Daripada "0" dan "1", gunakan nilai "on" dan "off", masing-masing. Saya juga mengesyorkan menggunakan QoS (1) kerana kami akan mengharapkan pengesahan dari pelayan.

Setelah menambahkannya, anda boleh menekan lama dan menggunakan pilihan "klon" untuk membuat sekumpulan, kemudian menukar nama dan topik mereka.

Cukup mudah.

Langkah 9: Mendapatkan ESP8266 anda di Wifi

Mendapatkan ESP8266 anda di Wifi
Mendapatkan ESP8266 anda di Wifi

Menggunakan modul ESP8266 Wifi Manager, sangat mudah untuk membawa peranti kami menggunakan Wifi. Sekiranya anda menggunakan kelas SensorBase saya, kelas itu sudah terbina dalam. Sekiranya tidak, ikuti arahan di halaman Pengurus Wifi.

Wifi Manager akan cuba menyambung ke SSID anda semasa boot, yang tidak dapat dilakukan kerana anda tidak pernah memberitahu SSID anda, jadi secara automatik akan masuk ke mod titik akses (atau Mod AP) dan menyajikan halaman web mudah yang meminta SSID anda & Kata Laluan. Dengan menggunakan telefon atau komputer riba anda, sambungkan rangkaian wayarles yang baru tersedia dengan nama SSID "ESP_xxxxxx," di mana "xxxxxx" adalah beberapa urutan rawak (tidak benar-benar rawak). (Arahan lengkap boleh didapati di halaman Wifi Manager.)

Setelah disambungkan, bawa penyemak imbas web anda dan arahkan ke 192.168.4.1, ketik SSID & Kata Laluan anda, dan klik simpan.

Anda kini berada di internet, dan peranti IoT anda mempunyai bahagian "I" yang berfungsi!

Langkah 10: Sambungan & Ujian Akhir

Sambungan & Ujian Akhir
Sambungan & Ujian Akhir

Semua selesai.

Untuk menghubungkan semuanya, cari kabel butang kuasa komputer anda di mana ia memenuhi papan induk. Anda harus melihat dua baris tajuk dengan sekumpulan wayar dan penyambung. Biasanya, mereka dilabel dengan cukup baik. Cabut palam suis anda dan pasangkan palam optoisolator. Saya meletakkan beberapa palam "Dupont" pada tambang, sehingga terpasang seperti kabel kuasa. Polariti pada hujung ini tidak penting tetapi pastikan anda mempunyai kekutuban hujung yang betul - yang menuju ke papan adat anda.

Dan ia berfungsi dengan sempurna. Dengan menggunakan klien MQTT Dash (atau alat serupa), anda dapat menghidupkan komputer dari jarak jauh.

Tekan butang periksa yang sesuai pada aplikasi anda, dan setelah aplikasi mendengar kembali dari pelayan MQTT dengan pesan "mati", butang akan berubah kembali menjadi tidak dicentang.

Ini telah berjalan selama beberapa minggu tanpa masalah. Kami menyedari bahawa jangka masa untuk menarik butang rendah di komputer perlu diperpanjang. Kami berakhir dengan 1 saat penuh. Nilai ini dapat didedahkan sebagai nilai yang dapat diselesaikan melalui pelayan MQTT, atau Anda dapat memasukkan nilainya, bergantung pada keinginan anda.

Semoga berjaya, dan beritahu saya bagaimana keadaan anda.

Disyorkan: