Mục lục:

Tắt máy hoặc khởi động lại máy tính từ xa với thiết bị ESP8266: 10 bước (có hình ảnh)
Tắt máy hoặc khởi động lại máy tính từ xa với thiết bị ESP8266: 10 bước (có hình ảnh)

Video: Tắt máy hoặc khởi động lại máy tính từ xa với thiết bị ESP8266: 10 bước (có hình ảnh)

Video: Tắt máy hoặc khởi động lại máy tính từ xa với thiết bị ESP8266: 10 bước (có hình ảnh)
Video: Lập trình esp8266 - Bài 2 - Hướng dẫn điều khiển thiết bị từ xa qua wifi sử dụng blynk iot 2024, Tháng mười một
Anonim
Image
Image

Nói rõ hơn ở đây, chúng tôi đang tắt máy tính của BẠN chứ không phải máy tính của người khác.

Câu chuyện diễn ra như thế này:

Một người bạn của tôi trên Facebook nhắn tin cho tôi và nói rằng anh ta có một tá máy tính chạy một đống toán, nhưng cứ 3 giờ sáng là chúng lại khóa. Vì máy tính cách đó 30 phút, nên thật phiền toái khi lái xe qua hai thị trấn (chúng tôi sống ở Nam Dakota) để chạy máy tính. Anh ấy hỏi, tôi có thể chế tạo cho anh ấy một thiết bị IoT cho phép anh ấy khởi động lại máy tính vi phạm từ sự thoải mái trên chiếc giường ấm cúng của anh ấy không?

Không bao giờ bỏ lỡ một thử thách, tôi đồng ý làm một cái gì đó cùng nhau cho anh ta. Đây là dự án đó.

Sử dụng hai bit-shift đã được đăng ký, một ESP8266 ESP01, một số đèn LED và một số bộ tản nhiệt quang tự chế, toàn bộ dự án có giá khoảng 5 đô la nếu bạn mua các bộ phận từ Trung Quốc trên eBay. Có thể là $ 20 từ Amazon.

Đây là một công trình khá phức tạp với rất nhiều mối hàn tốt. Không tính những lần vặn vít và hàn lại, tôi đã mất hơn 20 giờ đồng hồ để thực hiện, nhưng nó thực sự tuyệt vời và hoạt động hoàn hảo.

Hãy bắt đầu nào.

Bước 1: Bảng nguyên mẫu

Ban nguyên mẫu
Ban nguyên mẫu
Ban nguyên mẫu
Ban nguyên mẫu

Luôn bắt đầu tất cả các dự án với một breadboard nguyên mẫu. Đó là cách tốt nhất để xác định xem bạn có tất cả các thành phần và hoạt động như mong đợi hay không. Dự án này hơi phức tạp, vì vậy tôi thực sự khuyên bạn nên xây dựng nó trên breadboard trước khi tiếp tục.

Những phần bạn sẽ cần là:

  • Một ESP8266 ESP01 (mặc dù bất kỳ thiết bị ESP8266 nào sẽ hoạt động)
  • Hai thanh ghi dịch chuyển 8-bit, tôi đã sử dụng 74HC595N
  • 16 đèn LED, tôi đã sử dụng đèn LED trắng mũ rơm hoạt động ở 3.3V. Nếu bạn sử dụng những người khác, bạn có thể cần điện trở.
  • Ba điện trở 3k3-ohmpulldown
  • Dây nhảy & bảng mạch

Bạn cũng sẽ cần phải xây dựng ít nhất một bộ lọc quang học. Tôi đã sử dụng ống co đen, đèn LED trắng sáng, điện trở 220 ohm và điện trở quang. Hàn điện trở 220 ohm vào cực âm của đèn LED và sau đó niêm phong đèn LED và điện trở quang bên trong ống co lại đối diện nhau. Nhưng chúng ta sẽ đến những điều đó ở bước sau.

Làm theo sơ đồ đấu dây được cung cấp trong bước tiếp theo. Hệ thống dây điện khá đơn giản.

Vì ESP8266 hoạt động ở 3.3V, hãy đảm bảo rằng bạn cấp nguồn cho nó một cách thích hợp

Bước 2: Lược đồ sử dụng Will-CAD

Lược đồ sử dụng Will-CAD
Lược đồ sử dụng Will-CAD

Giản đồ khá đơn giản. Chúng tôi đang tuân theo quy trình chuẩn của một thanh ghi dịch chuyển 8-bit. Vì tôi đang sử dụng hai thanh ghi dịch chuyển 8-bit, chúng cần được liên kết với nhau trên các chân 'đồng hồ' và 'chốt' của chúng.

Vì ESP01 chỉ có hai chân GPIO, chúng tôi cần sử dụng lại TX & RX làm đầu ra, hoạt động tốt cho mục đích của chúng tôi. Bạn có thể sử dụng ESP-12 hoặc phiên bản khác có nhiều hơn hai chân GPIO nếu bạn muốn kiểm soát nhiều hơn. Nhưng điều đó sẽ làm tăng thêm 2 đô la nữa vào chi phí của dự án - đó chỉ là một cuộc nói chuyện điên rồ.

Chúng ta cần giữ các thanh ghi dịch chuyển 8-bit và các chân ESP01 được kéo cao khi khởi động, để chúng không làm những điều kỳ lạ hoặc chuyển sang chế độ chương trình. Tôi đã sử dụng ba điện trở 3k3, giá trị lớn hơn hoặc nhỏ hơn cũng sẽ hoạt động. Giá trị này được lấy từ các hướng dẫn nói về việc tận dụng các chân thay thế trên ESP01.

ESP01 (ESP8266)

  • Chân đồng hồ TX 3k3 pullup
  • Chốt chốt RX 3k3 pullup
  • 00 dữ liệu nối tiếp 3k3 pullup
  • 02 nổi

Thanh ghi Shift 8-bit (74HC595H)

  • VCC 3.3V
  • OE 3.3V (đây là chân kích hoạt)
  • GND GND
  • CLR GND (điều này giữ cho ghim rõ ràng không bị xóa)
  • Và các đèn LED, chúng được nối đất.

Bước 3: Mã ESP8266

Mã ESP8266
Mã ESP8266

Mã ESP8266 khá đơn giản. Thật không may, trình chỉnh sửa trong Guiductables khá vô dụng, vì vậy bạn sẽ muốn lấy mã trực tiếp từ Github.

dự án "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

Lớp "SensorBase" có sẵn tại đây. Nó là bắt buộc nếu bạn muốn "sử dụng" mã của tôi:

github.com/bluemonkeydev/arduino-projects/…

Có một số điều cần lưu ý. Mã được ghi lại khá tốt.

  1. Tôi là một nhà phát triển rất lười biếng, vì vậy tôi đã đặt tất cả mã ESP8266 có thể tái sử dụng vào một lớp có tên là "SensorBase". Bạn cũng có thể tìm thấy điều đó trên Github, liên kết ở trên.
  2. Bạn phải nhập máy chủ, tên người dùng, mật khẩu và cổng của nhà môi giới MQTT của mình. Những điều đó có thể được tìm thấy ở phía dưới một chút khi chúng tôi tạo dịch vụ CloudMQTT.
  3. Bạn KHÔNG cần tuân theo định dạng cú pháp chủ đề của tôi. Tuy nhiên, tôi khuyên bạn nên làm theo nó.
  4. Không có gì thông minh về mã này. Nó rất thực dụng.

Bước 4: Bố cục Perfboard

Bố cục Perfboard
Bố cục Perfboard

Dự án này sẽ được cài đặt tại một trung tâm dữ liệu mini, vì vậy tôi quyết định chỉ sử dụng bảng điều khiển hoàn hảo cho thiết kế cuối cùng. Perfboard hoạt động tốt cho các dự án như thế này và dễ dàng bố trí bằng cách sử dụng một mảnh giấy đồ thị tùy chỉnh. Ở đây bạn sẽ thấy bố cục của tôi. Tất nhiên, bạn có thể chọn làm theo cách khác.

Dự án của tôi cần hai thanh ghi dịch chuyển 8-bit, vì vậy tôi bắt đầu với vị trí của chúng ở giữa. Tôi biết rằng các đầu nối của tôi với bộ lọc quang hiện sẽ là các tiêu đề đơn giản dành cho nữ, mặc dù đó không phải là một giải pháp lý tưởng.

Tôi yêu đèn LED, và điều này cần thiết để có đèn LED cho mỗi mạch optoisolator. Tôi biết giai đoạn kiểm tra sẽ dễ dàng hơn vô cùng nếu tôi có thể nhận được phản hồi tức thì trực tiếp trên bảng, nhưng tôi cũng biết rằng những đèn LED đó sẽ gây ra đau đớn rất lớn cho mối hàn. Và họ đã. Tôi không có bất cứ thứ gì nhỏ hơn đèn LED 5mm, vì vậy tôi đã phải lắp chúng lại. Thiết kế cuối cùng của tôi tạo ra một mô hình zig-zag của các cực âm vì tôi không muốn chạy các cực dương qua dây nối đất. Đây được chứng minh là một thiết kế tốt. Các dây LED nối với nhau phía trên các thanh ghi dịch chuyển 8-bit và chạy trên đỉnh của bo mạch với các dây được bảo vệ để đơn giản hóa.

Để có nguồn, tôi muốn chạy nó từ cáp USB cũ để được cấp nguồn trực tiếp từ một trong các máy tính. Điều này sẽ hoạt động tốt vì các cổng USB thường được cấp nguồn ngay cả khi máy tính đang tắt. Tôi đã sử dụng một bộ điều chỉnh điện áp tuyến tính LM317 để giảm công suất xuống 3,3V. Bộ điều chỉnh 3.3V cũng sẽ hoạt động, nhưng tôi không có.

Để tránh có quá nhiều dây chéo nhau, tôi đã chạy một vài dây ở mặt trên của bảng điều khiển, tôi cố gắng tránh. Hãy nhớ rằng các lỗ xuyên qua có tính dẫn điện, vì vậy hãy sử dụng dây được che chắn để tránh bị chập. Những kết nối diễn ra trên đầu bảng được hiển thị bằng các đường đứt nét trên sơ đồ của tôi.

Bước 5: Bảng hàn

Ban hàn
Ban hàn

Bảng hàn cuối cùng của tôi hóa ra thực sự tốt. Đúng như dự đoán, các đèn LED ở phía trên phải mất rất nhiều công sức để được hàn chính xác mà không cần bất kỳ chiếc quần đùi nào. Sau khi bạn đã hàn các đèn LED và tiêu đề, hãy sử dụng đồng hồ vạn năng để xác định xem bạn có mắc lỗi nào không. Tốt nhất là bạn nên tìm hiểu ngay bây giờ.

Ngoài đèn LED, mọi thứ khác đều diễn ra khá tốt. Tôi đã phải thực hiện lại một số kết nối, nhưng với một số bệnh nhân, một số gỡ lỗi và hàn lại một chút, mọi thứ sẽ hoạt động tốt.

Từ bức ảnh này, bạn sẽ thấy rằng tôi cũng đã nối các bộ làm mát quang học, mà tôi đã sử dụng cáp CAT-5 8 dây. Lý do là nó siêu rẻ, dễ dàng ghép nối và được đánh dấu rõ ràng hơn về những chất làm mờ quang học đó trong bước tiếp theo.

Bước 6: Tạo Optoisolators

Tạo Optoisolators
Tạo Optoisolators

Tất nhiên, bạn không cần phải tự chế tạo thuốc làm mờ mắt. Nhiều phiên bản thương mại có sẵn cho từng đồng xu và sẽ hoạt động tốt hơn vì chúng có thể dẫn đường dây điện của máy tính trực tiếp mà không có bất kỳ lực cản nào. Nhưng, tôi không có bất kỳ bộ tản nhiệt quang học nào, vì vậy tôi phải chế tạo bằng cách sử dụng đèn LED, điện trở và điện trở quang.

Sau khi xác nhận rằng trong ống bọc màu đen có thể đọc được điện trở "tắt" nhỏ hơn đồng hồ của tôi và điện trở "bật" là vài nghìn ohms, tôi đã thực hiện một bài kiểm tra cuối cùng trên một bo mạch chủ cũ. Nó làm việc hoàn hảo cho tôi. Tôi nghi ngờ một số máy tính có thể nhạy cảm hơn hoặc ít hơn, nhưng trên các bo mạch chủ mà tôi đã thử nghiệm, cấu hình này hoạt động tốt.

Bạn sẽ muốn sử dụng một đèn LED trắng thực sự sáng để có được ánh sáng tối đa vào điện trở quang. Tôi đã không thử nhiều tùy chọn, nhưng đèn LED sáng trắng và điện trở 220 ohm chắc chắn hoạt động tốt.

Bước 7: Thiết lập CloudMQTT

Thiết lập CloudMQTT
Thiết lập CloudMQTT
Thiết lập CloudMQTT
Thiết lập CloudMQTT
Thiết lập CloudMQTT
Thiết lập CloudMQTT

Bất kỳ dịch vụ MQTT nào hoặc dịch vụ IoT tương tự như Blynk, đều sẽ hoạt động, nhưng tôi chọn sử dụng CloudMQTT cho dự án này. Tôi đã sử dụng CloudeMQTT cho nhiều dự án trong quá khứ và vì dự án này sẽ được chuyển giao cho một người bạn, nên việc tạo một tài khoản mới cũng có thể được chuyển là rất hợp lý.

Tạo tài khoản CloudMQTT và sau đó tạo một "đối tượng" mới, chọn kích thước "Mèo dễ thương" vì chúng tôi chỉ sử dụng nó để kiểm soát, không cần ghi nhật ký. CloudMQTT sẽ cung cấp cho bạn tên máy chủ, tên người dùng, mật khẩu và số cổng. (Lưu ý rằng số cổng không phải là cổng MQTT tiêu chuẩn). Chuyển tất cả các giá trị này vào mã ESP8266 của bạn ở các vị trí tương ứng, đảm bảo rằng trường hợp là chính xác. (nghiêm túc, hãy sao chép / dán các giá trị)

Bạn có thể sử dụng bảng điều khiển "Giao diện người dùng Websocket" trên CloudMQTT để xem các kết nối, nút nhấn của thiết bị và trong trường hợp kỳ lạ là bạn gặp lỗi, thông báo lỗi.

Bạn cũng sẽ cần những cài đặt này khi định cấu hình ứng dụng khách Android MQTT, vì vậy hãy lưu ý các giá trị nếu bạn cần. Hy vọng rằng mật khẩu của bạn không quá phức tạp để nhập trên điện thoại của bạn. Bạn không thể đặt điều đó trong CloudMQTT.

Bước 8: Ứng dụng khách MQTT Android

Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android
Ứng dụng khách MQTT Android

Mọi ứng dụng MQTT trên Android (hoặc iPhone) đều hoạt động, nhưng tôi thích MQTT Dash. MQTT Dash rất dễ sử dụng, rất nhạy và có tất cả các tùy chọn mà bạn cần.

Sau khi cài đặt, hãy thiết lập Máy chủ MQTT, điền máy chủ, cổng, tên người dùng và mật khẩu với các giá trị của phiên bản của bạn, KHÔNG phải thông tin đăng nhập của bạn vào CloudMQTT. Bạn có thể sử dụng bất kỳ tên khách hàng nào mà bạn muốn.

Nếu bạn nhập mọi thứ một cách chính xác, nó sẽ tự động kết nối với máy chủ MQTT của bạn và hiển thị cho bạn một màn hình trống vì bạn chưa thiết lập bất kỳ nút, văn bản hoặc tin nhắn nào. Trên màn hình trống, bạn thấy dấu "+" ở góc trên cùng bên phải, hãy nhấp vào nó, sau đó chọn "Chọn / Nút". Chúng tôi sẽ thêm một "Chọn / Nút" cho mỗi máy tính, như vậy là 8 hoặc 16 hoặc ít hơn.

Nếu bạn DID gặp lỗi kết nối, bạn có một trong các giá trị sai. Quay lại và kiểm tra kỹ

Mỗi máy tính sẽ sử dụng chủ đề tương ứng với các giá trị được chỉ định trong mã của bạn. Nếu bạn làm theo quy ước của tôi, chúng sẽ là "cluster / rack-01 / computer / 01". Tốt nhất là thay đổi giá trị "bật" và "tắt" để phù hợp với mã của chúng tôi. Thay vì "0" và "1", hãy sử dụng các giá trị "bật" và "tắt" tương ứng. Tôi cũng khuyên bạn nên sử dụng QoS (1) vì chúng tôi sẽ mong đợi xác nhận từ máy chủ.

Sau khi thêm một nhóm, bạn có thể nhấn và sử dụng tùy chọn "sao chép" để tạo một nhóm, sau đó thay đổi tên và chủ đề của họ.

Vừa đủ dễ.

Bước 9: Bắt ESP8266 của bạn trên Wi-Fi

Nhận ESP8266 của bạn trên Wi-Fi
Nhận ESP8266 của bạn trên Wi-Fi

Sử dụng mô-đun Trình quản lý Wi-Fi ESP8266, việc đưa thiết bị của chúng tôi vào Wi-Fi thật dễ dàng. Nếu bạn đã sử dụng lớp SensorBase của tôi, nó đã được tích hợp sẵn. Nếu không, hãy làm theo hướng dẫn trên trang Trình quản lý Wifi.

Trình quản lý Wi-Fi sẽ cố gắng kết nối với SSID của bạn khi khởi động, điều này không thể vì bạn chưa bao giờ cho nó biết SSID của mình, vì vậy, nó sẽ tự động chuyển sang chế độ điểm truy cập (hoặc Chế độ AP) và cung cấp một trang web đơn giản yêu cầu SSID của bạn & Mật khẩu. Sử dụng điện thoại hoặc máy tính xách tay của bạn, kết nối mạng không dây mới có với tên SSID "ESP_xxxxxx", trong đó "xxxxxx" là một số chuỗi ngẫu nhiên (không thực sự ngẫu nhiên). (Bạn có thể tìm thấy hướng dẫn đầy đủ trên trang Trình quản lý Wifi.)

Sau khi kết nối, hãy mở trình duyệt web của bạn và trỏ nó đến 192.168.4.1, nhập SSID & Mật khẩu của bạn và nhấp vào lưu.

Bạn hiện đang sử dụng Internet và thiết bị IoT của bạn có phần "Tôi" đang hoạt động!

Bước 10: Kết nối và kiểm tra lần cuối

Kết nối & Thử nghiệm cuối cùng
Kết nối & Thử nghiệm cuối cùng

Tất cả đã được làm xong.

Để kết nối mọi thứ, hãy xác định vị trí cáp nút nguồn của máy tính ở nơi nó gặp bo mạch chủ. Bạn sẽ thấy hai hàng tiêu đề với một loạt các dây và đầu nối. Thông thường, chúng được dán nhãn khá tốt. Rút phích cắm công tắc của bạn và cắm phích cắm của bộ cảm biến quang học. Tôi đã đặt một số phích cắm "Dupont" của mình, vì vậy chúng được cắm giống như cáp nguồn. Cực tính ở đầu này không quan trọng nhưng hãy đảm bảo rằng bạn có cực tính của đầu kia chính xác - cực đi đến bảng tùy chỉnh của bạn.

Và nó hoạt động hoàn hảo. Sử dụng ứng dụng MQTT Dash (hoặc công cụ tương tự), bạn có thể cấp nguồn cho máy tính của mình từ xa.

Nhấn nút kiểm tra tương ứng trên ứng dụng của bạn và khi ứng dụng nhận được phản hồi từ máy chủ MQTT với thông báo "tắt", nút này sẽ chuyển trở lại thành không chọn.

Điều này đã chạy trong một vài tuần mà không có bất kỳ vấn đề nào. Chúng tôi đã nhận thấy rằng khoảng thời gian để kéo nút xuống mức thấp trên máy tính cần phải được kéo dài. Chúng tôi đã kết thúc với 1 giây đầy đủ. Giá trị này có thể được hiển thị dưới dạng giá trị có thể cài đặt thông qua máy chủ MQTT hoặc bạn có thể cố định giá trị, tùy thuộc vào mong muốn của bạn.

Chúc bạn may mắn và hãy cho tôi biết kết quả của bạn như thế nào.

Đề xuất: