- Cài đặt và định cấu hình 'Chuyển động' để nhận nguồn cấp dữ liệu Video:
- Thiết lập Flask trong Raspberry Pi để điều khiển Robot thông qua Trang web:
- Mã HTML cho trang web:
- Robot giám sát
- Sơ đồ mạch và thiết lập:
- Làm thế nào để hoạt động:
Trong phiên DIY này, chúng tôi đang xây dựng một chiếc xe rô bốt giám sát được điều khiển trên web bằng cách sử dụng raspberry pi và một webcam. Đây có thể là một công cụ gián điệp và bảo mật hữu ích và rẻ tiền, có nhiều tùy chọn có thể cấu hình và có thể được xây dựng trong vài giờ. Trong Dự án IoT này, chúng tôi chủ yếu sử dụng Raspberry Pi, máy ảnh web USB và hai động cơ DC với khung Robot để chế tạo chiếc xe Robot này.
Nó có một camera web gắn trên đó, qua đó chúng ta sẽ nhận được nguồn cấp dữ liệu video trực tiếp và phần thú vị ở đây là chúng ta có thể điều khiển và di chuyển con robot này từ trình duyệt web qua internet. Vì nó có thể được kiểm soát bằng cách sử dụng trang web, có nghĩa là nó cũng có thể được kiểm soát bằng cách sử dụng trang web trong Di động. Chúng tôi đã xây dựng một trang web bằng HTML có các liên kết Trái, Phải, Chuyển tiếp, Lùi lại, nhấp vào đó chúng tôi có thể di chuyển rô-bốt theo bất kỳ hướng nào. Ở đây, chúng tôi đã sử dụng “Motion” để nhận nguồn cấp dữ liệu Video trực tiếp từ máy ảnh USB và sử dụng “Flask” để gửi lệnh từ trang web tới Raspberry Pi bằng pythonđể di chuyển Robot, được giải thích chi tiết trong phần tiếp theo của hướng dẫn này. Chúng tôi đã cài đặt Hệ điều hành Raspbian Jessie trên bảng Raspberry Pi của mình. Bạn có thể kiểm tra bài viết này để cài đặt hệ điều hành Raspbian và bắt đầu với Raspberry Pi.
Cài đặt và định cấu hình 'Chuyển động' để nhận nguồn cấp dữ liệu Video:
Motion (Surveillance Software) là phần mềm CCTV dò chuyển động mã nguồn mở miễn phí, được phát triển cho Linux. Nó phát hiện chuyển động và bắt đầu quay video về nó. Với 'Chuyển động' được cài đặt trong Raspberry Pi, bạn có thể biến Raspberry Pi thành Camera an ninh một cách thần kỳ. Nó được sử dụng để lấy nguồn cấp dữ liệu video trực tiếp, tạo video timelapse và chụp ảnh nhanh trong khoảng thời gian đều đặn. Nó ghi lại và lưu Video bất cứ khi nào nó phát hiện thấy Chuyển động hoặc bất kỳ sự xáo trộn nào trong vùng xem. Nguồn cấp dữ liệu Video Trực tiếp có thể được xem trên trình duyệt web bằng cách nhập địa chỉ IP của Pi cùng với cổng.
Chúng tôi đã tạo Hướng dẫn chi tiết về Sử dụng Chuyển động với Raspberry Pi và Camera USB, ở đây chúng tôi giải thích ngắn gọn cách cài đặt trên Raspberry pi cho Robot của chúng tôi để gửi video Trực tiếp đến trang web.
Ở đây, bạn chỉ cần chạy một số lệnh để bắt đầu nhận nguồn cấp dữ liệu video đầu tiên qua mạng. Trước đó, hãy kiểm tra chính xác xem Raspberry Pi của bạn có được kết nối với Internet hay không, sử dụng mạng LAN hoặc Wi-Fi và sau đó làm theo các bước sau:
Bước 1: Đầu tiên hãy chạy lệnh dưới đây để cập nhật Hệ điều hành Raspbian trên Raspberry Pi:
sudo apt-get cập nhật
Bước 2: Sau đó cài đặt Thư viện 'Chuyển động' bằng lệnh dưới đây:
sudo apt-get install chuyển động
Bước 3: Bây giờ đặt Motion daemon thành yes bằng cách chỉnh sửa tệp: / etc / default / motion để nó luôn chạy. Chỉnh sửa tệp này bằng trình chỉnh sửa 'nano' với 'sudo' như dưới đây:
sudo nano / etc / default / motion
Sau đó, lưu tệp bằng cách nhấn 'CTRL + X', sau đó nhấn 'Y' và nhấn Enter.
Bước 4: Bây giờ chúng ta cần thiết lập quyền cho Target Directory (/ var / lib / motion /), trong đó Motion lưu tất cả các bản ghi Video và tệp hình ảnh. Chúng tôi cần đặt 'Motion' làm chủ sở hữu của thư mục này bằng cách đưa ra lệnh dưới đây:
chuyển động sudo chown: chuyển động / var / lib / chuyển động /
Quyền này là cần thiết nếu không bạn sẽ gặp lỗi khi kiểm tra Trạng thái dịch vụ chuyển động.
Bạn có thể kiểm tra trạng thái dịch vụ bằng cách sử dụng lệnh này: trạng thái chuyển động dịch vụ sudo
Bước 5: Bây giờ chúng ta gần như đã hoàn tất, chỉ cần thay đổi một tùy chọn cấu hình trong tệp cấu hình Motion (/etc/motion/motion.conf ) đã tắt stream_localhost. Chúng tôi phải tắt tính năng phát trực tuyến trên máy chủ cục bộ này, nếu không, chúng tôi sẽ không thể truy cập nguồn cấp dữ liệu Video trên mạng của mình và nó sẽ chỉ có thể truy cập từ chính Raspberry Pi. Để làm như vậy, hãy chỉnh sửa tệp Cấu hình chuyển động bằng trình chỉnh sửa 'nano' và tắt nó đi, như hình dưới đây:
sudo nano /etc/motion/motion.conf
Bây giờ chúng ta đã hoàn tất và sẵn sàng tải nguồn cấp dữ liệu trực tiếp từ máy ảnh web USB được kết nối với Pi. Chỉ cần khởi động (hoặc khởi động lại) dịch vụ Chuyển động bằng lệnh dưới đây và mở IP của Raspberry Pi, với cổng 8081, trong trình duyệt của bạn (như 192.168.43.199:8081). Trong dự án này, chúng tôi đã nhúng IP này vào mã HTML của chúng tôi trong thẻ img src .
sudo /etc/init.d/motion khởi động lại
Và bạn sẽ thấy nguồn cấp dữ liệu trực tiếp từ máy ảnh web của mình. Ở đây, chúng tôi đã sử dụng một máy ảnh web USB giá rẻ hoạt động trơn tru với Raspberry Pi của chúng tôi, nhưng bạn có thể sử dụng thêm một máy ảnh chất lượng tốt để có độ phân giải tốt hơn. Vì nó sẽ hiển thị trong trình duyệt, bạn có thể sử dụng bất kỳ thiết bị nào để xem nguồn cấp dữ liệu, hỗ trợ trình duyệt web như Điện thoại di động, máy tính bảng, v.v.
Thử khởi động lại Raspberry Pi như một bước khắc phục sự cố khi cần thiết:
khởi động lại sudo
Đây là tất cả về cách sử dụng Motion cho Robot giám sát của chúng tôi, ngoài ra, nó có một số tùy chọn cấu hình mà chúng tôi đã thảo luận trong hướng dẫn trước của chúng tôi.
Lưu ý: Nếu bạn là mẫu Raspberry Pi dưới phiên bản 3, thì bạn có thể cần một dongle Wi-Fi để kết nối không dây raspberry Pi với bộ định tuyến.
Thiết lập Flask trong Raspberry Pi để điều khiển Robot thông qua Trang web:
Ở đây, chúng tôi đã tạo một máy chủ web bằng Flask, cung cấp một cách để gửi các lệnh từ trang web đến Raspberry Pi để điều khiển Robot qua mạng. Flask cho phép chúng tôi chạy các tập lệnh python của mình thông qua một trang web và chúng tôi có thể gửi và nhận dữ liệu từ Raspberry Pi tới trình duyệt web và ngược lại. Flask là một microframework cho Python. Công cụ này dựa trên Unicode có máy chủ phát triển và trình gỡ lỗi tích hợp, hỗ trợ kiểm tra đơn vị tích hợp, hỗ trợ cookie an toàn và dễ sử dụng, những điều này làm cho nó hữu ích cho những người yêu thích.
Cài đặt gói hỗ trợ bình vào Raspberry Pi bằng cách sử dụng lệnh đã cho:
$ pip cài đặt Flask
Sau đó, chúng ta có thể sử dụng Flask bằng cách nhập nó vào chương trình của mình, giống như chúng ta đã nhập các gói sau đây của flask cho dự án này:
from flask import Flask from flask import Flask, render_template, request
Bạn có thể tìm hiểu thêm về lập trình sử dụng Flask tại đây, cũng kiểm tra các dự án trước đây của chúng tôi, nơi chúng tôi đã sử dụng Flask để gửi thông báo từ Trang web đến Raspberry Pi và gửi giá trị trọng lượng đến Raspberry Pi trong Smart Container.
Mã HTML cho trang web:
Chúng tôi đã tạo một trang web sử dụng ngôn ngữ HTML để hiển thị các liên kết điều khiển (Trái, Phải, Tiến, lùi) để di chuyển Robot từ trình duyệt web. Chúng tôi đã sử dụng tập lệnh jQuery để gọi các hàm trong Chương trình Python của chúng tôi. Có năm chức năng trong Mã Python để di chuyển Robot sang trái, phải, tiến, lùi và để dừng nó. Mã Python hoàn chỉnh đã được đưa ra ở cuối. Các chức năng này sẽ được thực thi bằng cách nhấp vào Liên kết điều khiển trên trang web và động cơ sẽ di chuyển tùy thuộc vào liên kết được nhấp. Ở đây chúng tôi đã viết mã theo cách mà Robot sẽ di chuyển theo hướng nhất định khi nhấp và giữ liên kết, và ngay sau khi chúng ta thả nút chuột, Robot sẽ dừng lại. Dưới đây là mã HTML cho trang web bao gồm jQuery:
Tại đây, bạn có thể thấy chúng tôi đã nhúng địa chỉ IP, nơi Video đang truyền trực tuyến, vào trang web bằng cách sử dụng thẻ img src . Thay đổi địa chỉ IP theo Raspberry Pi của bạn nhưng giữ nguyên cổng.
Người dùng cần sao chép-dán mã HTML đã cho ở trên trong một số trình soạn thảo văn bản (notepad) và lưu tệp với phần mở rộng.HTML (robot.html). Sau đó, đặt tệp HTML này vào thư mục / template đối với vị trí tập lệnh python của bạn. Có nghĩa là bạn cần tạo một thư mục có tên là các mẫu, nơi bạn đã đặt tệp Mã Python của mình cho Robot giám sát Raspberry này, sau đó đặt tệp robot.html vào thư mục mẫu này. Bước này rất quan trọng, nếu không thì dự án của chúng ta sẽ không hoạt động. Bạn có thể mở trực tiếp tệp robot.html bằng cách nhấp đúp vào tệp để xem các liên kết điều khiển của bạn trông như thế nào. Kiểm tra thêm toàn bộ quá trình trong Video trình diễn cuối cùng. Sau khi hoàn tất việc lập trình và tất cả, chúng tôi chỉ có thể chạy mã Python trong Raspberry Pi và mở IP_address_of_your_Pi: 5010 trong Trình duyệt web (như
Bạn có thể kiểm tra địa chỉ IP của Raspberry Pi bằng cách sử dụng lệnh ifconfig :
ifconfig
Sơ đồ mạch và thiết lập:
Sau khi kiểm tra nguồn cấp dữ liệu Video trực tiếp và mã HTML, chúng tôi cần chế tạo rô bốt bằng cách sử dụng khung, bánh xe và bu lông đai ốc được làm thủ công hoặc làm sẵn. Sau đó, đặt Power bank lên nó để cấp nguồn cho Raspberry pi, sau đó đặt Raspberry Pi và máy ảnh web lên pin sạc dự phòng và sửa thiết lập bằng băng Cello hoặc dải cao su, kết nối máy ảnh USB với Raspberry Pi.
Trong dự án IoT này, chúng ta không cần thực hiện nhiều kết nối, chúng ta chỉ cần kết nối một số dây cho Motor Driver IC L293D và DC Motors. Các kết nối được hiển thị trong sơ đồ mạch bên dưới. Ở đây chúng tôi đã sử dụng một PCB Mục đích chung để gắn IC L293D để giảm không gian nhưng bạn cũng có thể sử dụng Breadboard nhỏ để kết nối động cơ DC với L293D.
Làm thế nào để hoạt động:
Vận hành và làm việc Robot giám sát này rất dễ dàng. Tạo một tệp python (phần mở rộng.py) và sao chép mã bên dưới vào đó rồi lưu trên Raspberry Pi của bạn. Sau đó, đặt tệp HTML vào thư mục mẫu như đã giải thích ở trên. Đừng quên thay đổi địa chỉ IP trong tệp HTML.
Sau đó, chạy mã Python bằng cách nhập lệnh dưới đây:
python name_of_file.py
Sau đó, mở địa chỉ IP Raspberry Pi của bạn với cổng 5010 như http://192.168.43.199:5010 (một lần nữa thay địa chỉ IP bằng địa chỉ của bạn). Bây giờ bạn sẽ thấy trang web có bốn liên kết điều khiển robot và video phát trực tiếp. Người dùng có thể điều khiển robot bằng cách nhấp và giữ các liên kết. Nếu người dùng nhấp và giữ các liên kết thì robot sẽ di chuyển theo liên kết đã nhấp và khi nào người dùng nhả liên kết thì robot sẽ tự động dừng lại.
Mã Python hoàn chỉnh được cung cấp bên dưới, nơi chúng tôi đã viết các chức năng khác nhau để điều khiển Robot khi nhấp vào các liên kết trên trang web. Bạn có thể hiểu chúng một cách dễ dàng hoặc nếu bạn là người mới bắt đầu thì hãy xem Hướng dẫn sử dụng Raspberry Pi trước đây của chúng tôi. Ngoài ra, hãy truy cập Mục Robotics của chúng tôi để biết thêm nhiều điều thú vị và dễ dàng để chế tạo Robot.