Mục lục:

Cách kiểm soát cửa hàng bằng Raspberry Pi: 6 bước
Cách kiểm soát cửa hàng bằng Raspberry Pi: 6 bước

Video: Cách kiểm soát cửa hàng bằng Raspberry Pi: 6 bước

Video: Cách kiểm soát cửa hàng bằng Raspberry Pi: 6 bước
Video: Quy trình kiểm tra xác minh tình trạng bảo hành Raspberry Pi tại Hshop.vn 2024, Tháng mười một
Anonim
Cách kiểm soát các cửa hàng bằng Raspberry Pi
Cách kiểm soát các cửa hàng bằng Raspberry Pi
Cách kiểm soát các cửa hàng bằng Raspberry Pi
Cách kiểm soát các cửa hàng bằng Raspberry Pi
Cách kiểm soát các cửa hàng bằng Raspberry Pi
Cách kiểm soát các cửa hàng bằng Raspberry Pi

Trong phần Có thể hướng dẫn này, tôi sẽ hướng dẫn bạn cách tạo giao diện web để kiểm soát các cửa hàng trong nhà bạn bằng Raspberry Pi. Tôi đã chọn viết dự án này khi tôi xem cuộc thi Cảm biến và vì dự án này liên quan đến việc sử dụng cảm biến để đọc mã từ điều khiển từ xa được cung cấp với các cửa hàng bạn mua, nên tôi nghĩ dự án này sẽ hoàn toàn phù hợp.

Tôi sẽ cố gắng giữ mức này ở mức cao nhất có thể và cung cấp mã để làm cho tất cả điều này hoạt động. Đối với tất cả các bạn mã khỉ ngoài kia, hãy thoải mái tìm hiểu mã và xem xét kỹ lưỡng tôi trong các nhận xét! Tôi luôn tìm cách cải thiện. Có khá nhiều điều đang xảy ra trong việc này, vì vậy nếu bạn có thắc mắc về bất kỳ bước nào, vui lòng để lại nhận xét để tôi có thể cập nhật Hướng dẫn với các chi tiết cần thiết.

Dự án này sử dụng các ổ cắm được điều khiển bằng tần số vô tuyến ở 433MHz kết hợp với một máy phát RF được kết nối với pi raspberry của bạn. Các cửa hàng đi kèm với điều khiển từ xa có thể bật / tắt các cửa hàng, nhưng điều đó không thú vị! Thay vào đó, chúng tôi sẽ sử dụng một máy chủ web chạy trên raspberry pi cho phép bất kỳ ai kết nối với mạng đều có thể bật hoặc tắt một số cửa hàng nhất định. Giao diện người dùng web cho dự án này là lý tưởng vì bất kỳ thiết bị kết nối web nào trên mạng của bạn đều có thể được sử dụng làm điều khiển từ xa của bạn.

Đây là một dự án mà tôi đã mơ ước hoàn thành trong nhiều năm, và mặc dù vẫn còn chỗ để bổ sung, dự án được mô tả như sau là một hệ thống chức năng.

Quân nhu

  • Raspberry Pi (Tôi đã sử dụng RPi 3 Model B +)
  • Bộ phát và bộ thu 433MHz (Tôi đã sử dụng cái này)
  • 433MHz Outlets (Tôi đã sử dụng cái này)
  • Nhảy từ nữ sang nữ (tôi đã mua bộ này)
  • Máy tính hoặc thiết bị cầm tay có khả năng truy cập internet

Bước 1: Thiết lập Raspberry Pi của bạn

Thiết lập Raspberry Pi của bạn
Thiết lập Raspberry Pi của bạn

Bắt đầu bằng cách cài đặt phiên bản Raspbian mới nhất trên Raspberry Pi mới của bạn. Nếu bạn định sử dụng một Pi hiện có (mà bạn hoàn toàn có thể làm được), tất cả những gì bạn cần là đảm bảo rằng bạn có Python 3 trên Pi của mình, vì đó là tất cả mã nguồn tôi cung cấp được viết bằng. Để thực hiện điều này, kiểu

python3

vào dòng lệnh. Nếu bạn có Python 3, bạn sẽ thấy thiết bị đầu cuối python mở. Thoát khỏi thiết bị đầu cuối bằng cách đóng cửa hoặc nhập

lối ra()

Khi bạn đã xác nhận điều này, bạn cần cài đặt bình vào Pi của mình. Flask cho phép chúng tôi tạo máy chủ web của mình. Từ dòng lệnh Pi, nhập

sudo pip3 cài đặt bình

Trong trường hợp bạn chưa cài đặt pip trên Pi, bạn sẽ cần phải nhập

sudo apt-get install python3-pip

Tôi thích phát triển trên Raspberry Pi của mình từ sự thoải mái trên máy tính để bàn của mình. Nếu bạn quá thích tùy chọn này, bạn cần cài đặt một số loại môi trường để SSH vào Pi. PuTTY sẽ hoạt động, nhưng tôi thích có GUI (giao diện người dùng đồ họa), khiến bạn có vẻ như đang trực tiếp trên Pi. Đối với tùy chọn GUI, bạn sẽ muốn cài đặt VNC Viewer trên máy tính mà bạn định làm việc. Ngoài ra còn có các cài đặt bạn sẽ cần điều chỉnh trên Pi của mình. Hướng dẫn sửa đổi cài đặt có thể được tìm thấy ở đây.

Bước 2: Kết nối phần cứng của bạn

Kết nối phần cứng của bạn
Kết nối phần cứng của bạn

Tại thời điểm này, đã đến lúc tạo tất cả các kết nối vật lý mà bạn cần làm để chuẩn bị cho việc thiết lập mã nguồn cho dự án này. Bạn sẽ kết nối các chân của bộ phát và bộ thu với các chân GPIO của Pi. Bạn sẽ muốn tham khảo một cách tôn giáo về sơ đồ sơ đồ chân của các chân GPIO. Để làm như vậy, hãy mở thiết bị đầu cuối trên Pi của bạn và nhập

sơ đồ chân

Sau đây là những kết nối tôi đã thực hiện. Bạn có thể có một cấu hình khác nếu bạn mua phần cứng máy phát / máy thu khác với phần tôi đã chỉ ra trong phần giới thiệu. Nếu bạn quyết định chọn các số pin khác với những số tôi chỉ ra bên dưới, đừng sợ! Khi bạn tải xuống mã nguồn, chỉ cần sửa đổi số pin nếu cần trong tệp RxTx.py.

Máy thu (chip lớn):

  • GND - Bất kỳ chốt nối đất nào được chỉ định
  • DATA - Pin 11
  • DER - Không được kết nối
  • + 5V - Bất kỳ chân + 5V nào được chỉ định
  • ------
  • + 5V - Bất kỳ chân + 5V nào được chỉ định
  • GND - Bất kỳ chốt nối đất nào được chỉ định
  • GND - Không được kết nối
  • ANT - Không được kết nối

Lưu ý: Bạn có thể kết nối ăng-ten nếu cần, nhưng tôi thấy mình không cần. Con chip nhỏ này nhạy cảm một cách đáng ngạc nhiên và phát hiện trung thực các tín hiệu trong phạm vi ít nhất 50ft từ nơi nó đang ngồi và xuyên qua ít nhất hai bức tường.

Hệ thống điều khiển:

  • P - Chân 3,3V
  • DA - Pin 7
  • G - Bất kỳ chốt nối đất nào được chỉ định
  • AN - không được kết nối

Lưu ý: Một lần nữa, bạn có thể kết nối ăng-ten với bộ phát nếu cần, nhưng tôi thấy không cần thiết. Phạm vi là quá đủ (50 + ft).

Bước 3: Thêm mã

Đây là phần mà tôi đã dành phần lớn thời gian khi phát triển dự án này. Tôi cố gắng bình luận nhiều nhất có thể, nhưng tôi có thể để lại những khoảng trống có thể yêu cầu giải thích nếu bất kỳ bạn nào dành thời gian cố gắng hiểu nó. Nếu điều này xảy ra với bạn, xin vui lòng để lại một bình luận!

Các ngôn ngữ có liên quan ở đây là:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery / Ajax

Python được sử dụng trong máy chủ bình và trong

RxTx.py

tệp, xử lý việc truyền và nhận mã. CSS được sử dụng để tạo kiểu của trang web. Ai muốn một trang web nhàm chán !? Javascript được sử dụng trong bất kỳ xử lý sự kiện nào (nhấn nút, v.v.). HTML là khối xây dựng cốt lõi của trang web. Cuối cùng, JQuery / Ajax được sử dụng để giao tiếp giữa trang web và chương trình phụ trợ Python.

Nếu tất cả các ngôn ngữ này nghe có vẻ đáng sợ, đừng lo lắng! Tôi chỉ biết Python sẽ tham gia vào dự án này, đây tình cờ là ngôn ngữ liên quan đến ít mã hóa nhất, hãy thử xem… Nói một cách đầy đủ, hãy dành thời gian tìm hiểu kỹ về mã nếu đó là những gì bạn chọn làm. Nếu bạn không muốn, bạn không cần phải làm thế!

Sau đây là cấu trúc thư mục tôi đã chọn để sử dụng với trang web này. Thư mục nén được đính kèm với bước này chứa tất cả mã nguồn theo cấu trúc sau.

Outlet Switch-> comm-- DataRW.py-- key.py-- RxTx.py-> trang web-- static ----- favicon.ico ----- style.css-- các mẫu ----- index.html ----- Sched.html-- app.py-- data.file

Bạn có thể đặt thư mục Outlet Switch ở bất kỳ đâu trên Pi của mình. Khi bạn đã sẵn sàng chạy máy chủ web của mình, hãy mở thiết bị đầu cuối trên Pi của bạn và

đĩa CD

(thay đổi thư mục) sang thư mục trang web. Sau đó gõ

python3 app.py

vào thiết bị đầu cuối. Nếu không có bất kỳ lỗi nào, bạn nên đi!

P. S. Hãy kiên nhẫn nếu bạn gặp phải bất kỳ lỗi nào. Tôi đã cố gắng giải nén tất cả chúng trước khi tải lên.

Bước 4: Thử sức

Hãy thử!
Hãy thử!

Bây giờ bạn đang chạy mã, bạn có thể cảm nhận giao diện web trong tầm tay của mình. Hệ thống điều khiển rất đơn giản:

  • Bạn có thể thêm bao nhiêu cửa hàng tùy thích bằng cách sử dụng giao diện web.
  • Việc xóa đơn giản như nhấp vào chỉnh sửa, chọn cửa hàng bạn muốn xóa và nhấp vào xóa.

Video trên YouTube trình bày cách thực sự bắt đầu thêm một cửa hàng mới vào danh sách của bạn. Để tóm tắt những gì nó cho thấy:

  • Đầu tiên, hãy nhập tiêu đề của cửa hàng vào trường Tiêu đề
  • Nhấp hoặc chạm vào bên ngoài trường Tiêu đề để cho phép chương trình kiểm tra xem tiêu đề chưa tồn tại. Bạn không thể có các tiêu đề trùng tên
  • Sau khi xác thực, các nút Mã BẬT và Mã TẮT được bật.
  • Nhấn và giữ nút BẬT trên điều khiển từ xa được cung cấp của bạn và nhấp nhanh vào nút Mã BẬT trên giao diện. Giữ nút trên điều khiển từ xa cho đến khi mã nhị phân của bạn điền vào trường bên cạnh.
  • Lặp lại bước trước cho Mã TẮT.
  • Nhấp vào OK, và bây giờ bạn đã sẵn sàng chuyển đổi ổ cắm này!

Như đã đề cập trong phần giới thiệu, dự án không hoàn thành 100% cho mục đích sử dụng của riêng tôi. Thành phần lớn nhất mà tôi chưa hoàn thành và triển khai là khả năng lập lịch trình. Tôi dự định cho phép người dùng xây dựng một lịch trình cho phép tự động bật và tắt các cửa hàng vào những thời điểm được chỉ định.

Bước 5: Gỡ lỗi và Tệp RxTx.py

Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py
Gỡ lỗi và Tệp RxTx.py

Hạn chế duy nhất được biết đến của hệ thống là có khả năng không tương thích giữa các cửa hàng của các nhà cung cấp khác nhau. Thông báo mã bật và tắt là 25 bit đối với hệ thống của tôi và nếu hệ thống có độ dài thông báo khác, nó không tương thích ngay với dự án này. Nếu bạn đã làm theo chính xác các hướng dẫn và vẫn gặp sự cố khi làm việc này, thì sau đây sẽ là cách tốt nhất để gỡ lỗi sự cố.

  • Đảm bảo bạn đã cài đặt matplotlib trên Pi của mình. Bạn có thể thực hiện việc này bằng cách nhập thông tin sau vào thiết bị đầu cuối của Pi:

    • python3

    • nhập matplotlib

    • Nếu bạn gặp lỗi, thì bạn cần cài đặt matplotlib.
    • Thoát khỏi vỏ trăn bằng cách sử dụng

      lối ra()

  • Để cài đặt matplotlib, hãy nhập

    sudo pip3 cài đặt matplotlib

  • vào nhà ga
  • Tải xuống tệp test.py đính kèm và đặt nó cùng với tệp RxTx.py trên Pi của bạn
  • Mở thiết bị đầu cuối python và thay đổi thư mục thành thư mục comm.
  • Kiểu

    python3 test.py

  • Khi có thông báo "** Đã bắt đầu ghi **", hãy nhấn và giữ nút BẬT hoặc TẮT trên điều khiển từ xa cho đến khi quá trình ghi kết thúc.
  • Chương trình sẽ tải lên một hình matplotlib trông giống như hình trên. Phóng to cho đến khi bạn thấy tín hiệu lặp lại như được minh họa trong các bức ảnh ở trên.
  • Đếm tổng số logic 1 và logic 0 cho mỗi thông báo, trong đó một thông báo là một lần lặp lại của tín hiệu lặp lại đã thấy ở trên. Nếu tổng số là 25, tệp RxTx.py có thể không bị lỗi. Nếu bạn gặp phải điều gì đó khác với 25, hãy đảm bảo nhận xét bên dưới và tôi sẽ trang bị lại tệp RxTx.py để có kết thúc mở hơn (hoặc vui lòng thử nó).

Điều gì sẽ xảy ra nếu tôi không thấy tín hiệu lặp lại?

Nếu bạn không thấy một tín hiệu lặp lại, một trong hai điều đã sai. Trước tiên, hãy kiểm tra xem tất cả các kết nối dây jumper của bạn đã được thực hiện đúng chưa. Nếu mọi thứ có vẻ tốt, bạn có thể có một bộ thu kém. Bạn đã mua một trong những tôi đề nghị? Khi tôi mua chip thu đầu tiên của mình, nó rất ồn. Ồn ào đến mức tôi không thể nhận được tín hiệu rõ ràng. Sau đó, tôi trả lại con chip đó và chọn con chip mà tôi đã liên kết, và nó không thể hoạt động tốt hơn.

Bước 6: Thưởng thức

Bạn biết có khả năng bật / tắt ổ cắm từ điện thoại, máy tính bảng, máy tính hoặc thiết bị hỗ trợ web khác! Hãy cho tôi biết những gì bạn nghĩ rằng trong các ý kiến!

Đề xuất: